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

TLDR:将 aws "可信关系"/"可信实体"视为 AWS 服务主体可以实现(代入角色(您授予的权限。

快速示例:如果我创建了一个角色,其中包含从 s3 读取存储桶的权限,并且 ec2 是此角色中的可信关系,则只有 ec2 实例可以实施此角色并可以访问此 s3 存储桶。 例如,RDS 不能代入此角色,因此不能。您授予的权限x只有 aws 服务y可以使用它们。

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

我希望能够从s3下载一些配置文件 存储桶到我的 Web 应用程序,Web 应用程序在 EC2 上运行 实例,S3 存储桶名称为"应用程序配置">

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

该角色包含以下策略

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::configuration-for-app/*"
}
]
}

受信任的策略将是:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}

我向服务主体<y>(我的 ec2 委托人 (ec2.amazonaws.com( 运行应用程序(授予<x>权限(代入"my-app-role"(的权限,以便完成操作<z>(从存储桶"app-for-app"获取 s3 配置文件,角色包含此特定的 s3 策略(。

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

相关内容

  • 没有找到相关文章

最新更新