将单元与租户相关联
在此快速入门中,您将修改 SaaS 产品,以将已部署的虚拟机单元与租户资源相关联,并将虚拟机预配到由租户拥有的专用租户项目中。
这种方法可增强资源隔离,让您能够单独管理每个租户的资源,并为 SaaS 产品提供更好的安全性和合规性。
我们将以使用 App Lifecycle Manager 部署虚拟机快速入门中的场景为基础,对其进行修改,以将部署的虚拟机单元与租户资源相关联,并将虚拟机预配到租户拥有的专用项目中:
- 在 App Lifecycle Manager 中创建租户资源。
- 将虚拟机与租户资源相关联。
- 配置 App Lifecycle Manager 和 Terraform 配置,以将资源部署到单独的租户项目中。
- 解决部署跨项目时常见的权限和 API 启用问题。
在本快速入门结束时,您将创建一个具有多个租户的 SaaS 产品的基础,通过创建租户并将其与单元相关联,您可以设置租户级配置和政策。
准备工作
在创建租户或将其与单元相关联之前,您应该对 App Lifecycle Manager 生态系统的基础知识有所了解,并创建 SaaS 产品。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Verify that billing is enabled for your Google Cloud project.
部署具有应用生命周期管理器的虚拟机,包括创建 Terraform 配置、Artifact Registry 代码库、SaaS 产品、单元种类、单元和组件(包括
terraform-files.zip)。- 验证您的提供方项目中是否已启用快速入门的准备工作部分中列出的 API。
- 验证您是否已在生产者项目中获得必要的服务账号和 IAM 角色。这包括用户创建的服务账号以及授予
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.账号的生产者项目权限。
您需要先创建提供方项目和所有租户项目,然后才能创建和关联租户资源。如需了解详情,请参阅设置租户项目。
创建和关联租户资源
您可以使用租户对单元资源进行分组。在生产者项目的 SaaS 产品中创建一个租户资源来表示您的客户:
在 Google Cloud 控制台中,依次前往 App Lifecycle Manager > 租户。
点击创建。
在创建租户页面上的租户名称框中,输入
vm-quickstart-tenant。在 SaaS 产品框中,选择
vm-quickstart-saas-offering。在区域下拉列表中,选择
us-central1。点击添加单元。系统随即会显示新单元部分。
在单位下拉菜单中,选择
projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit单位。点击完成,将
vm-quickstart-unit资源与vm-quickstart-tenant资源相关联。点击创建以创建租户资源。 您已成功创建
vm-quickstart-tenant资源并将其与vm-quickstart-unit资源相关联。此关联主要用作Google Cloud 控制台中的组织标记,帮助您确定哪些设备属于哪个租户。
创建租户版本
在 Google Cloud 控制台中,依次前往 App Lifecycle Manager > 版本。
在发布的作品页面上,点击创建。
在创建版本页面上,在版本名称框中输入
vm-quickstart-tenant-release。在单位类型框中,选择
vm-quickstart-unit-kind。点击下一步。在选择蓝图步骤中,点击从 Artifact Registry 中选择现有映像切换开关。
在存储蓝图步骤中,点击浏览,然后选择与
vm-quickstart-tenant-blueprint关联的制品。点击下一步。点击创建。您已成功创建
vm-quickstart-tenant-release资源。
创建租户项目并部署单元
在使用 App Lifecycle Manager 部署虚拟机快速入门中,您将 App Lifecycle Manager 资源预配到包含 SaaS 产品配置的同一项目中。
在此快速入门中,您将资源预配到租户项目,而不是生产者项目。
在单元预配期间,您需要传递修改后的变量 tenant_project_id 和 tenant_project_number。
创建租户项目,您将在其中部署
terraform-vm.zip文件:gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"在租户项目上启用 API 并授予 IAM 角色。如需将单元部署到您的租户项目中,您需要在租户项目中启用 Compute Engine API 并授予 IAM 角色。
在租户项目中启用 API
使用 Google Cloud 控制台在租户项目中启用 Compute Engine API:
前往项目选择器。
点击选择项目。
选择
quickstart-tenant-project。启用 Compute Engine API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。确保您在项目中拥有以下一个或多个角色: roles/compute.admin
检查角色
-
在 Google Cloud 控制台中,前往 IAM 页面。
转到 IAM - 选择项目。
-
在主账号列中,找到标识您或您所属群组的所有行。如需了解您属于哪些群组,请与您的管理员联系。
- 对于指定或包含您的所有行,请检查角色列以查看角色列表是否包含所需的角色。
授予角色
-
在 Google Cloud 控制台中,前往 IAM 页面。
转到 IAM - 选择项目。
- 点击 授予访问权限。
-
在新的主账号字段中,输入您的用户标识符。 这通常是员工身份池中的用户的标识符。如需了解详情,请参阅在 IAM 政策中表示员工池用户,或与您的管理员联系。
- 点击选择角色,然后搜索相应角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击 Save(保存)。
-
使用租户项目变量预配单元
在您的生产者项目中,使用租户项目的输入变量预配新单元:
前往项目选择器。
点击选择项目。
选择您的制作方项目。
在 Google Cloud 控制台中,依次前往应用生命周期管理器 > 单元。
选择
vm-quickstart-unit资源。点击预配。
选择
vm-quickstart-tenant-release资源。选择您在租户项目中向其授予权限的促动服务账号。
在输入变量部分:
tenant_project_id变量会按您在variables.tf中定义的列出。- 在租户项目 ID 框中,输入
quickstart-tenant-project。
点击预配。
App Lifecycle Manager 使用指定的启动服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 变量,并在相应租户项目中创建虚拟机。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
- 在 Google Cloud 控制台中,前往管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在提示符处,输入项目 ID,然后点击关停。