1

我为 S3 存储桶设置了 SQS 事件。当在 S3 中上传名为 xyz.txt 的文件时,将调用 SQS 事件,然后此 SQS 调用 lambda。

此工作流程运行良好。

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

我检查了 services-cmk 的策略,它允许 S3。我无法找出我在这里缺少的东西?

4

1 回答 1

1

您必须在KMS 密钥策略中明确指定 S3(使用rootasPrincipal还不够),如下所述:

{
    "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": "*"
        }
    ]
}
于 2020-10-27T05:33:59.477 回答