設定租戶專案和資源

本指南說明如何使用 App Lifecycle Manager 租戶整理已部署的單元,以及如何將資源部署到個別租戶專案,以便隔離及管理資源。

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

事前準備

建立用戶群專案或資源前,請先完成下列事項:

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

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 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,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 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:要授予的 Identity and Access Management 角色。

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

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

建立租戶資源

在 SaaS 產品中建立 tenant 資源,代表您的客戶:

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

    前往「租戶」

  2. 點選「建立」

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

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

  5. 在「SaaS 產品」方塊中,選取要與租戶建立關聯的 SaaS 產品。

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

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

  8. 按一下「建立」即可建立房客資源。

您已成功建立租戶資源。

將單位與房客建立關聯

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

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

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

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

    前往「租戶」

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

  3. 按一下 [編輯]

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

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

  6. 按一下 [完成]

  7. 按一下 [儲存]

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

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

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

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

    前往「單位」

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

  3. 點選「佈建」

  4. 選取「發布」,即可佈建至租戶單元。

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

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

    1. 確認 tenant_project_id 變數與您在 Terraform 設定 variables.tf 檔案中定義的變數相同。
    2. 在「Tenant Project 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. 選取與單元種類相關聯的單元。

  3. 按一下「編輯帳戶佈建」

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

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

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

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

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

後續步驟