スキップしてコンテンツを表示

Amazon SNS トピックが EventBridge 通知を受信できなかった原因を教えてください。

所要時間2分
0

Amazon EventBridge ルールで Amazon Simple Notification Service (Amazon SNS) トピックに通知を送信する設定を行いましたが、Amazon SNS トピックはイベント通知を受信できませんでした。

解決策

EventBridge ルールのターゲットがルールと同じリージョンに配置されていることを確認する

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

注: AWS リソースが置かれたリージョンを確認するには、そのリソースの Amazon リソースネーム (ARN) を参照してください。

EventBridge ルールのメトリクス「Invocations」および「FailedInvocations」を参考に、問題を特定する

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

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

Invocations メトリクスのみにデータポイントがある場合、EventBridge ルールの通知はターゲットに到達していません。この問題を解決するには、ターゲットのルールを再構成します。

トピックにメッセージを発行するために必要な権限が EventBridge に付与されていることを確認する

Amazon SNS トピックのリソースベースポリシーは、EventBridge がメッセージをトピックに発行することを許可する必要があります。トピックの AWS Identity and Access Management (IAM) ポリシーをレビューし、必要な権限が含まれていることを確認します。ポリシーに必要なアクセス許可が含まれていない場合は、追加してください。

重要: Service 値には events.amazonaws.comAction 値には sns:Publish を含める必要があります。

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"
}

実行ロールが、EventBridge にターゲットへの発行を許可していることを確認する

EventBridge ルールのターゲットに割り当てられた IAM 実行ロールには、EventBridge サービスとの信頼関係が必要です。ロールの信頼ポリシーには、信頼されたエンティティとして EventBridge (events.amazonaws.com) が含まれていることを確認します。信頼ポリシーに必要な権限が含まれていない場合は、信頼ポリシーを更新し、EventBridge にロールを引き受ける権限を付与します。

EventBridge にターゲットの実行ロール引き受けを許可する IAM 信頼関係ステートメントの例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "ACCOUNT-ID",
                    "aws:SourceArn": "EVENTBRIDGE-RULE-ARN"
                }
            }
        }
    ]
}

重要: Service 値には events.amazonaws.comAction 値には sts:AssumeRole を含めてください。ACCOUNT-ID を AWS アカウント ID に、EVENTBRIDGE_RULE_ARN を ARN に置き換えてください。

(SSE が有効なトピック対象) トピックに必要な AWS KMS 権限があることを確認します。

Amazon SNS トピックは、AWS Key Management Service (AWS KMS) のカスタマーマネージドキーを使用する必要があります。この AWS KMS キーには、EventBridge がキーを使用するためのアクセス許可を付与するカスタムキーポリシーが必要です。

必要な AWS KMS 権限を設定するには、次の手順を実行します。

  1. 新しいカスタマーマネージドキーを作成します。EventBridge (events.amazonaws.com) に必要な権限が含まれていることを確認してください。
  2. カスタマー管理キーを使用して Amazon SNS トピックにサーバー側暗号化 (SSE) を設定します。
  3. AWS KMS のアクセス許可を設定し、EventBridge が暗号化されたトピック (events.amazonaws.com) にメッセージを発行できるようにします

EventBridge に暗号化 Amazon SNS トピックへのメッセージ発行を許可する IAM ポリシーステートメントの例:

{    "Sid": "Allow CWE to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*"
}
AWS公式更新しました 4ヶ月前
コメントはありません

関連するコンテンツ