如何解决无服务器模板中的提供程序级别角色和iamRoleStatements有什么区别?
这些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 {}
的默认角色。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。