本指南介绍了如何使用 App Lifecycle Manager 租户来整理已部署的单元,以及如何将资源部署到单独的租户项目中,以隔离和管理资源。
如需大致了解租户和租户项目,请参阅租户和租户项目。
准备工作
在创建租户项目或资源之前:
- 在生产者项目中创建 Terraform 配置、Artifact Registry 代码库,并创建包含 SaaS 应用的制品。如需了解如何设置 SaaS 产品,请参阅使用 App Lifecycle Manager 部署服务实例。
启用 App Lifecycle Manager 所需的 API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。验证您是否已在生产者项目中获得必要的服务账号和 Identity and Access Management 角色。这包括用户创建的服务账号以及授予
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com账号的生产者项目权限。
设置租户项目
当您将租户的资源预配到单独的项目中时,每个租户的资源、IAM 政策、配额和网络配置都会分开,从而降低一个租户发生违规或配置错误而影响其他租户的可能性。
您需要提供:
- 一个提供方项目,以及
为每个租户创建一个租户项目。
控制台
如需使用 Google Cloud 控制台设置租户项目和制作方项目,请执行以下操作:
- 创建一个生产者项目,并为每个租户创建一个租户项目。
- 为租户项目和制作方项目启用结算功能。
在租户项目中启用 App Lifecycle Manager 所需的 API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。验证您的租户项目是否具有所需权限的促动服务账号。
如需了解详情,请参阅 App Lifecycle Manager 服务账号。
您已成功设置租户项目和制作方项目。为制作方项目和租户项目创建并启用结算功能后,您就可以创建租户资源并将单元与租户相关联了。
gcloud
如需使用 Google Cloud CLI 设置提供方项目和租户项目,请执行以下操作:
创建您的提供方项目,并为每个租户创建一个租户项目:
gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id] gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]将
PRODUCER_PROJECT_ID:表示提供方项目 ID 的字符串标识符。TENANT_PROJECT_ID:表示租户项目 ID 的字符串标识符。
为租户项目和制作方项目启用结算功能:
gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID将
PRODUCER_PROJECT_ID:表示提供方项目 ID 的字符串标识符。TENANT_PROJECT_ID:表示租户项目 ID 的字符串标识符。BILLING_ACCOUNT_ID:您要与指定项目相关联的结算账号的 ID。
为每个租户项目授予执行服务账号必要的 Identity and Access Management 角色:
gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \ --role=ROLE将
TENANT_PROJECT_ID:表示租户项目 ID 的字符串标识符。PRODUCER_PROJECT_ID:表示提供方项目 ID 的字符串标识符。SERVICE_ACCOUNT:您要向指定项目中的服务账号授予的角色。ROLE:要授予的 Identity and Access Management 角色。您需要针对要向指定服务账号(例如
--role='roles/compute.admin')授予的每个角色运行gcloud projects add-iam-policy-binding。
您已成功设置租户项目和制作方项目。为制作方项目和租户项目创建并启用结算功能后,您就可以创建租户资源并将单元与租户相关联了。
创建租户资源
在 SaaS 产品中创建 tenant 资源来代表您的客户:
在 Google Cloud 控制台中,依次前往 App Lifecycle Manager > 租户。
点击创建。
在租户名称框中,为租户资源输入一个名称。
可选:在客户资源框中,提供具有消费者定义集成设置的消费者资源。
在 SaaS 产品框中,选择要与租户关联的 SaaS 产品。
在区域下拉菜单中,选择将存储租户元数据的区域。
可选:点击添加标签,为您的租户添加键值对标签。
点击创建以创建租户资源。
您已成功创建租户资源。
将单元与租户相关联
创建租户并部署单元后,您可以将它们彼此关联。 此关联主要用作组织标记,可帮助您整理哪些单元属于哪个租户。
如需详细了解如何部署单元,请参阅使用 App Lifecycle Manager 部署虚拟机。
将单元与租户相关联:
在 Google Cloud 控制台中,依次前往 App Lifecycle Manager > 租户。
点击要与单元关联的租户的名称。
点击修改。
在关联的单元部分中,点击添加单元。
选择要与此租户关联的单元。
点击完成。
点击保存。
所选单元与指示的租户相关联。
使用租户项目变量预配新单元
预配与租户关联的单元时,您必须提供 tenant_project_id 变量。
在 Google Cloud 控制台中,依次前往应用生命周期管理器 > 单元。
创建与单位种类关联的新单位。
点击预配。
选择发布以向您的租户单元进行配置。
选择您在租户项目中向其授予权限的促动服务账号。您应遵循最小权限原则,并且仅授予所管理资源所需的角色。
在输入变量部分:
- 验证
tenant_project_id变量是否与您在 Terraform 配置variables.tf文件中定义的相同。 - 在租户项目 ID 框中,提供租户项目的名称。
- 提供在 Terraform 配置中定义的输入变量。如果您未在 Terraform 配置中定义其他变量,请跳过此步骤。
- 验证
点击预配。
App Lifecycle Manager 使用指定的启动服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 变量,并在相应租户项目中创建虚拟机。
使用新版本重新配置设备
使用新版本重新配置现有单元时,您必须提供 tenant_project_id 变量。
在 Google Cloud 控制台中,依次前往应用生命周期管理器 > 单元。
选择与您的单元种类关联的单元。
点击修改预配。
选择您使用更新后的 Terraform 配置创建的版本。
选择您在租户项目中向其授予权限的促动服务账号。您应遵循最小权限原则,并且仅授予所管理资源所需的角色。
在输入变量部分:
- 验证
tenant_project_id变量是否与您在 Terraform 配置variables.tf文件中定义的相同。 - 在租户项目 ID 框中,提供租户项目的名称。
- 提供在 Terraform 配置中定义的输入变量。如果您未在 Terraform 配置中定义其他变量,请跳过此步骤。
- 验证
点击更新。
App Lifecycle Manager 使用指定的启动服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 变量,并在相应租户项目中创建虚拟机。
后续步骤
- 了解如何管理单元之间的依赖关系。
- 详细了解如何使用变量和变量映射。
- 查看服务账号所需的权限。