Amazon SNS 通知の設定 - Amazon CloudWatch

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 トピックを作成するには
  1. https://console.aws.amazon.com/sns/v3/home で Amazon SNS コンソールを開きます。

  2. Amazon SNS ダッシュボードの [Common actions] の下で、[Create topic] を選択します。

  3. [新しいトピックの作成] ダイアログボックスで、[トピック] にトピックの名前 (例: my-topic) を入力します。

  4. [Create topic] (トピックの作成) を選択します。

  5. 次のタスクの [Topic ARN] (例: arn:aws:sns:us-east-1:111122223333:my-topic) をコピーします。

SNS トピックをサブスクライブするには
  1. https://console.aws.amazon.com/sns/v3/home で Amazon SNS コンソールを開きます。

  2. ナビゲーションペインで、[サブスクリプション]、[サブスクリプションの作成] の順に選択します。

  3. [サブスクリプションの作成] ダイアログボックスの [トピック ARN] に、前のタスクで作成したトピック ARN を貼り付けます。

  4. [Protocol] (プロトコル) で [Email] (E メール) を選択します。

  5. [エンドポイント] に通知の受取先として使用する E メールアドレスを入力し、[サブスクリプションの作成] を選択します。

  6. E メールアプリケーションで AWS 通知から届いたメッセージを開き、サブスクライブを確認します。

    ウェブブラウザに Amazon SNS の確認画面が表示されます。

SNS トピックにテストメッセージを発行するには
  1. https://console.aws.amazon.com/sns/v3/home で Amazon SNS コンソールを開きます。

  2. ナビゲーションペインで、[Topics] (トピック) を選択します。

  3. [トピック] ページでトピックを選択し、[トピックに発行] を選択します。

  4. [メッセージを発行] ページの [件名] にメッセージの件名を入力し、[メッセージ] に短いメッセージを入力します。

  5. [メッセージの発行] を選択します。

  6. メールをチェックして、メッセージを受信したことを確認します。

を使用した SNS トピックの設定AWS CLI

最初に SNS トピックを作成し、次にメッセージをトピックに直接発行して設定が正しいことをテストします。

SNS トピックを設定するには
  1. 次のように create-topic コマンドを使用してトピックを作成します。

    aws sns create-topic --name my-topic

    Amazon SNS は次の形式でトピック ARN を返します。

    { "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" }
  2. subscribe コマンドを用いて、自分の E メールアドレスをトピックにサブスクライブします。サブスクライブのリクエストが成功すると、確認メールが届きます。

    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic --protocol email --notification-endpoint my-email-address

    Amazon SNS は以下を返します。

    { "SubscriptionArn": "pending confirmation" }
  3. E メールアプリケーションで AWS 通知から届いたメッセージを開き、サブスクライブを確認します。

    ウェブブラウザに、Amazon Simple Notification Service からの確認応答が表示されます。

  4. 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" } ] }
  5. (オプション) publish コマンドを使用してトピックにテストメッセージを発行します。

    aws sns publish --message "Verification" --topic arn:aws:sns:us-east-1:111122223333:my-topic

    Amazon SNS は以下を返します。

    { "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" }
  6. メールをチェックして、メッセージを受信したことを確認します。