本指南說明如何使用 App Lifecycle Manager 租戶整理部署的單位,以及如何將資源部署至不同的租戶專案,以便隔離及管理資源。
如需租戶和租戶專案的總覽,請參閱「租戶和租戶專案」。
事前準備
建立租戶專案或資源前:
- 建立 Terraform 設定、Artifact Registry 存放區,以及在供應商專案中建立包含 SaaS 應用程式的構件。請參閱「使用 App Lifecycle Manager 部署服務執行個體」,瞭解如何設定應用程式產品。
啟用 App Lifecycle Manager 必要的 API。
啟用 API 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。確認您具備必要的服務帳戶,且在供應商專案中已獲派 Identity and Access Management 角色。包括使用者建立的服務帳戶,以及授予供應商專案中
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com帳戶的權限。
設定租戶專案
將租戶的資源佈建到不同的專案時,每個租戶的資源、IAM 政策、配額和網路設定都會分開,因此某個租戶發生入侵或設定錯誤時,不太可能影響其他租戶。
請備妥下列文件:
- 一個生產者專案,以及
為每個租戶建立一個租戶專案。
控制台
如要使用 Google Cloud 控制台設定租戶和供應商專案,請按照下列步驟操作:
- 建立一個供應商專案,並為每位租戶建立一個租戶專案。
- 在租戶和製作人專案中啟用計費功能。
在租戶專案中啟用 App Lifecycle Manager 必要的 API。
啟用 API 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過服務使用情形管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。確認租戶專案具備具有必要權限的啟動服務帳戶。
詳情請參閱「App Lifecycle Manager 服務帳戶」。
您已成功設定租戶和生產者專案。為製作人和租戶專案建立並啟用帳單後,即可建立租戶資源,並將單元與租戶建立關聯。
gcloud
如要使用 Google Cloud CLI 設定生產者和租戶專案,請按照下列步驟操作:
建立生產者專案,並為每個租戶建立租戶專案:
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。
為租戶和供應商專案啟用計費功能:
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。
為每個租戶專案授予執行服務帳戶必要的 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。
您已成功設定租戶和供應商專案。為製作人和租戶專案建立並啟用帳單後,即可建立租戶資源,並將單元與租戶建立關聯。
建立租戶資源
在應用程式產品中建立租戶資源,代表客戶:
在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Tenants」。
點選「建立」。
在「租戶名稱」方塊中,輸入租戶資源的名稱。
選用:在「Customer resource」(客戶資源) 方塊中,提供具有客戶定義整合設定的客戶資源。
在「App offering」(應用程式方案) 方塊中,選取要與租戶建立關聯的應用程式方案。
在「Region」(區域) 下拉式選單中,選取要儲存租戶中繼資料的區域。
選用:按一下「新增標籤」,為租戶新增鍵/值組合標籤。
按一下「Create」(建立),建立租戶資源。
您已成功建立租戶資源。
將單位與租戶建立關聯
建立租戶並部署單位後,即可將兩者連結。這項關聯主要做為組織標記,協助您整理哪些單位屬於哪個租戶。
如要進一步瞭解如何部署單元,請參閱「使用 App Lifecycle Manager 部署 MySQL 執行個體」。
如要將單元與租戶建立關聯,請按照下列步驟操作:
在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Tenants」。
按一下要與單元建立關聯的租戶名稱。
按一下 [編輯]。
在「關聯單位」部分中,按一下「新增單位」。
選取要與這個租戶建立關聯的單元。
按一下「完成」。
按一下 [儲存]。
所選單元會與指定租戶建立關聯。
使用租戶專案變數佈建新單元
佈建與房客相關聯的單元時,您必須提供 tenant_project_id 變數。
在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Units」。
建立與單元 kind 相關聯的新單元。
點選「佈建」。
選取要佈建至獨立租用環境的「版本」。
選取您在租戶專案中授予權限的啟動服務帳戶。請遵循最小權限原則,只授予受管理資源必要的角色。
在「輸入變數」部分:
- 確認列出的
tenant_project_id變數與您在 Terraform 設定variables.tf檔案中定義的變數一致。 - 在「Tenant Project ID」(租戶專案 ID) 方塊中,提供租戶專案名稱。
- 提供 Terraform 設定中定義的輸入變數。如果尚未在 Terraform 設定中定義其他變數,請略過這個步驟。
- 確認列出的
點選「佈建」。
App Lifecycle Manager 會使用指定的啟動用服務帳戶,觸發 Infrastructure Manager。Infrastructure Manager 會讀取 tenant_project_id 變數,並在該租戶專案中建立 VM。
使用新版本重新佈建單元
使用新版本重新佈建現有裝置時,必須提供 tenant_project_id 變數。
在 Google Cloud 控制台中,依序前往「App Lifecycle Manager」 >「Units」。
選取與單元 kind 相關聯的單元。
按一下「編輯佈建」。
選取您使用更新後的 Terraform 設定建立的版本。
選取您在租戶專案中授予權限的啟動服務帳戶。請遵循最小權限原則,只授予受管理資源所需的角色。
在「輸入變數」部分:
- 確認列出的
tenant_project_id變數與您在 Terraform 設定variables.tf檔案中定義的變數一致。 - 在「Tenant Project ID」(租戶專案 ID) 方塊中,提供租戶專案名稱。
- 提供 Terraform 設定中定義的輸入變數。如果您未在 Terraform 設定中定義其他變數,請略過這個步驟。
- 確認列出的
按一下「Update」。
App Lifecycle Manager 會使用指定的啟動服務帳戶,觸發 Infrastructure Manager。Infrastructure Manager 會讀取 tenant_project_id 變數,並在該租戶專案中建立 VM。
後續步驟
- 瞭解如何管理單元之間的依附元件。
- 進一步瞭解如何使用變數和變數對應。
- 查看服務帳戶所需的權限。