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

最終更新日:2021年12月20日

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」の値としてリストされている必要があります。

必要な許可を追加するには、My rule runs, but I don't see any messages published into my Amazon SNS topic の手順に従ってください。

EventBridgeがAmazonSNSトピックにメッセージを公開できるようにする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 キーを使用する必要があります。この KMS キーには、EventBridgeに十分なキー使用許可を付与するカスタムキーポリシーを含める必要があります。

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

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

2.    先ほど作成したカスタム 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": "*"
}

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?