首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS - IAM角色和信任关系

AWS - IAM角色和信任关系
EN

Stack Overflow用户
提问于 2018-08-25 09:18:16
回答 2查看 16.1K关注 0票数 14

我是AWS和IAM的新手,正在尝试理解角色和信任关系。

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2018-09-11 10:51:35

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

例如,下面的CloudFormation代码段创建一个角色(MyInstanceRole),其中包含一个策略(MyWritePolicy),该策略允许访问S3存储桶,并允许EC2实例( Principal或信任部分)承担该角色:

代码语言:javascript
运行
复制
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角色、联合用户或假设角色用户)。

Now Create and Manage AWS IAM Roles More Easily with the Updated IAM Console上有一篇很方便的博客文章,提供了更多细节。

票数 16
EN

Stack Overflow用户

发布于 2021-02-18 21:32:45

aws TLDR:将aws可信关系看作是哪些服务可以实现(承担角色)您所给予的权限。

快速示例:如果我创建了一个角色,其中包含从s3读取存储桶的权限,并且ec2在该角色中是可信关系,则只有ec2实例可以实现该角色,并且可以访问该s3存储桶。例如,rds不能承担这个角色,因此不能。您授予只有aws service y才能使用的权限x。

让我用一些简单的用例来解释一下

我希望能够从s3存储桶中下载一些配置文件到我的web应用程序中,web应用程序在ec2实例上运行,s3存储桶的名称是“configuration -

-app”

我正在创建一个名为" my -app- role“的角色,它包含几个策略,其中之一是s3策略,它可以访问我的s3亚马逊资源”应用程序的配置“,并且具有显式的权限来获取它(不删除i,不更改它-只是获取它)。由于应用程序在角色上运行-在此要求中,这些服务之间的信任关系将是角色角色,我在ec2上运行的应用程序可以承担该角色( my - <ec2> -> <s3> -),并访问(其中包含正确的策略) s3并获取配置文件。

role包含此策略

代码语言:javascript
运行
复制
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "s3:GetObject"
      "Resource": "arn:aws:s3:::configuration-for-app/*"
    }
  ]
}

受信任策略将为:

代码语言:javascript
运行
复制
    {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

我将权限(“my -app- <x>”的假定角色)授予服务<y> (运行我的应用程序的ec2实例)的权限,以便完成<z>操作(从“应用程序的配置”存储桶中获取s3配置文件。角色包含此特定的s3策略)。

重要-如果aws中的服务不同(如rds / elasticsearch / amplify等)想要承担此角色并获取此应用程序的配置文件这是不可能的,因为此示例中只有ec2实例具有正确的受信任策略。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52013295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档