App Lifecycle Manager 租户可让您将已部署的单元和部署资源整理到单独的租户项目中,以帮助隔离和管理您的基础设施。
如需简要了解租户和租户项目,请参阅租户和租户项目。
准备工作
在创建租户项目或资源之前:
- 在提供方项目中创建 Terraform 配置、Artifact Registry 代码库以及包含 SaaS 应用的制品。如需了解如何创建和上传蓝图,请参阅创建和上传蓝图。如需了解如何设置 SaaS 产品,请参阅快速入门:使用 App Lifecycle Manager 部署应用。
启用 App Lifecycle Manager 所需的 API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。验证是否已创建所需的服务账号,并在提供方项目中授予了必要的 Identity and Access Management 角色。这包括用户创建的服务账号以及授予提供方项目上的
service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.服务代理的角色,其中PROJECT_NUMBER是提供方项目的项目编号。
设置租户项目
当您将租户的资源预配到单独的项目中时,每个租户的资源、IAM 政策、配额和网络配置都是分开的,从而降低了一个租户的违规或错误配置影响其他租户的可能性。
您需要具备以下几项:
- 一个提供方项目
每个租户一个租户项目
控制台
如需使用 Google Cloud 控制台设置租户和提供方项目,请执行以下操作:
- 为每个租户创建一个提供方项目和一个租户项目。
- 在租户和提供方项目中启用结算功能。
在租户项目中启用 App Lifecycle Manager 所需的 API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。验证您的租户项目是否具有具备所需权限的执行服务账号。
如需了解详情,请参阅 App Lifecycle Manager 服务账号。
为提供方项目和租户项目创建并启用结算功能后,您可以创建租户资源并将单位与租户相关联。
gcloud
如需使用 Google Cloud CLI 设置提供方项目和租户项目,请执行以下操作:
为每个租户创建一个提供方项目和一个租户项目:
gcloud projects create \ PRODUCER_PROJECT_ID \ --name="SaaS producer project" gcloud projects create \ TENANT_PROJECT_ID \ --name="SaaS tenant A project"替换以下内容:
PRODUCER_PROJECT_ID:提供方项目 IDTENANT_PROJECT_ID:租户项目 ID
为租户项目和提供方项目启用结算功能:
gcloud billing projects link \ PRODUCER_PROJECT_ID \ --billing-account=BILLING_ACCOUNT_ID gcloud billing projects link \ TENANT_PROJECT_ID \ --billing-account=BILLING_ACCOUNT_ID替换以下内容:
BILLING_ACCOUNT_ID:要与指定项目关联的结算账号的 ID
在租户项目中启用 App Lifecycle Manager 所需的 API:
gcloud services enable \ saasservicemgmt.googleapis.com \ artifactregistry.googleapis.com \ config.googleapis.com \ developerconnect.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ --project=TENANT_PROJECT_ID为每个租户项目向执行服务账号授予必要的 IAM 角色:
gcloud projects add-iam-policy-binding \ TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_ID@PRODUCER_PROJECT_ID.' \ --role=ROLE替换以下内容:
SERVICE_ACCOUNT_ID:执行服务账号的 IDROLE:要授予的 IAM 角色(例如roles/compute.admin)
针对要授予指定服务账号的每个角色运行
gcloud projects add-iam-policy-binding。
为提供方项目和租户项目创建并启用结算功能后,您可以创建租户资源并将单元与租户相关联。
创建租户资源
在 SaaS 产品中创建租户资源,以代表您的客户:
在 Google Cloud 控制台中,依次前往“App Lifecycle Manager”>“租户”。
点击 创建。
在租户名称字段中,输入租户资源的名称。
可选:在使用方资源字段中,输入具有使用方定义的集成设置的使用方资源。
在 SaaS 产品列表中,选择要与租户关联的 SaaS 产品。
从区域列表中,选择存储租户元数据的区域。
可选:点击 添加标签,以键值对的形式向租户添加标签。
点击创建。
将单元与租户相关联
创建租户并部署单元后,您可以将它们相互关联。此关联主要用作组织标记,可帮助您整理哪些单元属于哪个租户。
如需详细了解如何部署单元,请参阅部署 SaaS 产品。
如需将单元与租户关联,请执行以下操作:
在 Google Cloud 控制台中,依次前往“App Lifecycle Manager”>“租户”。
点击要与单位关联的租户的名称。
点击 修改。
在选择要包含在租户中的单元下,点击 添加单元。
在单元列表中,选择要与此租户关联的单元。
点击完成。
点击保存。
所选单元已与指定租户关联。
使用租户项目变量预配新单元
预配与租户关联的单元时,您必须提供 tenant_project_id 和 tenant_project_number 变量。
在 Google Cloud 控制台中,依次前往“App Lifecycle Manager”>“单元”。
创建与您的单位种类关联的新单位。
点击 预配。
选择要预配到租户单元的版本。
在执行服务账号下的服务账号列表中,选择您在租户项目中为其授予角色的服务账号。遵循最小权限原则,仅为所管理的资源授予必要的角色。
在其他输入变量部分中:
- 点击 添加租户项目变量,然后选择您的租户项目以填充
tenant_project_id和tenant_project_number变量。 - 可选:点击 添加输入变量,输入 Terraform 配置中定义的其他输入变量。
- 点击 添加租户项目变量,然后选择您的租户项目以填充
点击预配。
App Lifecycle Manager 使用指定的执行启动操作的服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 和 tenant_project_number 变量,并在该租户项目中预配 Terraform 资源。
使用新版本重新预配单元
使用新版本重新预配现有单元时,您必须提供 tenant_project_id 和 tenant_project_number 变量。
在 Google Cloud 控制台中,依次前往“App Lifecycle Manager”>“单元”。
选择与您的单元种类关联的单元。
点击升级。
选择您使用更新后的 Terraform 配置创建的版本。
在执行服务账号下的服务账号列表中,选择您在租户项目中为其授予角色的服务账号。遵循最小权限原则,仅为所管理的资源授予必要的角色。
在其他输入变量部分中:
- 点击 添加租户项目变量,然后选择您的租户项目以填充
tenant_project_id和tenant_project_number变量。 - 可选:点击 添加输入变量,输入 Terraform 配置中定义的其他输入变量。
- 点击 添加租户项目变量,然后选择您的租户项目以填充
点击升级。
App Lifecycle Manager 使用指定的执行启动操作的服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 和 tenant_project_number 变量,并更新该租户项目中的 Terraform 资源。
后续步骤
- 探索如何管理单元之间的依赖关系。
- 详细了解如何使用变量和变量映射。
- 查看服务账号所需的权限。