首页 > 解决方案 > AWS - IAM 角色和信任关系

问题描述

我是 AWS 和 IAM 的新手,并试图了解角色和信任关系。

我完全理解为什么要使用角色、如何创建角色以及它们的用例。

我没有得到的是信任关系步骤。在我见过的几乎所有情况下,它都是一对一的关系。EC2 需要对 EC2 的信任。为什么会有额外的步骤?

如果我创建一个 EC2 实例和一个具有 S3 权限的角色,为什么这还不够?

标签: aws-iam

解决方案


角色用于在一段时间内向特定参与者授予特定权限。因此,一个角色需要两件事:权限策略(可以访问哪些资源以及可以采取哪些操作)和信任策略(哪些实体可以承担该角色)。

例如,以下 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 角色有一篇方便的博客文章,其中提供了更多详细信息。


推荐阅读