仅当 SQS 经过 KMS 加密时,来自 SNS 的消息才不会到达 SQS 队列

问题描述 投票:0回答:0

我通过在 CDK 中使用以下内容,使用 AWS 托管密钥对 SQS 中的数据进行加密:

// Create an SQS queue for buffering the events
const someQueue = new Queue(globalStack, "someQueue", {
  // Recommendation to set VTO to 6 times the lambda timeout
  visibilityTimeout: Duration.seconds(someLambdaTimeout * 6),
  encryption: QueueEncryption.KMS_MANAGED,
  deadLetterQueue: {
    queue: someDlq,
    maxReceiveCount: 5,
  },
});

现在,当我尝试进入控制台并尝试在 SNS 中发布一些消息时,它不会到达 SQS,也不会出现任何错误消息。一切都在 us-east-1 中,所以这应该不是问题。现在,只要我禁用 SQS 的加密,当我在 SNS 中发布时,我就可以在 SQS 中接收消息。我尝试在网上做一些研究,甚至这篇文章1说每个 KMS 密钥都必须有一个密钥策略。请注意,您无法修改 Amazon SQS 的 AWS 托管 KMS 密钥的密钥策略。此 KMS 密钥的策略包括账户中所有委托人(被授权使用 Amazon SQS)使用加密队列的权限,但找不到任何有用的信息。这里真的很困惑。我在这里做错了什么?

amazon-web-services amazon-sqs aws-cdk amazon-sns amazon-kms
© www.soinside.com 2019 - 2024. All rights reserved.