EventBridge から KMS 暗号化されている SNS をターゲットにした場合に、SNS 通知がされない事象への対処方法

EventBridge から KMS 暗号化されている SNS をターゲットにした場合に、SNS 通知がされない事象への対処方法

KMSキーポリシーにサービスからの呼び出しを許可、また、呼び出し側もKMSへのアクセスポリシーが必要です。
Clock Icon2025.03.11

困っていること

Amazon SNS トピックを作成し、KMS 暗号化を有効化しました。

EventBridge を作成し、ターゲットとして、上記の SNS トピックを指定しました。

EventBridge の通知条件を満たしたにも関わらず、SNS トピックがパブリッシュされませんでした。

どのように解決すればいいですか?

どう解決すればいいの?

Amazon SNS トピックに KMS 暗号化を有効化にした場合、EventBridge に設定している IAM ロールの IAM ポリシーに KMS へのアクセス許可が必要です。また、KMS キー側には、EventBridge サービスからのアクセス許可が必要です。

下記の通り、ポリシーを設定してください。

EventBridge に設定している IAM ロールの IAM ポリシー

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "kms:DescribeKey",
            "kms:GenerateDataKey",
            "kms:Decrypt"
        ],
        "Resource": [
            "<KMSKeyARN>"
        ]
    }
}

KMS キーポリシー

{
  "Version": "2012-10-17",
  "Id": "key-consolepolicy-3",
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<AccountID>:root"
      },
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "Allow_AWS_Service_for_CMK",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "events.amazonaws.com"
        ]
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "<AccountID>"
        }
      }
    }
  ]
}

参考資料

Amazon SNS 暗号化キーとコストの管理 - Amazon Simple Notification Service

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.