複数の AWS アカウントにわたり Amazon CloudWatch アラームを使用して、Amazon Simple Notification Service (Amazon SNS) トピックを呼び出したいです。
解決策
注: 次の解決策では 2 つのアカウントを使用します。アカウント A を CloudWatch アラームの作成に使用し、アカウント B を SNS トピックの作成に使用します。
アカウント B に SNS トピックを作成します。
次の手順を実行します。
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで [トピック] を選択し、[トピックを作成] を選択します。
- トピックタイプで [標準] を選択し、トピックの名前を作成します。
- [トピックを作成] を選択し、トピックの ARN をコピーします。
- ナビゲーションペインで [サブスクリプション] を選択し、次に [サブスクリプションを作成] を選択します。
- トピックの ARN を [トピック ARN] セクションに追加し、プロトコルに [電子メール] を選択します。
- [サブスクリプションを作成] を選択し、メールをチェックしてサブスクリプションを確認します。
アカウント A で CloudWatch アラームを作成する
次の手順を実行します。
- CloudWatch コンソールを開きます。
- ナビゲーションペインで [アラーム]、[アラームを作成] の順に選択します。
- メトリクスを選択し、しきい値と比較パラメータの詳細を指定します。
- [アクションの設定] の [通知] で、[トピック ARN を使用して他のアカウントに通知する] を選択し、アカウント B のトピック ARN を入力します。
- アラームの名前を作成し、[アラームを作成] を選択します。
アカウント B で、SNS トピックのアクセスポリシーを更新する
アカウント B で SNS トピックのアクセスポリシーを更新し、アラームがメッセージを発行できるようにするには、次の手順を実行します。
-
Amazon SNS コンソールを開きます。
-
ナビゲーションペインで [トピック] を選択し、該当するトピックを選択します。
-
[編集] を選択し、ポリシーに次の内容を追加します。
{ "Version": "2008-10-17",
"Id": "default_policy_ID",
"Statement": [
{
"Sid": "default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Publish"
],
"Resource": "example-topic-arn-account-b",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:cloudwatch:example-region:111122223333:alarm:*"
}
}
}
]
}
注: 上記のポリシーで、例の値を実際の値に置き換えます。
アラームをテストする
アラームをテストするには、メトリクスのデータポイントに基づいてアラームのしきい値を変更するか、アラームの状態を手動で変更します。アラームのしきい値またはアラームの状態を変更すると、メール通知が届きます。
関連情報
任意の CloudWatch アラームを別のアカウントのトピックに公開することを許可する
CloudWatch アラームトリガーに関する SNS 通知を受信できなかった理由を教えてください
SetAlarmState