S3 和加密 SQS 集成问题

S3 and encrypted SQS integration issue

我为 S3 设置了一个 SQS 事件 bucket.When 在 S3 中上传了一个名为 xyz.txt 的文件,调用了 SQS 事件,然后这个 SQS 调用了一个 lambda。

此工作流程运行良好。

现在我想为此加密我的 SQS 队列,我正在使用现有的 CMK“services-cmk”之一。队列加密后,S3 无法调用 SQS。当我将消息直接放入加密的 SQS 时,它的工作和 lambda 也被触发。

我检查了 services-cmk 的政策,它允许 S3.I 我无法找出我在这里遗漏了什么?

您必须在您的 KMS 密钥策略中明确指定 S3(使用 root 因为 Principal 是不够的)here :

{
    "Version": "2012-10-17",
    "Id": "example-ID",
    "Statement": [
        {
            "Sid": "example-statement-ID",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}