Amazon SNS 通知の設定
Amazon CloudWatch は、Amazon SNS を使用して E メールを送信します。最初に、SNS トピックを作成してサブスクライブします。CloudWatch アラームを作成する際、この SNS トピックを追加して、アラームの状態が変わったときにメールの通知が送信されるように設定できます。詳細については、Amazon Simple Notification Service 入門ガイドを参照してください。
または、AWS Management Console を使用して CloudWatch アラームを作成する予定である場合は、アラームの作成時にトピックを作成できるため、この手順を省略できます。
注記
Amazon SNS トピックを作成する際は、スタンダードトピックまたは FIFO トピックを選択します。CloudWatch では、両方のタイプのトピックへのアラーム通知のすべてが確実に公開されます。ただし、FIFO トピックを使用した場合でも、まれに CloudWatch により順不同でトピックに通知が送信されることがあります。FIFO トピックを使用する場合、アラームはアラーム通知のメッセージグループ ID がアラームの ARN のハッシュになるように設定されます。
混乱した代理問題の防止
クロスサービスの混乱した代理のセキュリティ上の問題を防ぐために、CloudWatch に Amazon SNS リソースへのアクセスを許可する Amazon SNS リソースポリシーで aws:SourceArn
および aws:SourceAccount
グローバルコンディションキーを使用することをお勧めします。
次のリソースポリシーの例では、aws:SourceArn
条件キーを使用して、指定されたアカウントの CloudWatch アラームでのみ使用される SNS:Publish
許可を絞り込みます。
{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }] }
アラーム ARN に非 ASCII 文字が含まれている場合は、aws:SourceAccount
グローバル条件キーのみを使用して、許可を制限してください。
を使用した Amazon SNS トピックの設定AWS Management Console
最初にトピックを作成して、それをサブスクライブします。オプションでトピックにテストメッセージを発行できます。
SNS トピックを作成するには
https://console.aws.amazon.com/sns/v3/home
で Amazon SNS コンソールを開きます。 -
Amazon SNS ダッシュボードの [Common actions] の下で、[Create topic] を選択します。
-
[新しいトピックの作成] ダイアログボックスで、[トピック] にトピックの名前 (例:
my-topic
) を入力します。 -
[Create topic] (トピックの作成) を選択します。
-
次のタスクの [Topic ARN] (例: arn:aws:sns:us-east-1:111122223333:my-topic) をコピーします。
SNS トピックをサブスクライブするには
https://console.aws.amazon.com/sns/v3/home
で Amazon SNS コンソールを開きます。 -
ナビゲーションペインで、[サブスクリプション]、[サブスクリプションの作成] の順に選択します。
-
[サブスクリプションの作成] ダイアログボックスの [トピック ARN] に、前のタスクで作成したトピック ARN を貼り付けます。
-
[Protocol] (プロトコル) で [Email] (E メール) を選択します。
-
[エンドポイント] に通知の受取先として使用する E メールアドレスを入力し、[サブスクリプションの作成] を選択します。
-
E メールアプリケーションで AWS 通知から届いたメッセージを開き、サブスクライブを確認します。
ウェブブラウザに Amazon SNS の確認画面が表示されます。
SNS トピックにテストメッセージを発行するには
-
https://console.aws.amazon.com/sns/v3/home
で Amazon SNS コンソールを開きます。 -
ナビゲーションペインで、[Topics] (トピック) を選択します。
-
[トピック] ページでトピックを選択し、[トピックに発行] を選択します。
-
[メッセージを発行] ページの [件名] にメッセージの件名を入力し、[メッセージ] に短いメッセージを入力します。
-
[メッセージの発行] を選択します。
-
メールをチェックして、メッセージを受信したことを確認します。
を使用した SNS トピックの設定AWS CLI
最初に SNS トピックを作成し、次にメッセージをトピックに直接発行して設定が正しいことをテストします。
SNS トピックを設定するには
-
次のように create-topic コマンドを使用してトピックを作成します。
aws sns create-topic --name
my-topic
Amazon SNS は次の形式でトピック ARN を返します。
{ "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" }
-
subscribe コマンドを用いて、自分の E メールアドレスをトピックにサブスクライブします。サブスクライブのリクエストが成功すると、確認メールが届きます。
aws sns subscribe --topic-arn arn:aws:sns:
us-east-1
:111122223333
:my-topic
--protocol email --notification-endpointmy-email-address
Amazon SNS は以下を返します。
{ "SubscriptionArn": "pending confirmation" }
-
E メールアプリケーションで AWS 通知から届いたメッセージを開き、サブスクライブを確認します。
ウェブブラウザに、Amazon Simple Notification Service からの確認応答が表示されます。
-
list-subscriptions-by-topic コマンドを使用して、サブスクリプションを確認します。
aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:
us-east-1
:111122223333
:my-topic
Amazon SNS は以下を返します。
{ "Subscriptions": [ { "Owner": "111122223333", "Endpoint": "me@mycompany.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic", "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3" } ] }
-
(オプション) publish コマンドを使用してトピックにテストメッセージを発行します。
aws sns publish --message "Verification" --topic arn:aws:sns:
us-east-1
:111122223333
:my-topic
Amazon SNS は以下を返します。
{ "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" }
-
メールをチェックして、メッセージを受信したことを確認します。