

EventBridgeで検知した内容をSNSトピックでメール通知をしたいです。  
SNSトピックはCMKで暗号化されていて、以下のキーポリシーを登録しましたがうまくいきません。

やりたいことはCMKを利用するAWSアカウントを制限したいです。  
ご回答をよろしくお願いいたします。

it works

[code]

    {
        "Sid": "Enable cross account events",
        "Effect": "Allow",
        "Principal": {
            "Service": "events.amazonaws.com"
        },
        "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
        ],
        "Resource": "*"
    }
    
[/code]

以下はうまくいきません。

[code]

    {
        "Sid": "Enable cross account events",
        "Effect": "Allow",
        "Principal": {
            "Service": "events.amazonaws.com"
        },
        "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "kms:CallerAccount": "xxxxxxxxxxxx"
            }
        }
    }
    
[/code]


CC BY-SA 4.0
2022-10-03T08:33:07.723
91418
2022-10-04T13:03:18.623
2022-10-04T04:17:37.847
3060
54675
question
aws
AWS KMSのキーポリシーがうまく動作しない


現状では無理っぽいです。SNSトピックに投げるのはユーザーアカウントではなくサービスなのでAccountID情報が付かないです。

最近、サービスにリンクされたロールが導入されつつあり、例えばAuto Scaling Groupであればこれが使えます。具体的にはAuto Scaling
Groupが（ユーザーに代わって）EC2インスタンスを作成するため、EBS暗号化の処理などに`kms:Decrypt`などのアクションが必要になります。ここでサービスにリンクされたロールにこれらの許可を与えておくことができるわけです。

しかし、CloudWatch Eventsにはまだサービスにリンクされたロールが導入されていないため、同様の指定はできません。


CC BY-SA 4.0
2022-10-04T13:03:18.623
91448
2022-10-04T13:03:18.623
4236
91418
answer