AWS IAM - 在承担角色的背景下谁是主要负责人?

问题描述 投票:1回答:2

Objective

在承担IAM角色的情况下,清除在AWS中执行的操作的主体/谁是谁的混淆。

Background

IAM角色具有信任关系选项卡,用于定义谁可以担任该角色。

enter image description here

它在JSON中描述。

statement {
  sid    = "1"
  effect = "Allow"

  principals {
    identifiers = ["elastictranscoder.amazonaws.com"]
    type        = "Service"
  }
  actions = ["sts:AssumeRole"]
}

根据Roles Terms and Concepts的说法,那些担任该角色的人必须是用户或角色。

主要 AWS中可以执行操作和访问资源的实体。委托人可以是AWS账户root用户,IAM用户或角色。您可以通过以下两种方式之一授予访问资源的权限:

信托政策 JSON格式的文档,您可以在其中定义允许该角色的人员。此可信实体作为文档中的主要元素包含在策略中。

如果我使用我的AWS账户发出assume-role命令来获取临时凭证,然后运行一个操作,例如谁/什么是委托人?转码视频文件?根据AWS文档,它必须是用户或角色。

  1. elastic transcoder.Amazon AWS.com?
  2. 与elastictranscoder.amazonaws.com定义信任关系的角色?
  3. 我的用户帐号?

如果是elastictranscoder.amazonaws.com,那么:

  1. 这是用户还是角色?
  2. 从审计角度来看,是将elastictranscoder.amazonaws.com记录为执行该行动的委托人吗?哪里可以确定谁成为elastictranscoder.amazonaws.com的时间和方式?
amazon-web-services access-control amazon-iam
2个回答
1
投票

AWS IAM可以被认为是对三件事的抽象:

  1. 身份(角色,用户,用户组)
  2. 政策(基于身份的政策,基于资源的政策)
  3. 资源(AWS资源)。

json由元素组成,'Principal'是'Policy'json文档中的json元素之一。主要元素仅存在于基于资源的策略jsons中。

主要抽象与身份抽象处于相同的抽象级别。它扩展了身份抽象,并通过粒度身份(即Amazon资源名称(ARN))进行标识。它仅用于基于资源的策略。

主要元素用于指定AWS账户,AWS服务,IAM角色,IAM用户,联合用户等实体,以及操作元素指定操作主体可以执行的操作。

AFAIK,在您的上下文中,当您使用我的AWS账户发出assume-role命令以获取临时凭证时,没有Prinicipal涉及正弦,没有涉及资源策略它只是基于身份的策略,它使您的IAM角色承担角色。


0
投票

通过CLI或其他方式发出AssumeRole API时,主体是正在使用其凭据的标识。例如,如果您使用IAM用户的凭据承担角色,则主体是IAM用户。

由于成功的AssumeRole API,您会收到临时凭证,当您使用这些临时凭证执行任何操作时,主体将是IAM角色。

在您的示例中,您信任“elastictranscoder.amazonaws.com”,即Elastic Transcoder服务本身。您可以审核服务如何在CloudTrail日志中使用该角色。

© www.soinside.com 2019 - 2024. All rights reserved.