【问题标题】:SQS Encryption using CMK使用 CMK 的 SQS 加密
【发布时间】: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


    【解决方案1】:

    我与 AWS 和 KMS 进行了交谈,AWS 托管密钥在这种情况下不起作用。我们无法更改 KMS AWS 托管密钥的密钥策略,因此无法用于以下场景:S3 Bucket -> Trigger S3 Event -> Message sent to SQS -> SQS triggers Lambda to Process

    我使用了 KMS AWS 客户托管密钥,效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 2021-06-08
      • 1970-01-01
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多