Hello大家好,我们今天的课时的内容是AWS Service Catalog 。
AWS Service Catalog服务对于新的AWS使用者比较友好,当一个AWS新手需要创建资源时,往往需要面对很多选项,比如相对于EC2,要选择AMI,实例大小等等,在这个时候往往这个用户就蒙了,只能遵循自己的内心去选择了(笑脸)。结果就会导致创建的资源不符合组织的标准,不符合组织的标准化要求,甚至有可能出现其他如安全等问题。
通过 Service Catalog,就可以为这类用户提供一个自助服务门户
集中启动的资源,这些资源是通过 Service Catalog服务中的Portfolios,即产品组合来启动的。产品组合由产品及配置信息组成,是由管理员预先定义的,比如虚拟机,数据库,一些存储资源如EFS,等等。
也就是说,我们可以把预先定义好的、满足合规性、标准化要求的资源,作为Portfolios放到一个门户上,然后提供给使用者集中部署资源,因为资源是由管理员预先定义好的,通过这种方式就可以实现组织的一致性的监管和满足合规性要求;使用者也无需配置一大堆的选项,从而可以快速启动资源。
举个简单的例子,在很多组织中,研发部门可能都要启动一些AWS资源来进行内部测试,如果不同的研发人员都去启动EC2实例,然后选择AMI,选择实例类型等等,那么最终的资源的规格肯定是五花八门,肯定有用Centos的,有用Ubuntu的,还有同一系统不同的版本情况,以及不同的实例大小等等。这样对于组织后续的管理将会带来很大的麻烦,无法进行一致性的监管,也无法满足合规性要求,甚至可能会自行选择一些配置比较高而用不到或需要使用付费的实例用于测试,这样还会导致成本浪费。
所以Service Catalog服务,就可以解决这些问题。通过预先定义好允许启动的资源,做好相应的配置,放到一个集中的地方提供给研发进行快速启动和使用。这样的话,研发同学只要页面点击几次就可以进行部署,而且也可以遵循组织的一致性标准。
Service Catalog 管理员及用户流程
那Service Catalog 是如何工作的呢?它底层是依赖于CloudFormation的。
首先,对于Service Catalog,有两种用户类型,管理员以及最终的用户
,也就是使用者。
管理员需要定义Product产品
,那什么是Service Catalog的产品?
产品实际上就是由一个管理员定义的CloudFormation模板。管理员需要擅长编写CloudFormation模板,然后将这些和配置信息放到一起,就形成了一个Portfolios,我们就叫他产品组合吧。所以产品组合就是产品以及配置信息的一个集合。
然后每一个产品可分配IAM角色,当用户启动已分配有 IAM 角色的产品时,AWS Service Catalog 将使用该角色通过 AWS CloudFormation 启动此产品的云资源,这种方式叫作添加启动约束。
好,这样的话管理员创建的产品组合就可以在 Service Catalog 门户提供给最终用户启动。
然后讨论最终用户,也就是使用者。
向用户授予产品组合的访问权限,让用户能够浏览该产品组合并启动其中的产品。
然后这些用户,比如想要启动EC2实例堆栈,他们就可以在Service Catalog控制台
启动这个产品。而产品是对应CloudFormation模板的,所以就会启动CloudFormation模板中预先配置好的资源,最终提供供应的产品,而这些产品已经经过适当的配置,适当的标记且准备好投入使用了。
在这个流程中,最终用户需要授予产品组合的访问权限,即访问产品组合以及Service Catalog控制台的权限;
用户是不需要被分配启动CloudFormation模板的IAM权限的。上面也提到过,可以通过给对应的产品添加启动约束。指定一个IAM角色,然后将各种需要的cloudformation权限,以及需要的EC2,S3权限都添加到这个角色中。最终用户启动产品时AWS Service Catalog 将代入此角色,这样做的好处是不用给最终用户太多太大的权限就可以启动Service Catalog中的产品,可以确保最终用户具有最低IAM权限,这是IAM的最佳实践,前面课程也讲过,分配权限要基于最小权限原则。
Service Catalog理论
好,我们继续Service Catalog理论的内容。
IT管理员在AWS上可以创建、管理和向最终用户发布已批准的产品组合。
每一个产品Product都是一个CloudFormation模板。利用CloudFormation模板可以做的事情就非常的多了,如创建虚机镜像,服务器,软件,数据库,区域,IP地址范围等等。
使用CloudFormation可以确保部署的一致性,实现组织标准化管理。
在前面的流程中,我们没有给最终用户使用CloudFormation的权限,而是只给了使用Service Catalog的权限,然后通过Service Catalog产品来调用后端的CloudFormation模板实现用户的需求。通过将产品添加到产品组合,并进行相应的配置后,最终用户,比如组织的某个部门的人员,就可以自助服务启动相应的产品。
所有的这些产品都是通过Service Catalog集中管理的。
为什么这么做呢,可以帮助我们的组织实现资源的一致性监管、满足合规性要求等等。
对于认证考试来讲,当有题目的场景是用户没有太多的AWS相关的知识或者不了解所有的启动时的配置选项,但是想要启动资源时,就非常适合使用Service Catalog。提前定义好CloudFormation模板,确保让用户只能做你想让他们做的事情,创建好产品,使用标签、配置等等实现标准化,最终提供给用户使用。
最后,Service Catalog 可与自助服务门户集成,如 ServiceNow,这样的话您就可以实现让最终的用户通过组织的ServiceNow门户来启动预先批准的AWS 产品。
好的,以上就是Service Catalog所有的内容,要记住使用Service Catalog的场景,希望本课时能够给大家带来帮助。