02-身份账户体系结构(Identity Account Architecture)

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

【 Domain 1的组织复杂性设计(Design for Organizational Complexity)】——02-身份账户体系结构(Identity Account Architecture)

Hello大家好欢迎回来,我们今天将讨论身份账户体系结构(Identity Account Architecture)内容,是【 Domain 1的组织复杂性设计(Design for Organizational Complexity)】的第二篇内容。

AWS解决方案架构师认证 Professional / AWS Certified Solutions Architect– Professional —2019系列的课程的最终目的是帮助大家顺利通过新版考试。随着后续系列课程的持续深入,我们的目标是将所有SAP-C01新版考试涉及到的内容、考点逐步推出系列课程,帮助大家备考。此系列课程也同样适用于想了解和学习AWS的同学,请大家多多支持。

由单一AWS账户发展成多个,带来的管理问题

现在很多创业型以及小、中型企业使用AWS是从一个单一的AWS账户开始的,如果您只有一个AWS账户,管理任务就变的简单多了。假设有一个开发人员zhangsan想要访问这个 AWS账户,只需要给zhangsan建立一个IAM用户和密码,如业务需要你可以继续为其创建一个访问密钥,这样即可满足需求;如果zhangsan离职了,您可以禁用其用户和密码,然后停用访问密钥,这部分管理任务非常的简单。

然而当组织逐步发展壮大后,管理AWS账户将变得相当有挑战性。假设我们企业由1个AWS账户发展的到了4个账户,ACCOUNT A、B、C、D。同样, 我们假设这个开发人员zhangsan有业务需要访问这4个AWS账户的资源,那么常规的做法是在ACCOUNT A、B、C、D分别为开发人员zhangsan创建IAM用户,而且要在这4个账户中分别为这个开发人员zhangsan建立访问密钥。假设开发人员zhangsan离开组织了,您需要分别登录这4个AWS账户,禁用 zhangsan的IAM用户,并在每一个AWS账户中停用访问密钥。

这肯定不是一个理想的管理方式。因为随着组织的逐步发展,可能有几十、几百个员工需要使用AWS,需要创建和管理用户,您肯定不希望每天的工作都是在添加、管理IAM用户。

中央身份账户体系

为了解决这个管理问题,您需要中央身份账户体系。在组织中设置一个独立的、专用的AWS账户,作为身份账户(Identity Account)。在这个身份账户中,集中为您的组织建立用户、密码以及访问密钥、管理用户。

假设我们也已经为身份账户和组织拥有的其他AWS账户建立了信任策略,并完成了相应的配置,在前面提到的这个多AWS账户场景下,只需要在作为身份账户(Identity Account)的AWS账户下,为开发人员zhangsan建立IAM用户,然后只需要使用zhangsan登录身份账户,就可以切换并登录其他不同的AWS账户A、B、C、D,访问其他AWS账户中的资源,当然取决于zhangsan拥有的权限。

在中央身份账户体系下,如果一个新的员工加入您的组织,所有您要做的你只需要将他加入这个身份账户(Identity Account)中,如果他离开组织,你也只需要将他从这个身份账户(Identity Account)中移除即可。如果他忘记密码,您也只需要在这个身份账户中重置他的密码即可。所以,用户管理任务在这个中央账户体系中将会变的非常容易。因为您只需要在作为身份账户的AWS账户中集中管理用户。

中央身份账户切换至其他AWS账户下的角色访问资源快速演示

接下来的内容,我们快速演示上面讲的中央身份账户体系,通过登陆身份账户并切换至其他AWS账户下角色访问相应资源。

假设测试场景为我们有两个AWS账户,一个作为身份账户(Identity Account)(ID:256454142732),另一个账户作为生产环境账户(ID:458556760960)。括号中的ID为AWS账户ID,可通过登陆AWS管理控制台获得。

我们在身份账户(ID:256454142732)中创建开发人员用户shangsan,并且不会在生产环境账户中创建这个用户。我们看下zhangsan这个用户在登陆身份账户(Identity Account)(ID:256454142732)的情况下,切换至生产环境账户(ID:458556760960)下的角色CA-TEST,并拥有生产环境账户(ID:458556760960)下的S3存储桶的完全访问权限。

通过这种方式实现了通过中央身份账户统一、集中管理所有用户,通过切换至其他AWS账户下的角色,定义角色权限策略,访问其他AWS账户下的资源。

实现中央身份账户体系的演示主要有三个步骤:

1.在身份账户(ID:256454142732)中创建一个开发用户,IAM用户名为zhangsan。
2.在生成环境账户(ID:458556760960)中创建一个跨账户角色:CA-TEST
3.在身份账户(ID:256454142732)中配置允许用户zhangsan 切换到 生产环境账户(ID:458556760960)的CA-TEST 角色。

我们将在下一个教程中实操演示这些步骤。在今天的教程内容中,我们假设上面的步骤都已经完成,将快速展示一下最终实现的效果。

首先,我们使用IAM用户zhangshan登陆身份账户(ID:256454142732)。账户填写身份账户的账户ID,用户名为zhangsan,填写对应zhangsan的密码。

成功登陆后进入AWS管理控制台,控制台右上角可以看到用户@AWS账号ID 。

这里插一个题外话,作为身份账户的AWS账号,最好只负责身份账户管理唯一用途,确保身份账户中的用户没有任何权限或者服务,这是我们建议的实践。当然除了我们提到的给予切换角色的权限,这块的内容我们会在下一个教程中演示

我们使用zhangsan登陆了身份账户(ID:256454142732),然后下一步需要在AWS管理控制台上将其切换为AWS生产环境账户(ID:458556760960)的角色CA-TEST。

zhangsan切换时需要一个signin地址,如下:(地址可以在CA-TEST角色的摘要中找到,下一个课程会详细说明)
https://signin.aws.amazon.com/switchrole?roleName=CA-TEST&account=458556760960

我们访问下这个地址

进入到切换角色页面,其中账户为生产环境账户ID,角色为我们在生产环境账户中建立的CA-TEST角色。在显示名称输入框我们输入生产账户,这样标示会看着比较清楚,然后点击切换角色。

点击切换角色后实际发生的是身份账户(ID:256454142732)的zhangsan用户,已经登录到了生产环境账户(ID:458556760960),且已经切换成为我们在生产环境账户中创建的角色CA-TEST。管理控制台右上角的图标可以看到这已经是登陆到生产环境账户了,我们可以在这个账户通过给角色分配权限给zhangsan适当的许可和权限。

我们假设zhangsan用户需要访问生产环境账户中的S3存储桶,您就可以将CA-TEST角色分配S3的完全访问权限,我们这里已经分配完成了,我们测试下:

目前用户zhangsan用户已经可以通过登陆身份账户(Identity Account),然后通过跨AWS账户角色访问的方式,拥有生产环境账户中的S3存储桶资源的完全访问权限了。

在AWS管理控制台点击生产环境—返回zhangsan,将会从生产环境账户的角色返回到身份账户的zhangsan环境。

以上课程内容是身份账户体系结构, 我们介绍了身份账户体系结构,并快速演示了中央身份账户体系,通过登陆身份账户并切换至其他AWS账户下角色访问相应资源。在下一个课程,我们将会从头开始创建并讲解今天的演示环境,让大家对于这部分内容有一个更深的了解。

我们今天讨论的内容是身份账户体系结构(Identity Account Architecture)内容,是【 Domain 1的组织复杂性设计(Design for Organizational Complexity)】的第二篇内容。

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

2019年12月31日

0 responses on "02-身份账户体系结构(Identity Account Architecture)"

Leave a Message

error: Content is protected !!