Amazon SQS コンソールを使用した Amazon SNS トピックへのキューのサブスクライブ
Amazon SQS キューを Amazon SNS トピックに 1 つまたは複数サブスクライブできます。メッセージがトピックに発行されると、Amazon SNS はサブスクライブされた各キューにメッセージを送信します。Amazon SQS はサブスクリプションを管理し、必要なアクセス許可を処理します。Amazon SNS の詳細については、Amazon Simple Notification Service デベロッパーガイドの、「Amazon SNS とは」を参照してください。
Amazon SQS キューを Amazon SNS トピックにサブスクライブすると、Amazon SNS は HTTPS を使用してメッセージを Amazon SQS に転送します。暗号化された Amazon SQSキューでの Amazon SNS の使用については、「AWS のサービスの KMS アクセス許可の設定」を参照してください。
重要
Amazon SQS は、各アクセスポリシーに対して最大 20 個のステートメントをサポートしています。Amazon SNS トピックにサブスクライブすると、このようなステートメントが 1 つ追加されます。この数を超えると、トピックサブスクリプションの配信が失敗します。
キューを Amazon SNS にトピックにサブスクライブするには(コンソール)
Amazon SQS コンソールを https://console.aws.amazon.com/sqs/
で開きます。 -
ナビゲーションペインで [キュー] を選択します。
-
キューのリストからキューを選択して、Amazon SNS トピックを購読します。
-
[Actions](アクション) メニューで、[Subscribe to Amazon SNS topic](Amazon SNS トピックを購読する) を選択します。
-
[このキューメニューで使用できる Amazon SNS トピックを指定する] で、キューの [Amazon SNS トピック] を選択します。
SNS トピックが表示されていない場合は、Amazon SNS トピック ARN と入力し、次に、トピックの Amazon リソースネーム (ARN) を入力します。
-
[保存] を選択します。
-
サブスクリプションを確認するには、トピックにメッセージを発行し、キューにメッセージを表示します。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SNS メッセージの公開」を参照してください。
クロスアカウントサブスクリプション
Amazon SQS キューと Amazon SNS トピックが異なる AWS アカウント にある場合は、追加のアクセス許可が必要です。
トピック所有者 (アカウント A)
Amazon SNS トピックのアクセスポリシーを変更して、Amazon SQS キューの AWS アカウント がサブスクライブできるようにします。ポリシーステートメントの例:
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sns:Subscribe", "Resource": "arn:aws:sns:us-east-1:123456789012:MyTopic" }
このポリシーにより、アカウント 111122223333 は MyTopic にサブスクライブできます。
キュー所有者 (アカウント B)
Amazon SQS キューのアクセスポリシーを変更して Amazon SNS トピックがメッセージを送信できるようにします。ポリシーステートメントの例:
{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-1:111122223333:MyQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:MyTopic" } } }
このポリシーにより、MyTopic は MyQueue にメッセージを送信できます。
クロスリージョンサブスクリプション
別の AWS リージョン で Amazon SNS トピックをサブスクライブするには、以下を確認してください。
-
Amazon SNS トピックのアクセスポリシーは、クロスリージョンサブスクリプションを許可します。
-
Amazon SQS キューのアクセスポリシーは、Amazon SNS トピックがリージョン間でメッセージを送信することを許可します。
詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SQS キューまたは別のリージョンの AWS Lambda 昨日へ Amazon SNS メッセージを送信する」を参照してください。