使用sam deploy(其中sam deploy
是aws 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-0000000cc4
。 Autodeploy
是分配给EC2的角色的名称。该用户在堆栈创建完成后消失。
assumed-role
在其arn中表示什么?
Autodeploy/i-0000000cc4
在arn中表示什么?
什么是aws:sts
类型的资源?
答案 0 :(得分:1)
您的问题的信息可以在IAM文档参考部分 IAM标识符 [1]中找到。
某人扮演“ Accounting-Role”角色且其角色会话名称为“ 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]所述,会话上下文意味着您不是通过长期凭证进行身份验证,而是通过临时凭证进行身份验证:
默认情况下,由AssumeRole创建的临时安全凭证持续一小时。但是,您可以使用可选的DurationSeconds参数指定会话的持续时间。
[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