amazon-web-services - AWS IAM - 只允许用户为服务创建角色
问题描述
我正在开发一个应用程序,我正在为一个问题而苦苦挣扎。我的应用程序有 Lambdas 和 DynamoDBs 服务,前者需要权限才能调用后者。Principal
我用equals创建一个角色来解决这个问题Service: lambda.amazonaws.com
。
我想授予其他开发人员创建角色的权限,这种方式允许开发人员仅创建主体为服务或联合的角色,并拒绝它是用户或帐户。
例如,将允许此角色:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Federated: cognito-identity.amazonaws.com
Action:
- sts:AssumeRoleWithWebIdentity
Path: ...
Policies: ...
这是不允许的:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: sts:AssumeRole
Principal:
AWS: arn:aws:iam::<accountid>:user/<username>
Path: ...
Policies: ...
我试图达到这一点,因为用户可以创建一个具有管理员访问权限的角色并承担它。
另外,还有其他方法可以解决这个问题吗?
解决方案
我没有找到解决我的问题的方法,解决方法是创建具有特定路径的服务角色(/custom-iam/service-role/
例如),并允许开发人员仅传递具有此类路径的角色:
Effect: Allow
Action: iam:PassRole
Resource: 'arn:aws:iam::*:role/custom-iam/service-role/*'
推荐阅读
- javascript - 在文本框上绑定gridview onkeypress
- ios - UIStackView 无法满足的自动布局约束
- node.js - TypeError:无法读取未定义的属性“元素”
- postgresql - 创建一个物化视图,该视图继承进行视图调用的用户的权限
- postgresql - PostgreSQL INSERT INTO 生产表 FROM 暂存表
- php - 如何在 Authorize.net PHP SDK 中设置客户 IP 地址?
- python - 如何将 ros 导入 PyCharm
- excel - Excel VBA - 根据两列中的值动态更改单元格值
- python - 取消列出数据框熊猫中的字典列表
- python - Folium:将 GeoJson 添加到地图时的颜色映射