15-AWS Security Token Service

文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
微信号:chenmoemo
关注公众号:AWS爱好者

【 Domain 2-新解决方案设计】——-AWS Security Token Service

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们今天的视频课程内容是AWS STS。

STS是IAM角色、联合身份验证的基础,在AWS SAP考试中也会经常遇到AWS STS场景的题目。

我们开始今天的视频课程:

我们在之前的课程已经讨论了IAM角色是如何工作的,我们来复习下。

当前有一个EC2实例和一个S3存储桶,这个S3存储桶代表众多AWS资源之一。EC2想要访问这个AWS资源,有两种方式可以做到。

第一种方式是在EC2中通过aws configure命令配置AWS访问密钥和私有访问密钥后访问资源;

第二种方式是附加IAM角色到EC2实例,然后附加IAM角色策略让我们的EC2能够访问AWS资源。

本节课后面的内容我们主要讨论第二种—通过IAM角色的方式。

通过附加IAM角色访问AWS资源

我们已经创建一个IAM角色,并在这个IAM角色附加了1个策略—S3 ReadOlny,当为IAM角色附加策略后, 我们已将IAM角色附加到EC2实例,这样EC2实例就可以只读访问S3存储桶了。

接下来我们在更深入讨论前,先对上述部分做个演示。

我们登陆aws管理控制台,在首尔区域运行着一台ec2实例iloveawscn,这台实例已经附加了一个iam角色,角色名为S3ReadOnly,我们进入到IAM,看一下这个角色附加的策略,目前有一个策略附加到了该角色,为AmazonS3ReadOnlyAccess策略。

因为目前该IAM角色已经附加到了EC2实例,所以这台EC2实例可以继承该IAM角色的S3 ReadOnly策略。

让我们快速登录到该EC2实例,切换到root,然后执行aws s3 ls命令,可以看到我们有列出S3存储桶的权限,因为该实例附加了角色,而这个角色有S3ReadOnly权限,所以我们可以直接通过EC2只读访问S3存储桶。

以上我们复习了IAM角色的工作方式。

通过metadata检索IAM角色临时安全凭证

我们继续,大家还记得ec2 实例的metadata的知识点吧,我们在这个EC2实例上执行下:

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/S3ReadOnly/

看一下命令以及返回结果。通过curl命令,获得实例元数据条目 iam/security-credentials/S3ReadOnly ,这里的S3ReadOnly就是我们之前附加在这个ec2的IAM角色名称,最终命令检索角色S3ReadOnly提供的安全证书。

我们在看下命令的返回内容,这个命令主要返回三个信息,accessKeyId、SecretAccessKey以及会话Token,还有过期时间,表明以上临时安全凭证在过期时间之后将会失效,我们这台EC2实例,就是使用以上临时安全凭证获得S3的只读访问权限的。

我们也可以将这些安全凭证拷贝到自己本地的电脑,然后在本地电脑通过这个临时安全凭证也可以获得同这个实例一样的只读访问s3存储桶权限。我们在后面的课程将演示其是如何工作的。

我们回到PPT,有一点需要注意的是,我们在这个EC2的meta data中获取accessKeyId、SecretAccessKey以及会话Token临时安全凭证,并不是IAM角色生成的,它们是AWS STS服务生成的,STS是负责提供上述这些临时安全凭证的服务。IAM角色与STS服务之间会建立信任关系,通过STS服务获得这些凭证。

我们来看下,进入到IAM-角色,S3ReadOnly角色,会看到有一个信任关系选项卡,我们点击编辑信任关系看下策略内容:

Principal委托人指定了一个service,ec2.amazonaws.com这个service;
action是sts:assumeRole,整个策略的意思为允许ec2.amazonaws.com服务执行sts:assumerole来获取临时安全凭证。

sts:assumerole这个动作非常关键,如果我们将这部分内容去掉,那么将无法生成访问密钥等安全凭证,ec2也将无法访问s3存储桶。

好的,我希望通过上面的介绍,同学们已经了解,这些存储在EC2角色metadata的临时安全凭证,是由STS服务生成,IAM角色并不负责任何生成安全凭证工作。

我们继续

临时安全凭证知识点

接下来我们花点时间介绍下临时安全凭证。

AWS STS 创建可控制对您的 AWS 资源的访问的临时安全凭证,并将这些凭证提供给受信任用户,在前面的演示中,受信任用户就是附加了角色的EC2实例。

临时安全凭证是短期凭证,可将这些凭证的有效时间配置几分钟到几小时,在一定时间后失效。临时安全凭证一直会保持轮转,过期时间后,旧的凭证将会失效。

使用临时安全凭证,您就不必随应用程序分配或嵌入长期 AWS 安全凭证,我们要知道嵌入长期AWS安全凭证是不安全的。

可允许用户访问您的 AWS 资源,而不必为这些用户定义 AWS 身份。临时凭证是角色和联合身份验证的基础。

一般来讲,安全凭证的轮换在我们日常工作中是一个挑战性的工作,尤其是当我们生成了一个永久访问的凭证时, 出于安全考虑,我们要定期对凭证进行轮换,这样的话即使安全凭证泄露或者被公开,也可以降低安全风险。而使用临时安全凭证,我们就不需要太关注凭证的轮换。临时安全凭证的使用期限有限,因此,在不需要这些凭证时不必轮换或显式撤销这些凭证。临时安全凭证到期后无法重复使用。

好的,以上就是今天的视频课程内容,我们今天介绍了AWS STS服务的基础知识,并演示了通过metadata,获取IAM角色的临时安全凭证,以及介绍了临时安全凭证并不是IAM角色生成的,他们是AWS STS服务提供的,STS是负责提供上述这些临时安全凭证的服务。

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

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

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

2020年3月13日

0 responses on "15-AWS Security Token Service"

Leave a Message

error: Content is protected !!