设置租户项目和资源

App Lifecycle Manager 租户可让您将已部署的单元和部署资源整理到单独的租户项目中,以帮助隔离和管理您的基础设施。

如需简要了解租户和租户项目,请参阅租户和租户项目。

准备工作

在创建租户项目或资源之前:

  1. 在提供方项目中创建 Terraform 配置、Artifact Registry 代码库以及包含 SaaS 应用的制品。如需了解如何创建和上传蓝图,请参阅创建和上传蓝图。如需了解如何设置 SaaS 产品,请参阅快速入门:使用 App Lifecycle Manager 部署应用。
  2. 启用 App Lifecycle Manager 所需的 API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。

    启用 API

  3. 验证是否已创建所需的服务账号,并在提供方项目中授予了必要的 Identity and Access Management 角色。这包括用户创建的服务账号以及授予提供方项目上的 service-PROJECT_NUMBER@gcp-sa-saasservicemgmt. 服务代理的角色,其中 PROJECT_NUMBER 是提供方项目的项目编号。

设置租户项目

当您将租户的资源预配到单独的项目中时,每个租户的资源、IAM 政策、配额和网络配置都是分开的,从而降低了一个租户的违规或错误配置影响其他租户的可能性。

您需要具备以下几项:

  • 一个提供方项目
  • 每个租户一个租户项目

控制台

如需使用 Google Cloud 控制台设置租户和提供方项目,请执行以下操作:

  1. 为每个租户创建一个提供方项目和一个租户项目。
  2. 在租户和提供方项目中启用结算功能。
  3. 在租户项目中启用 App Lifecycle Manager 所需的 API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。

    启用 API

  4. 验证您的租户项目是否具有具备所需权限的执行服务账号。

    如需了解详情,请参阅 App Lifecycle Manager 服务账号。

为提供方项目和租户项目创建并启用结算功能后,您可以创建租户资源并将单位与租户相关联。

gcloud

如需使用 Google Cloud CLI 设置提供方项目和租户项目,请执行以下操作:

  1. 为每个租户创建一个提供方项目和一个租户项目:

    gcloud projects create \
        PRODUCER_PROJECT_ID \
        --name="SaaS producer project"
    gcloud projects create \
        TENANT_PROJECT_ID \
        --name="SaaS tenant A project"
    

    替换以下内容:

    • PRODUCER_PROJECT_ID:提供方项目 ID
    • TENANT_PROJECT_ID:租户项目 ID
  2. 为租户项目和提供方项目启用结算功能:

    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
  3. 在租户项目中启用 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
    
  4. 为每个租户项目向执行服务账号授予必要的 IAM 角色:

    gcloud projects add-iam-policy-binding \
        TENANT_PROJECT_ID \
        --member='serviceAccount:SERVICE_ACCOUNT_ID@PRODUCER_PROJECT_ID.' \
        --role=ROLE
    

    替换以下内容:

    • SERVICE_ACCOUNT_ID:执行服务账号的 ID
    • ROLE:要授予的 IAM 角色(例如 roles/compute.admin)

    针对要授予指定服务账号的每个角色运行 gcloud projects add-iam-policy-binding。

为提供方项目和租户项目创建并启用结算功能后,您可以创建租户资源并将单元与租户相关联。

创建租户资源

在 SaaS 产品中创建租户资源,以代表您的客户:

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

    前往“租户”

  2. 点击 创建。

  3. 在租户名称字段中,输入租户资源的名称。

  4. 可选:在使用方资源字段中,输入具有使用方定义的集成设置的使用方资源。

  5. 在 SaaS 产品列表中,选择要与租户关联的 SaaS 产品。

  6. 从区域列表中,选择存储租户元数据的区域。

  7. 可选:点击 添加标签,以键值对的形式向租户添加标签。

  8. 点击创建。

将单元与租户相关联

创建租户并部署单元后,您可以将它们相互关联。此关联主要用作组织标记,可帮助您整理哪些单元属于哪个租户。

如需详细了解如何部署单元,请参阅部署 SaaS 产品。

如需将单元与租户关联,请执行以下操作:

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

    前往“租户”

  2. 点击要与单位关联的租户的名称。

  3. 点击 修改。

  4. 在选择要包含在租户中的单元下,点击 添加单元。

  5. 在单元列表中,选择要与此租户关联的单元。

  6. 点击完成。

  7. 点击保存。

所选单元已与指定租户关联。

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

预配与租户关联的单元时,您必须提供 tenant_project_id 和 tenant_project_number 变量。

  1. 在 Google Cloud 控制台中,依次前往“App Lifecycle Manager”>“单元”。

    前往“单位”

  2. 创建与您的单位种类关联的新单位。

  3. 点击 预配。

  4. 选择要预配到租户单元的版本。

  5. 在执行服务账号下的服务账号列表中,选择您在租户项目中为其授予角色的服务账号。遵循最小权限原则,仅为所管理的资源授予必要的角色。

  6. 在其他输入变量部分中:

    1. 点击 添加租户项目变量,然后选择您的租户项目以填充 tenant_project_id 和 tenant_project_number 变量。
    2. 可选:点击 添加输入变量,输入 Terraform 配置中定义的其他输入变量。
  7. 点击预配。

App Lifecycle Manager 使用指定的执行启动操作的服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 和 tenant_project_number 变量,并在该租户项目中预配 Terraform 资源。

使用新版本重新预配单元

使用新版本重新预配现有单元时,您必须提供 tenant_project_id 和 tenant_project_number 变量。

  1. 在 Google Cloud 控制台中,依次前往“App Lifecycle Manager”>“单元”。

    前往“单位”

  2. 选择与您的单元种类关联的单元。

  3. 点击升级。

  4. 选择您使用更新后的 Terraform 配置创建的版本。

  5. 在执行服务账号下的服务账号列表中,选择您在租户项目中为其授予角色的服务账号。遵循最小权限原则,仅为所管理的资源授予必要的角色。

  6. 在其他输入变量部分中:

    1. 点击 添加租户项目变量,然后选择您的租户项目以填充 tenant_project_id 和 tenant_project_number 变量。
    2. 可选:点击 添加输入变量,输入 Terraform 配置中定义的其他输入变量。
  7. 点击升级。

App Lifecycle Manager 使用指定的执行启动操作的服务账号触发 Infrastructure Manager。Infrastructure Manager 会读取 tenant_project_id 和 tenant_project_number 变量,并更新该租户项目中的 Terraform 资源。

后续步骤