我有一个AWS Lambda函数,需要将消息发送到加密的SQS队列。有一次,我的AWS Lambda函数可以向这个加密的SQS队列发送消息。在我得到它的工作,我做了一些调整,以使他们更具体的权限。然后它突然停止工作,即使在我恢复到真正广泛的权限。
现在我总是遇到以下错误:
KMS.AccessDeniedException: The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access.
{
"Sid": "Allow specific lambda to use this key",
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*"
],
"Resource": "arn:aws:lambda:XXXXXX:function:XXXXXX"
}
我编辑了资源,但我三次检查了ARN,它是正确的。
我的Lambda函数附带了以下策略:
{
"Action": "sqs:*",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "kms:*",
"Resource": "*",
"Effect": "Allow"
},
我错过了什么?我不知道还有什么我可以改变,为什么它工作,然后它停止工作。。。
编辑
{
"Sid": "Allow AWS Lambda to use this key",
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*"
],
"Resource": "*"
}
{
"Action": "sqs:*",
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "kms:*",
"Resource": "*",
"Effect": "Allow"
}
编辑2
一定有什么我不明白的地方,因为这是不可预测的。。。
第一次更改:
IAM Statement Changes
âââââ¬âââââââââââ¬âââââââââ¬ââââââââââââââââââââââ¬âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¬ââââââââââââ
â â Resource â Effect â Action â Principal â Condition â
âââââ¼âââââââââââ¼âââââââââ¼ââââââââââââââââââââââ¼âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¼ââââââââââââ¤
â + â * â Allow â kms:GenerateDataKey â AWS:${lambda---------------------------------------/ServiceRole} â â
âââââ´âââââââââââ´âââââââââ´ââââââââââââââââââââââ´âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ´ââââââââââââ
结果:我可以再次向SQS队列发送消息
IAM Statement Changes
âââââ¬âââââââââââ¬âââââââââ¬ââââââââââââââââââââââ¬âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¬ââââââââââââ
â â Resource â Effect â Action â Principal â Condition â
âââââ¼âââââââââââ¼âââââââââ¼ââââââââââââââââââââââ¼âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¼ââââââââââââ¤
â - â * â Allow â kms:GenerateDataKey â AWS:${lambda---------------------------------------/ServiceRole} â â
âââââ¼âââââââââââ¼âââââââââ¼ââââââââââââââââââââââ¼âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¼ââââââââââââ¤
â + â * â Allow â kms:* â AWS:${lambda---------------------------------------/ServiceRole} â â
âââââ´âââââââââââ´âââââââââ´ââââââââââââââââââââââ´âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ´ââââââââââââ
第三个变化:
IAM Statement Changes
âââââ¬âââââââââââ¬âââââââââ¬ââââââââââââââââââââââ¬âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¬ââââââââââââ
â â Resource â Effect â Action â Principal â Condition â
âââââ¼âââââââââââ¼âââââââââ¼ââââââââââââââââââââââ¼âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¼ââââââââââââ¤
â - â * â Allow â kms:* â AWS:${lambda---------------------------------------/ServiceRole} â â
âââââ¼âââââââââââ¼âââââââââ¼ââââââââââââââââââââââ¼âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¼ââââââââââââ¤
â + â * â Allow â kms:GenerateDataKey â AWS:${lambda---------------------------------------/ServiceRole} â â
âââââ´âââââââââââ´âââââââââ´ââââââââââââââââââââââ´âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ´ââââââââââââ
结果:我仍然无法再向SQS队列发送消息?!?这里发生了什么?这与第一次变更的政策状态相同。。。。