问题描述
这些two properties可以在模板中设置,我很好奇它们之间的区别以及应该使用哪个模板。
定义不清楚:
role: arn:aws:iam::XXXXXX:role/role # Overwrite the default IAM role which is used for all functions
iamRoleStatements: # IAM role statements so that services can be accessed in the AWS account
有人可以解释两者以及用例之间的区别吗?
我不确定是否应该仅使用应用程序所需的所有资源来创建新的提供程序级角色,并为其分配role
参数,还是应该保留默认角色(无服务器),然后添加我对iamRoleStatements
解决方法
iamRoleStatements
旨在包含此服务所需的最常见权限。例如,您有一个API网关和一堆lambda函数,它们都使用DynamoDB来存储事务数据。几乎所有的lambda函数都需要具有查询DynamoDB的权限,因此provider:
name: was
...
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:DescribeTable
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem
Resource:
- <DynamoDB table and indices arns>
应该这样配置。
iamRoleStatements
所有lambda都将获得与上面相同的role
。现在,假设您有一个特殊的lambda函数,需要完全 个不同的权限集。您可以在控制台中创建角色,然后使用iamRoleStatements
选项覆盖包含stages {}
的默认角色。