aws-iam - AWS - IAM 角色和信任关系
问题描述
我是 AWS 和 IAM 的新手,并试图了解角色和信任关系。
我完全理解为什么要使用角色、如何创建角色以及它们的用例。
我没有得到的是信任关系步骤。在我见过的几乎所有情况下,它都是一对一的关系。EC2 需要对 EC2 的信任。为什么会有额外的步骤?
如果我创建一个 EC2 实例和一个具有 S3 权限的角色,为什么这还不够?
解决方案
角色用于在一段时间内向特定参与者授予特定权限。因此,一个角色需要两件事:权限策略(可以访问哪些资源以及可以采取哪些操作)和信任策略(哪些实体可以承担该角色)。
例如,以下 CloudFormation 代码段创建一个角色 ( MyInstanceRole
),并使用策略 ( MyWritePolicy
) 授予对 S3 存储桶的访问权限,并允许 EC2 实例(Principal
或信任部分)担任该角色:
MyInstanceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: sts:AssumeRole
Principal:
Service: ec2.amazonaws.com
Path: '/'
RoleName: MyInstanceRole
Policies:
- PolicyName: MyWritePolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Sid: WriteBackups
Action:
- s3:PutObject
Effect: Allow
Resource: !Join ['', ['arn:aws:s3:::', !Join [ '-', [ 'bucketName', !Ref Environment ] ], '/*' ] ]
在许多情况下,只有一个Principal
,但如果需要,可以有多个(AWS 账户、IAM 用户、IAM 角色、联合用户或假定角色用户)。
现在使用更新的 IAM 控制台更轻松地创建和管理 AWS IAM 角色有一篇方便的博客文章,其中提供了更多详细信息。
推荐阅读
- java - 使用 YouTube Data API v3 确定 YouTube 频道的上传速率
- python - 值错误:x、y 和格式字符串不能为 None
- visual-studio - Visual Studio 灯泡不再显示“修复格式”
- android - 使用 CollapsingToolbarLayout 在 CoordinatorLayout 中的当前滚动位置
- java - groovy MissingMethodException:没有方法签名:java.lang.String.getFileSystem()
- html - SVG
- python - click() 确实执行了一次点击,但以错误结束
- scala - 在 Scala/Spark 中获取键/值对的键
- python - pyodbc 中的用户密码与 pyinstaller 无关?
- python - 如何根据熊猫中的特定列值识别数据框中的“子”数据框