設定租戶專案和資源

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

如要瞭解用戶群和用戶群專案,請參閱「用戶群和用戶群專案」。

事前準備

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

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

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

設定用戶群專案

將房客的資源佈建到不同的專案時,每個房客的資源、IAM 政策、配額和網路設定都會分開,因此一個房客發生違規或設定錯誤時,較不會影響其他房客。

請備妥下列文件:

  • 一個生產者專案,以及
  • 每個租戶各有一個租戶專案。

控制台

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

  1. 建立生產者專案,並為每個租戶建立租戶專案
  2. 在租戶和製作人專案中啟用帳單功能
  3. 在租戶專案中啟用 SaaS Runtime 必要的 API。

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

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

    詳情請參閱「SaaS 執行階段服務帳戶」。

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

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 控制台中,依序前往「SaaS Runtime」 >「Tenants」

    前往「租戶」

  2. 點選「建立」

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

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

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

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

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

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

您已成功建立租戶資源。

將單位與房客建立關聯

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

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

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

  1. 在 Google Cloud 控制台中,依序前往「SaaS Runtime」 >「Tenants」

    前往「租戶」

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

  3. 按一下 [編輯]

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

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

  6. 按一下 [完成]

  7. 按一下 [儲存]

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

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

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

  1. 在 Google Cloud 控制台中,依序前往「SaaS Runtime」 >「Units」

    前往「單位」

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

  3. 點選「佈建」

  4. 選取要佈建至租戶單元的「版本」

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

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

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

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

使用新版本重新佈建裝置

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

  1. 在 Google Cloud 控制台中,依序前往「SaaS Runtime」 >「Units」

    前往「單位」

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

  3. 按一下「編輯佈建」

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

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

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

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

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

後續步驟