設定租戶專案和資源

本指南說明如何使用 App Lifecycle Manager 租戶整理部署的單位,以及如何將資源部署至不同的租戶專案,以便隔離及管理資源。

如需租戶和租戶專案的總覽,請參閱「租戶和租戶專案」。

事前準備

建立租戶專案或資源前:

  1. 建立 Terraform 設定、Artifact Registry 存放區,以及在供應商專案中建立包含 SaaS 應用程式的構件。請參閱「使用 App Lifecycle Manager 部署服務執行個體」,瞭解如何設定應用程式產品。
  2. 啟用 App Lifecycle Manager 必要的 API。

    啟用 API 所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

  3. 確認您具備必要的服務帳戶,且在供應商專案中已獲派 Identity and Access Management 角色。包括使用者建立的服務帳戶,以及授予供應商專案中 service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com 帳戶的權限。

設定租戶專案

將租戶的資源佈建到不同的專案時,每個租戶的資源、IAM 政策、配額和網路設定都會分開,因此某個租戶發生入侵或設定錯誤時,不太可能影響其他租戶。

請備妥下列文件:

  • 一個生產者專案,以及
  • 為每個租戶建立一個租戶專案。

控制台

如要使用 Google Cloud 控制台設定租戶和供應商專案,請按照下列步驟操作:

  1. 建立一個供應商專案,並為每位租戶建立一個租戶專案。
  2. 在租戶和製作人專案中啟用計費功能。
  3. 在租戶專案中啟用 App Lifecycle Manager 必要的 API。

    啟用 API 所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過服務使用情形管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

  4. 確認租戶專案具備具有必要權限的啟動服務帳戶。

    詳情請參閱「App Lifecycle Manager 服務帳戶」。

您已成功設定租戶和生產者專案。為製作人和租戶專案建立並啟用帳單後,即可建立租戶資源,並將單元與租戶建立關聯。

gcloud

如要使用 Google Cloud CLI 設定生產者和租戶專案,請按照下列步驟操作:

  1. 建立生產者專案,並為每個租戶建立租戶專案:

    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 的字串 ID。
    • TENANT_PROJECT_ID:代表租戶專案 ID 的字串 ID。
  2. 為租戶和供應商專案啟用計費功能:

     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 的字串 ID。
    • TENANT_PROJECT_ID:代表租戶專案 ID 的字串 ID。
    • BILLING_ACCOUNT_ID:要與指定專案建立關聯的帳單帳戶 ID。
  3. 為每個租戶專案授予執行服務帳戶必要的 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 的字串 ID。
    • PRODUCER_PROJECT_ID:代表生產者專案 ID 的字串 ID。
    • SERVICE_ACCOUNT:您要在指定專案中授予角色的服務帳戶。
    • ROLE:要授予的身分與存取權管理角色。

      您必須為要授予指定服務帳戶 (例如 --role='roles/compute.admin') 的每個角色執行 gcloud projects add-iam-policy-binding。

您已成功設定租戶和供應商專案。為製作人和租戶專案建立並啟用帳單後,即可建立租戶資源,並將單元與租戶建立關聯。

建立租戶資源

在應用程式產品中建立租戶資源,代表客戶:

  1. 在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Tenants」。

    前往「租戶」

  2. 點選「建立」。

  3. 在「租戶名稱」方塊中,輸入租戶資源的名稱。

  4. 選用:在「Customer resource」(客戶資源) 方塊中,提供具有客戶定義整合設定的客戶資源。

  5. 在「App offering」(應用程式方案) 方塊中,選取要與租戶建立關聯的應用程式方案。

  6. 在「Region」(區域) 下拉式選單中,選取要儲存租戶中繼資料的區域。

  7. 選用:按一下「新增標籤」,為租戶新增鍵/值組合標籤。

  8. 按一下「Create」(建立),建立租戶資源。

您已成功建立租戶資源。

將單位與租戶建立關聯

建立租戶並部署單位後,即可將兩者連結。這項關聯主要做為組織標記,協助您整理哪些單位屬於哪個租戶。

如要進一步瞭解如何部署單元,請參閱「使用 App Lifecycle Manager 部署 MySQL 執行個體」。

如要將單元與租戶建立關聯,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Tenants」。

    前往「租戶」

  2. 按一下要與單元建立關聯的租戶名稱。

  3. 按一下 [編輯]。

  4. 在「關聯單位」部分中,按一下「新增單位」。

  5. 選取要與這個租戶建立關聯的單元。

  6. 按一下「完成」。

  7. 按一下 [儲存]。

所選單元會與指定租戶建立關聯。

使用租戶專案變數佈建新單元

佈建與房客相關聯的單元時,您必須提供 tenant_project_id 變數。

  1. 在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Units」。

    前往「單位」

  2. 建立與單元 kind 相關聯的新單元。

  3. 點選「佈建」。

  4. 選取要佈建至獨立租用環境的「版本」。

  5. 選取您在租戶專案中授予權限的啟動服務帳戶。請遵循最小權限原則,只授予受管理資源必要的角色。

  6. 在「輸入變數」部分:

    1. 確認列出的 tenant_project_id 變數與您在 Terraform 設定 variables.tf 檔案中定義的變數一致。
    2. 在「Tenant Project ID」(租戶專案 ID) 方塊中,提供租戶專案名稱。
    3. 提供 Terraform 設定中定義的輸入變數。如果尚未在 Terraform 設定中定義其他變數,請略過這個步驟。
  7. 點選「佈建」。

App Lifecycle Manager 會使用指定的啟動用服務帳戶,觸發 Infrastructure Manager。Infrastructure Manager 會讀取 tenant_project_id 變數,並在該租戶專案中建立 VM。

使用新版本重新佈建單元

使用新版本重新佈建現有裝置時,必須提供 tenant_project_id 變數。

  1. 在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Units」。

    前往「單位」

  2. 選取與單元 kind 相關聯的單元。

  3. 按一下「編輯佈建」。

  4. 選取您使用更新後的 Terraform 設定建立的版本。

  5. 選取您在租戶專案中授予權限的啟動服務帳戶。請遵循最小權限原則,只授予受管理資源所需的角色。

  6. 在「輸入變數」部分:

    1. 確認列出的 tenant_project_id 變數與您在 Terraform 設定 variables.tf 檔案中定義的變數一致。
    2. 在「Tenant Project ID」(租戶專案 ID) 方塊中,提供租戶專案名稱。
    3. 提供 Terraform 設定中定義的輸入變數。如果您未在 Terraform 設定中定義其他變數,請略過這個步驟。
  7. 按一下「Update」。

App Lifecycle Manager 會使用指定的啟動服務帳戶,觸發 Infrastructure Manager。Infrastructure Manager 會讀取 tenant_project_id 變數,並在該租戶專案中建立 VM。

後續步驟