将单元与租户相关联

在此快速入门中,您将修改 SaaS 产品,以将已部署的虚拟机单元与租户资源相关联,并将虚拟机预配到由租户拥有的专用租户项目中。

这种方法可增强资源隔离,让您能够单独管理每个租户的资源,并为 SaaS 产品提供更好的安全性和合规性。

我们将以使用 App Lifecycle Manager 部署虚拟机快速入门中的场景为基础,对其进行修改,以将部署的虚拟机单元与租户资源相关联,并将虚拟机预配到租户拥有的专用项目中:

  1. 在 App Lifecycle Manager 中创建租户资源。
  2. 将虚拟机与租户资源相关联。
  3. 配置 App Lifecycle Manager 和 Terraform 配置,以将资源部署到单独的租户项目中。
  4. 解决部署跨项目时常见的权限和 API 启用问题。

在本快速入门结束时,您将创建一个具有多个租户的 SaaS 产品的基础,通过创建租户并将其与单元相关联,您可以设置租户级配置和政策。

准备工作

在创建租户或将其与单元相关联之前,您应该对 App Lifecycle Manager 生态系统的基础知识有所了解,并创建 SaaS 产品

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. 部署具有应用生命周期管理器的虚拟机,包括创建 Terraform 配置、Artifact Registry 代码库、SaaS 产品、单元种类、单元和组件(包括 terraform-files.zip)。

    • 验证您的提供方项目中是否已启用快速入门的准备工作部分中列出的 API。
    • 验证您是否已在生产者项目中获得必要的服务账号和 IAM 角色。这包括用户创建的服务账号以及授予 service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com 账号的生产者项目权限。
  3. 您需要先创建提供方项目和所有租户项目,然后才能创建和关联租户资源。如需了解详情,请参阅设置租户项目

创建和关联租户资源

您可以使用租户对单元资源进行分组。在生产者项目的 SaaS 产品中创建一个租户资源来表示您的客户:

  1. 在 Google Cloud 控制台中,依次前往 App Lifecycle Manager > 租户

    前往“租户”

  2. 点击创建

  3. 创建租户页面上的租户名称框中,输入 vm-quickstart-tenant

  4. SaaS 产品框中,选择 vm-quickstart-saas-offering

  5. 区域下拉列表中,选择 us-central1

  6. 点击添加单元。系统随即会显示新单元部分。

  7. 单位下拉菜单中,选择 projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit 单位。

  8. 点击完成,将 vm-quickstart-unit 资源与 vm-quickstart-tenant 资源相关联。

  9. 点击创建以创建租户资源。 您已成功创建 vm-quickstart-tenant 资源并将其与 vm-quickstart-unit 资源相关联。此关联主要用作Google Cloud 控制台中的组织标记,帮助您确定哪些设备属于哪个租户。

创建租户版本

  1. 在 Google Cloud 控制台中,依次前往 App Lifecycle Manager > 版本

    前往“版本”

  2. 发布的作品页面上,点击创建

  3. 创建版本页面上,在版本名称框中输入 vm-quickstart-tenant-release

  4. 单位类型框中,选择 vm-quickstart-unit-kind。点击下一步

  5. 选择蓝图步骤中,点击从 Artifact Registry 中选择现有映像切换开关。

  6. 存储蓝图步骤中,点击浏览,然后选择与 vm-quickstart-tenant-blueprint 关联的制品。点击下一步

  7. 点击创建。您已成功创建 vm-quickstart-tenant-release 资源。

创建租户项目并部署单元

使用 App Lifecycle Manager 部署虚拟机快速入门中,您将 App Lifecycle Manager 资源预配到包含 SaaS 产品配置的同一项目中。

在此快速入门中,您将资源预配到租户项目,而不是生产者项目

在单元预配期间,您需要传递修改后的变量 tenant_project_idtenant_project_number

  1. 创建租户项目,您将在其中部署 terraform-vm.zip 文件:

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. 在租户项目上启用 API 并授予 IAM 角色。如需将单元部署到您的租户项目中,您需要在租户项目中启用 Compute Engine API 并授予 IAM 角色。

在租户项目中启用 API

使用 Google Cloud 控制台在租户项目中启用 Compute Engine API:

  1. 前往项目选择器。

    转到“项目选择器”

  2. 点击选择项目

  3. 选择 quickstart-tenant-project

  4. 启用 Compute Engine API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    启用 API

  5. 确保您在项目中拥有以下一个或多个角色: roles/compute.admin

    检查角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 主账号列中,找到标识您或您所属群组的所有行。如需了解您属于哪些群组,请与您的管理员联系。

    4. 对于指定或包含您的所有行,请检查角色列以查看角色列表是否包含所需的角色。

    授予角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。

    5. 点击选择角色,然后搜索相应角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。

使用租户项目变量预配单元

在您的生产者项目中,使用租户项目的输入变量预配新单元:

  1. 前往项目选择器。

    转到“项目选择器”

  2. 点击选择项目

  3. 选择您的制作方项目。

  4. 在 Google Cloud 控制台中,依次前往应用生命周期管理器 > 单元

    前往“单元”页面

  5. 选择 vm-quickstart-unit 资源。

  6. 点击预配

  7. 选择 vm-quickstart-tenant-release 资源。

  8. 选择您在租户项目中向其授予权限的促动服务账号

  9. 输入变量部分:

    • tenant_project_id 变量会按您在 variables.tf 中定义的列出。
    • 租户项目 ID 框中,输入 quickstart-tenant-project
  10. 点击预配

App Lifecycle Manager 使用指定的启动服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 变量,并在相应租户项目中创建虚拟机。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 在 Google Cloud 控制台中,前往管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在提示符处,输入项目 ID,然后点击关停

后续步骤