- 別々のアカウントのCloudWatchのAlarmの通知を一箇所にまとめてみたかったのでやってみた
- 以下を見て実施したがややこしかったので手順をメモ
- Sending Amazon SNS messages to an Amazon SQS queue in a different account - Amazon Simple Notification Service
やったこと
- 全てManagementConsoleで実施
- アカウントA : SQSの受信側 <= アカウントB :SNSの送信側
- アカウントB にSNSのトピックを作成
- アカウントB で作成したSNSトピックに対して「View/Edit Topic Policy」でポリシーを設定
- SubscribersのOnly these AWS usersを選択して アカウントA のIDもしくはIAMユーザのARNを設定する
- アカウントA にSQSのキューを作成
- アカウントA で作成したSQSキューにPermissionsを設定
- Effect:Allow
- Principal:Everybody
- Actions:SendMessage
- Condition:StringEquals、Key:aws:SourceArn、Values:作成したSNSトピックのARN
- 2.で指定した アカウントA のユーザ(IDの場合はルートアカウント)でログインし、1.で作成したリージョンにあわせてからSNSで以下のようにCreate Subscriptionを実施
- TopicARN: アカウントB で作成したSNSトピックのARNを指定
- Protocol:SQSを指定
- Endpoint: アカウントA で作成したSQSキューのARNを指定
- アカウントB で試しにSNSトピックを送信し、 アカウントA のSQSキューにつまれることを確認する