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