Amazon SQS コンソールを使用した Amazon SNS トピックへのキューのサブスクライブ - Amazon Simple Queue Service

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 にトピックにサブスクライブするには(コンソール)
  1. Amazon SQS コンソールを https://console.aws.amazon.com/sqs/ で開きます。

  2. ナビゲーションペインで [キュー] を選択します。

  3. キューのリストからキューを選択して、Amazon SNS トピックを購読します。

  4. [Actions](アクション) メニューで、[Subscribe to Amazon SNS topic](Amazon SNS トピックを購読する) を選択します。

  5. [このキューメニューで使用できる Amazon SNS トピックを指定する] で、キューの [Amazon SNS トピック] を選択します。

    SNS トピックが表示されていない場合は、Amazon SNS トピック ARN と入力し、次に、トピックの Amazon リソースネーム (ARN) を入力します。

  6. [保存] を選択します。

  7. サブスクリプションを確認するには、トピックにメッセージを発行し、キューにメッセージを表示します。詳細については、「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" }

このポリシーにより、アカウント 111122223333MyTopic にサブスクライブできます。

キュー所有者 (アカウント 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" } } }

このポリシーにより、MyTopicMyQueue にメッセージを送信できます。

クロスリージョンサブスクリプション

別の AWS リージョン で Amazon SNS トピックをサブスクライブするには、以下を確認してください。

  • Amazon SNS トピックのアクセスポリシーは、クロスリージョンサブスクリプションを許可します。

  • Amazon SQS キューのアクセスポリシーは、Amazon SNS トピックがリージョン間でメッセージを送信することを許可します。

詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SQS キューまたは別のリージョンの AWS Lambda 昨日へ Amazon SNS メッセージを送信する」を参照してください。