aws:sts 堆栈创建用户 - aws cli

aws:sts user for Stack creation - aws cli

使用 sam deploy,其中 sam deployaws cloudformation deploy 的包装器,我们 运行 下面来自 EC2 的命令,用于堆栈创建:

aws cloudformation deploy --template-file cfntemplate.yml --stack-name somestack-test --region us-east-1

在堆栈创建过程中,我们看到如下(如下图):


用户是:arn:aws:sts::${AccountId}:assumed-role/Autodeploy/i-0000000cc4Autodeploy 是分配给 EC2 的角色名称。该用户在堆栈创建完成后消失。



assumed-role在其arn中表示什么?

Autodeploy/i-0000000cc4 在它的 arn 中表示什么?

什么是aws:sts类型资源?

您的问题的信息可以在 IAM 文档参考部分找到 IAM 标识符 [1].

The active session of someone assuming the role of "Accounting-Role", with a role session name of "Mary":

arn:aws:sts::123456789012:assumed-role/Accounting-Role/Mary

aws:sts 部分表示该资源是安全令牌服务 (STS) [2] 的一部分。 assumed-role 部分表示您是通过会话上下文进行身份验证的,该会话上下文很可能是通过调用 aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/Accounting-Role" --role-session-name "Mary" [3].

之类的内容建立的

在您的情况下:Autodeploy 是角色名称,i-0000000cc4 是角色会话名称。

正如 cli 参考文献 [3] 所述,会话上下文 意味着您不是通过长期凭据而是通过临时凭据进行身份验证:

By default, the temporary security credentials created by AssumeRole last for one hour. However, you can use the optional DurationSeconds parameter to specify the duration of your session.

参考资料

[1] https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
[2] https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html
[3] https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html