清除在具有IAM角色的情况下在AWS中执行操作的主体是谁的困惑。
IAM角色具有“信任关系”选项卡,该选项卡定义了谁可以担任该角色。
它以JSON描述。
statement {
sid = "1"
effect = "Allow"
principals {
identifiers = ["elastictranscoder.amazonaws.com"]
type = "Service"
}
actions = ["sts:AssumeRole"]
}
根据Roles Terms and Concepts,可以承担该角色的人员必须是用户或角色。
校长
AWS中可以执行操作和访问资源的实体。主体可以是AWS账户根用户,IAM用户或角色。您可以通过以下两种方式之一授予访问资源的权限:信任政策
JSON格式的文档,您可以在其中定义允许谁担任该角色。此受信任实体作为文档中的主要元素包含在策略中。
如果我使用自己的AWS账户发出assume-role命令以获取临时凭证,然后运行某个操作(例如,转码视频文件?根据AWS文档,它必须是用户或角色。
如果是elastictranscoder.amazonaws.com,则:
答案 0 :(得分:0)
通过CLI或其他方式发布AssumeRole API时,主体是正在使用其凭据的身份。例如,如果您使用IAM用户的凭据承担角色,则主体是IAM用户。
成功获得AssumeRole API会收到临时凭证,当您使用这些临时凭证执行任何操作时,委托人将是IAM角色。
在您的示例中,您信任“ elastictranscoder.amazonaws.com”,即Elastic Transcoder服务本身。您可以审核CloudTrail日志中该角色的服务使用情况。
答案 1 :(得分:0)
AWS IAM可以看作是对三件事的抽象:
json由元素组成,“ Principal”是“ Policy” json文档中的json元素之一。主要元素仅存在于基于资源的策略json中。
主体抽象与身份抽象处于相同的抽象级别。它扩展了身份抽象,并通过粒度身份(即Amazon资源名称(ARN))进行标识。仅与基于资源的策略一起使用。
Principal元素用于指定诸如AWS账户,AWS服务,IAM角色,IAM用户,联合用户之类的实体,而action元素用于指定主体可以执行的操作。
AFAIK, 根据您的情况, 当您使用我的AWS账户发出accept-role命令以获取临时证书时,没有涉及Prinicipal,因为没有涉及资源策略,只是基于身份的策略使您的IAM角色承担角色。