产品是您希望可以在 AWS 上部署的一组 AWS 云资源。产品可以包含一个或多个 AWS 资源,如 EC2 实例、存储卷、数据库、监控配置和网络组件,也可以是打包的 AWS Marketplace 产品。产品可以是运行 AWS Linux 的单个计算机实例,也可以是运行在自己环境中的完全配置的多层 Web 应用程序,或介于两者之间的任何内容。使用 AWS Service Catalog,您可以通过 AWS CloudFormation 模板或 Terraform 配置在内的多种方式创建产品。这些模板和配置定义了产品所需的 AWS 资源、资源之间的关系,以及最终用户在启动产品来配置安全组、创建密钥对和执行其他自定义操作时可插入的参数。
AWS Service Catalog 产品是 AWS CloudFormation 类型、Terraform 开源类型或 Terraform Cloud 类型的产品。AWS CloudFormation 类型的产品均作为 AWS CloudFormation 堆栈启动,是为产品实例置备的一组资源。对于 Terraform 开源类型和 Terraform Cloud 类型的产品,底层资源存储在 AWS Resource Groups 中并进行标记。通过允许您将产品实例作为一个单元进行置备、标记、更新和终止,AWS CloudFormation 堆栈和 AWS Resource Groups 简化了对产品生命周期的管理。
产品组合是指产品及配置信息的集合。使用产品组合有助于管理产品配置和可以使用具体产品的人员及其使用方式。利用 AWS Service Catalog,您可以为组织内的每类用户都创建一个自定义产品组合,并选择性地授予相应组合的访问权限。当您向产品组合中添加新版本的产品时,该版本可自动供该产品组合中的当前所有用户使用。您也可以与其他 AWS 账户共享您的产品组合,并允许这些账户的管理员根据附加约束条件分发您的产品组合。例如,对于开发人员,您可以定义一个开发环境产品组合,如用户可用于软件开发和测试的已批准版本的 LAMP 堆栈。另外,您还可以为营销组织定义一个包括营销活动网站和市场分析应用程序的产品组合。产品组合可以包含不同类型产品的组合,包括 AWS CloudFormation 类型的产品或 Terraform 开源类型和 Terraform Cloud 类型的产品。
AWS Service Catalog 允许您在目录中管理多个产品版本。因此,您可以根据软件更新或配置变更来添加新版本的模板及关联的资源。创建产品的新版本时,更新会自动分发到具有该产品访问权限的所有用户,允许用户选择要使用的产品版本。用户可以快速轻松地将产品的运行实例更新为新版本。
向用户授予产品组合的访问权限,让用户能够浏览该产品组合并启动其中的产品。通过应用 AWS Identity and Access Management(IAM)权限,控制哪些用户可以查看和修改您的产品和产品组合。IAM 权限可以分配给 IAM 用户、组和角色。当用户启动已分配有 IAM 角色的产品时,AWS Service Catalog 将使用该角色启动此产品的云资源。通过向每个产品分配一个 IAM 角色,可以避免向用户授予执行未获批操作的权限,并使他们可以使用目录置备资源。
约束用于限制可为某个产品部署特定 AWS 资源的方式。您可以使用约束对产品进行限制,以便进行管理或控制成本。系统提供了两种类型的约束:模板和启动。模板约束限制用户在启动产品时可以使用的配置参数(例如,EC2 实例或 IP 范围)。模板约束允许您重复使用产品的常规基础设施即代码 (IaC) 模板,并根据每个产品或每个产品组合对模板进行限制。启动约束允许您为组合中的产品指定一个角色。此角色用于在启动时置备资源,以便让您限制用户权限的同时,又可以使用户从目录置备产品。例如,对于营销用户,您可以允许他们创建营销活动网站,但是使用约束来限制他们置备基础数据库的权限。Terraform 开源类型和 Terraform Cloud 类型的产品支持启动限制。模板约束尚不适用于 Terraform 开源类型和 Terraform Cloud 类型的产品。
通过使用服务操作,您可以让最终用户在 AWS Service Catalog 中对您置备的产品执行操作任务,排查问题,运行经过批准的命令,或者请求权限,而无需为最终用户授予对 AWS 服务的完全访问权限。您使用 AWS Systems Manager 文档来定义服务操作。AWS Systems Manager 文档提供对用于实施 AWS 最佳实践的预定义操作(例如 Amazon EC2 停止和重启操作,您也可以创建自定义操作)的访问权限。 Terraform 开源类型和 Terraform Cloud 类型产品的服务操作尚不可用。
构建人员通过提供名称、描述以及与应用程序元数据、CloudFormation 堆栈的关联,可以在 Service Catalog AppRegistry 中定义自己的应用程序。关联的属性组表示您的企业为应用程序创建和管理的元数据。关联的 CloudFormation 堆栈表示与应用程序关联的 AWS 资源。这可能是在单个环境中需要的基础设施,或者,也可以包含跨所有环境为应用程序提供支持的代码库和管道。无论是现有的还是新的 CloudFormation 堆栈,都可以与应用程序关联。堆栈可以在模板自身中与应用程序关联,从而在配置过程中自动进行应用程序关联。
您的企业创建和管理属性,用以捕获对企业而言至关重要的应用程序元数据。应用程序属性支持 JSON 开放架构,提供了您所需要的灵活性来捕获企业元数据分类的复杂性。应用程序属性可能包括一些项目,例如应用程序安全性分类、组织所有权、应用程序类型、成本中心和支持信息。构建人员可以将必要的属性关联到他们的应用程序。属性更新后,将自动反映在所有关联应用程序中。