You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS CLI为AWS Lambda授予向指定SQS发送消息的权限?

使用AWS CLI为Lambda授予SQS队列的sqs:SendMessage权限

要让Lambda函数能够向指定SQS队列发送消息,核心是给Lambda的执行IAM角色添加对应的权限(而非给Lambda本身添加调用权限,后者是用于授权其他服务调用Lambda的)。以下是具体操作步骤:

1. 获取必要的资源标识

1.1 获取Lambda函数的执行角色ARN

替换YOUR_LAMBDA_NAME为你的Lambda函数名,运行命令:

aws lambda get-function --function-name YOUR_LAMBDA_NAME --query 'Configuration.Role' --output text

输出结果类似arn:aws:iam::123456789012:role/your-lambda-exec-role,其中your-lambda-exec-role就是后续要用到的角色名称。

1.2 获取SQS队列的ARN

若已知道队列ARN可跳过此步骤。替换YOUR_QUEUE_URL为你的SQS队列URL,运行命令:

aws sqs get-queue-attributes --queue-url YOUR_QUEUE_URL --attribute-names QueueArn --query 'Attributes.QueueArn' --output text

输出结果类似arn:aws:sqs:us-east-1:123456789012:your-target-queue。

2. 为Lambda执行角色添加sqs:SendMessage权限

你可以选择两种方式添加权限:通过本地策略文件或直接内嵌JSON执行。

方式一:通过本地策略文件

  1. 创建名为sqs-send-policy.json的文件,替换YOUR_SQS_QUEUE_ARN为步骤1.2获取的队列ARN:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sqs:SendMessage",
            "Resource": "YOUR_SQS_QUEUE_ARN"
        }
    ]
}
  1. 替换YOUR_ROLE_NAME为步骤1.1提取的执行角色名称,LambdaSqsSendPermission为自定义策略名称(可修改),运行命令:
aws iam put-role-policy --role-name YOUR_ROLE_NAME --policy-name LambdaSqsSendPermission --policy-document file://sqs-send-policy.json

方式二:内嵌JSON直接执行

无需创建本地文件,直接替换所有占位符后运行:

aws iam put-role-policy --role-name YOUR_ROLE_NAME --policy-name LambdaSqsSendPermission --policy-document '{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sqs:SendMessage",
            "Resource": "YOUR_SQS_QUEUE_ARN"
        }
    ]
}'

3. 验证权限是否生效

运行以下命令查看已添加的策略,确认内容正确:

aws iam get-role-policy --role-name YOUR_ROLE_NAME --policy-name LambdaSqsSendPermission

注意事项

  • 确保AWS CLI已配置正确的凭证和区域(可通过aws configure检查)。
  • 若需更精细的权限控制(如限制消息大小、来源IP等),可在Statement中添加Condition字段。

内容的提问来源于stack exchange,提问作者Jesse O

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:22:22