Amazon SNSトピックがEventBridge通知を受信しないのはなぜですか?

所要時間1分
0

Amazon EventBridge Events ルールを設定して、Amazon Simple Notification Service (Amazon SNS) トピックに通知を送信します。Amazon SNS トピックがイベント通知を受け取らないのはなぜですか?

解決方法

EventBridgeルールのターゲットがルールと同じAWSリージョンにあることを確認します

ルールに関連付けるターゲットは、ルールと同じリージョンに存在する必要があります。

注: AWS リソースが存在しているリージョンを確認するには、リソースの Amazon リソースネーム (ARN) を確認します。

EventBridgeルールの「Invocations」および「FailedInvocations」メトリックを確認して、問題の原因を確認します

CloudWatchコンソールで、EventBridgeルールの InvocationsおよびFailedInvocations メトリクスを確認します。

両方のメトリクスのためのデータポイントが存在する場合、 EventBridgeルール通知はターゲットを呼び出そうとしましたが、呼び出しは失敗しました。この問題を解決するには、トピックにメッセージを発行するために必要な許可を EventBridgeに付与する必要があります。手順については、この記事のトピックにメッセージを発行するために必要な許可をEventBridge に付与したことを確認するのセクションを参照してください。

存在しているのが Invocations メトリクスのデータポイントのみである場合、これは EventBridgeルール通知がターゲットに到達しなかったことを意味します。この問題を解決するには、ターゲットの設定ミスを修正します。

詳細については、CloudWatch ユーザーガイドの「利用可能なメトリクスの表示」を参照してください。

トピックにメッセージを発行するために必要な許可をEventBridgeに付与したことを確認する

Amazon SNS トピックのリソースベースのポリシーでは、EventBridgeによるトピックへのメッセージの発行を許可する必要があります。トピックの AWS Identity and Access Management (IAM) ポリシーで必要な許可があることを確認し、必要に応じて追加します。

重要: 「events.amazonaws.com」 は**「Service」の値としてリストされている必要があります。「sns:Publish」「Action」**の値としてリストされている必要があります。

必要なアクセス権限を追加するには、「ルールは実行されるが、Amazon SNS トピックに公開されたメッセージが見当たらない」を参照してください。

EventBridgeが Amazon SNS トピックにメッセージを公開できるようにするIAMパーミッションステートメントの例

{
  "Sid": "AWSEvents_ArticleEvent_Id4950650036948",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": "sns:Publish",
  "Resource": "arn:aws:sns:us-east-1:123456789012:My_SNS_Topic"
}

(サーバー側の暗号化 (SSE) がアクティブ化されているトピックの場合) トピックに必要な AWS Key Management (AWS KMS) 許可があることを確認します

Amazon SNS トピックは、カスタマーマネージドの AWS KMS キーを使用する必要があります。この AWS KMS キーには、EventBridge に十分なキー使用許可を付与するカスタムキーポリシーを含める必要があります。

必要な AWS KMS 許可をセットアップするには、以下の手順を実行します。

1.    カスタマーが管理し、EventBridge に必要な許可が含まれた、新しい AWS KMS キーを作成します (events.amazonaws.com)

2.    先ほど作成したカスタム AWS KMS キーを使用して、Amazon SNS トピックの SSE を設定します。

3.    EventBridge が暗号化されたトピック (events.amazonaws.com) にメッセージを発行することを許可する AWS KMS アクセス許可を設定します

EventBridgeが暗号化された Amazon SNS トピックにメッセージを送信することを許可する IAM ポリシーステートメントの例

{
  "Sid": "Allow CWE to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "events.amazonaws.com"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*"
}

関連情報

Amazon EventBridge の使用を開始する

AWS公式
AWS公式更新しました 1年前
コメントはありません