我有一个具有 lambda 触发器的 DynamoDB 流。我还配置了一个带有 lambda 的 DLQ,如果 lambda 发生故障,这些流消息会在哪里发生。
目前,SQS 队列(LambdaFailure-DLQ)的访问策略如下。但是,我只想为 lambda 提供最小权限,以将相关操作推送到 DLQ 中。
"Statement": [
{
"Sid": "Sid12345xxxx",
"Effect": "Allow",
"Principal": "*",
"Action": [
"SQS:ChangeMessageVisibility",
"SQS:DeleteMessage",
"SQS:GetQueueAttributes",
"SQS:GetQueueUrl",
"SQS:ReceiveMessage",
"SQS:SendMessage",
"SQS:SetQueueAttributes"
],
"Resource": "arn:aws:sqs:us-west-2:accountxyz:LambdaFailure-DLQ"
}
]
我不想使用 * 作为主体,因为这会导致违反政策。我怎样才能修改它只允许这个队列的 lambda(比如说 X)权限。
PS:lambda 触发器、DynamoDB 流和 SQS 队列都是从同一个帐户创建的。