【问题标题】:How do I add SQS IAM for my Lambda function?如何为我的 Lambda 函数添加 SQS IAM?
【发布时间】:2017-05-07 21:08:37
【问题描述】:
我能够让它与 serverless.yml 一起工作:
iamRoleStatements:
- Effect: "Allow"
Action:
- "sqs:SendMessage"
- "sqs:ListQueues"
Resource: "arn:aws:sqs:us-east-1:*:*"
但我只想将它应用于某个功能。我该怎么做?
【问题讨论】:
标签:
amazon-web-services
amazon-iam
serverless-framework
【解决方案1】:
从docs 开始,您需要在resources 下创建函数角色,并在您的函数中引用这个新角色。
例子:
service: my-test
provider:
name: aws
runtime: nodejs6.10
functions:
hello:
role: mySQSRole
handler: handler.hello
resources:
Resources:
mySQSRole:
Type: AWS::IAM::Role
Properties:
RoleName: mySQSRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
Action: sts:AssumeRole
Policies:
- PolicyName: myPolicyName
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- sqs:SendMessage
- sqs:ListQueues
Resource: "arn:aws:sqs:us-east-1:*:*"