【发布时间】:2019-07-13 21:34:38
【问题描述】:
我正在尝试从加密的 SQS 读取消息。对象位于 S3 存储桶上 -> 触发 S3 事件 -> 发送到 SQS 的消息 -> SQS 触发 Lambda 进行处理。
我已经使用 AWS 托管 CMK 完成了这项工作。但是,我无法使用 AWS 拥有的 CMK 来完成这项工作,例如alias/aws/sqs。
消息只是进入messages in flight,并没有调用 Lambda 函数。
根据此处的 AWS 文档https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-encryption-what-does-sse-encryptIf you don't specify a custom CMK, Amazon SQS uses the AWS managed CMK for Amazon SQS。但是我们不能附加任何针对 AWS 拥有的 CMK 的策略,例如
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": "<<service>>.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*"
}]
}
我的问题是:是否可以在 SQS 上使用 AWS 拥有的 CMK 并让 Lambda 函数能够从该队列中读取?
上述网址中有一个部分称为Enable Compatibility between AWS Services Such as Amazon CloudWatch Events, Amazon S3, and Amazon SNS and Encrypted Queues。
它提到将策略附加到 CMK。但是,可以选择使用alias/aws/sqs。我想知道我是否在这里遗漏了什么。
【问题讨论】:
标签: amazon-web-services amazon-sqs