18-AWS STS – 获取临时凭证的自动化执行

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天的课程还是AWS STS服务的内容,AWS STS – 获取临时凭证的自动化执行。

我们开始今天的课程内容。

我们上节课讲了一个用户案例,通过将允许访问S3的权限策略附加到IAM角色,开发人员通过sts:Assumerole的方式获得该角色的临时访问凭证,然后使用此临时访问凭证访问AWS S3,我们也说了这种方式是AWS推荐的最佳实践,而不是为用户直接分配永久性的凭证。

看了课程的同学可能会有一个疑问,这种访问AWS资源的方式,当获取角色临时凭证后,需要手动将access key、secret key以及会话token复制到aws 的 credentials文件。而默认情况下临时凭证的有效期是一个小时,也就是说如果开发人员需要定期访问aws资源,就需要在凭证过期后再次运行sts assume-role命令,然后在将获取的新的临时凭证复制到aws 的 credentials文件中,这显然是一个低效的方式,而作为解决方案架构师来讲,如果您提供了这种方案给开发人员,开发人员恐怕不会遵循这个办法。

那怎么解决这个问题呢?AWS提供了一个自动化上述过程的一个方法,我们接下来来看一下如何实现。

是这样的,如果您调试是位于Amazon EC2实例上,而这台EC2附加了IAM角色,则AWS CLI将自动为您检索凭证,您不需要配置任何凭据。

指定AWS CLI承担角色的配置方法

而我们现在这个用户案例,需要在本地CLI调用AssumeRole,在使用返回的临时凭证访问AWS资源,所以您需要进行配置,指定AWS CLI承担的角色,然后AWS CLI就会自动为您进行相应的AssumeRole调用,那怎么指定AWS CLI承担的角色呢?

需要在aws cli的credentials文件中增加一个profile ,包括两个配置项:

  • role_arn,需要配置为您需要担任角色的ARN,所以我们这里需要配置成我们在上节课新建的角色stroll的ARN
  • source_profile,这里配置执行assume-role的IAM用户凭证所在的profile

我们现在来配置下:

切换到终端,这里是我们上节课执行的sts assume-role命令,–role-arn参数后面指定了想要承担角色stroll的arn,我们复制一下,然后编辑AWS credentials文件 。

可以看到我们新建了一个名为automate的profile,里面有包括我们前面PPT讲的两个配置项, 将复制的角色arn粘贴到role_arn这里。

source_profile,这里需要配置执行assume-role的IAM用户凭证所在的profile,对应我们这个案例就是开发人员的IAM用户zhangsan;zhangsan用户凭证所在的profile就是这里的default,我们在上节课将其access_id 、secret_key都配置在了default,大家还记得吧,所以我们直接配置为default 。

所以,通过这两个配置项,AWS会自动使用default字段的zhangsan的安全凭证,返回role_arn配置项配置的角色stroll的凭证,所以我们就可以通过aws cli命令,通过指定automate的profile 执行命令。

保存退出。

现在我们就将aws cli承担的角色的arn,以及执行assume-role的zhangsan用户凭证所在的profiile都配置完了,我们现在执行下命令:
aws s3 ls --profile automate

这里要注意–profile主要指定我们新创建的automate,看下命令执行结果:

可以看到成功列出了s3存储桶。

通过配置aws cli承担角色这种方式,我们就不必在临时凭证过期时在手动执行assume-role命令获取临时凭证,在手动配置到AWS credentials文件,而这一切都将由aws自动帮您搞定。

好的,以上就是我们今天的课程内容,我们介绍了配置AWS CLI承担IAM角色的步骤,希望同学们有收获。

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问,请联系我们:

  • AWS爱好者的网址是www.iloveaws.cn。
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识
  • 加入【AWS知识星球】持续学习。

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

2020年4月20日

0 responses on "18-AWS STS - 获取临时凭证的自动化执行"

Leave a Message

error: Content is protected !!