Я пытаюсь прочитать сообщение из зашифрованного SQS. Объекты помещаются в S3 Bucket -> Trigger S3 Event -> Сообщение, отправленное в SQS -> SQS, запускает Lambda для обработки.
У меня все работает, используя управляемый AWS CMK. Однако я не могу заставить это работать, используя принадлежащий AWS CMK, например alias/aws/sqs
.
Сообщение просто входит в messages in flight
и не вызывает лямбда-функции.
В соответствии с документацией AWS здесь https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-encryption-what-does-sse-encrypt If 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": "*"
}]
}
У меня такой вопрос: возможно ли использовать принадлежащий AWS CMK на SQS и можно ли функции Lambda читать из этой очереди?
В указанном выше URL есть раздел, который называется Enable Compatibility between AWS Services Such as Amazon CloudWatch Events, Amazon S3, and Amazon SNS and Encrypted Queues
.
В нем упоминается о присоединении политики к CMK. Тем не менее, есть возможность использовать alias/aws/sqs
. Мне было интересно, если я что-то здесь упустил.