將單位與租戶建立關聯

在本快速入門導覽課程中,您將修改應用程式,將部署的 VM 單位與租戶資源建立關聯,並將 VM 佈建至租戶擁有的專屬租戶專案。

這種做法可強化資源隔離,讓您分別管理各個租戶的資源,並為應用程式服務提供更完善的安全性和法規遵循。

我們將以使用 App Lifecycle Manager 部署 MySQL 執行個體快速入門導覽課程中的情境為基礎,修改情境,將部署的 VM 單元與租戶資源建立關聯,並將 VM 佈建至租戶擁有的專屬專案:

  1. 在 App Lifecycle Manager 中建立租戶資源。
  2. 將 VM 與租戶資源建立關聯。
  3. 設定 App Lifecycle Manager 和 Terraform 設定,將資源部署到個別的租戶專案。
  4. 解決跨專案部署時常見的權限和 API 啟用問題。

在本快速入門課程結束時,您將建立應用程式產品的基礎,其中包含多個租戶,可讓您建立租戶並將其與單元建立關聯,藉此設定租戶層級的設定和政策。

事前準備

建立租戶或將租戶與單位建立關聯之前,您應先瞭解 App Lifecycle Manager 生態系統的基本概念,並建立應用程式產品。

  1. 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. 使用 App Lifecycle Manager 部署 MySQL 執行個體,包括建立 Terraform 設定、Artifact Registry 存放區、應用程式、單位種類、單位和元件 (包括 terraform-files.zip)。

    • 確認生產者專案已啟用快速入門指南「開始前準備」一節中列出的 API。
    • 確認您已在供應商專案中,授予必要的服務帳戶和 IAM 角色。包括使用者建立的服務帳戶,以及在生產者專案中 授予該service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com帳戶的權限。
  3. 您必須先建立供應商專案和任何租戶專案,才能建立及連結租戶資源。詳情請參閱「設定租戶專案」。

建立及連結租戶資源

您可以使用租戶將單位資源分組。在生產者專案的應用程式供應項目中建立租戶資源,代表您的客戶:

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

    前往「Tenants」(租戶) 頁面

  2. 點選「建立」。

  3. 在「Create tenant」(建立租戶) 頁面的「Tenant name」(租戶名稱) 方塊中輸入 vm-quickstart-tenant。

  4. 在「App offering」方塊中,選取 vm-quickstart-saas-offering。

  5. 在「Region」(區域) 下拉式選單中,選取「us-central1」。

  6. 按一下「新增單位」。系統會顯示「新增單元」部分。

  7. 在「Unit」(單位) 下拉式選單中,選取 projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit 單位。

  8. 按一下「完成」,將 vm-quickstart-unit 資源與 vm-quickstart-tenant 資源建立關聯。

  9. 按一下「Create」(建立),建立租戶資源。您已成功建立 vm-quickstart-tenant 資源,並將其與 vm-quickstart-unit 資源建立關聯。這項關聯主要做為Google Cloud 控制台中的組織標記,協助您識別哪些單位屬於哪個租戶。

建立租戶版本

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

    前往「發布內容」

  2. 在「Releases」頁面,按一下「Create」(建立)。

  3. 在「建立新版本」頁面的「版本名稱」方塊中,輸入 vm-quickstart-tenant-release。

  4. 在「單元種類」方塊中,選取「vm-quickstart-unit-kind」。然後點選「下一步」。

  5. 在「Select Blueprint」(選取藍圖) 步驟中,按一下「Select an existing image from Artifact Registry」(從 Artifact Registry 選取現有映像檔) 切換按鈕。

  6. 在「Store Blueprint」(儲存藍圖) 步驟中,按一下「Browse」(瀏覽),然後選取與 vm-quickstart-tenant-blueprint 相關聯的構件。按一下「Next」(下一步)。

  7. 點選「建立」。您已成功建立 vm-quickstart-tenant-release 資源。

建立租戶專案並部署單元

在「使用 App Lifecycle Manager 快速入門部署 MySQL 執行個體」中,您會將 App Lifecycle Manager 資源佈建到包含應用程式供應項目設定的專案中。

在本快速入門導覽課程中,您會將資源佈建導向租戶專案,而非生產者專案。

在佈建單元時,您需要傳遞修改過的變數 tenant_project_id 和 tenant_project_number。

  1. 建立租戶專案,用於部署 terraform-vm.zip 檔案:

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. 在租戶專案啟用 API 並授予 IAM 角色。如要將單元部署至租戶專案,您必須啟用 Compute Engine API,並授予租戶專案的 IAM 角色。

在租戶專案中啟用 API

使用 Google Cloud 控制台,在租戶專案中啟用 Compute Engine API:

  1. 前往專案選取器。

    前往專案選取器

  2. 按一下 [Select a project] (選取專案)。

  3. 選取「quickstart-tenant-project」。

  4. 啟用 Compute Engine API (如果尚未啟用)。

    啟用 API 所需的角色

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

    啟用 API

  5. 確認您在專案中具備下列角色: roles/compute.admin

    檢查角色

    1. 前往 Google Cloud 控制台的「IAM」頁面。

      前往「IAM」頁面
    2. 選取專案。
    3. 在「Principal」(主體) 欄中,找出所有代表您或您所屬群組的資料列。如要瞭解您所屬的群組,請與管理員聯絡。

    4. 在指定或包含您的所有資料列中,查看「Role」(角色) 欄,確認角色清單是否包含必要角色。

    授予角色

    1. 前往 Google Cloud 控制台的「IAM」頁面。

      前往「IAM」頁面
    2. 選取專案。
    3. 按一下「Grant access」(授予存取權)。
    4. 在「New principals」(新增主體) 欄位中,輸入您的使用者 ID。 這通常是指 Google 帳戶的電子郵件地址。

    5. 按一下「Select a role」(選取角色),然後搜尋角色。
    6. 如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。
    7. 按一下「Save」(儲存)。

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

在供應商專案中,使用租戶專案的輸入變數佈建新單元:

  1. 前往專案選取器。

    前往專案選取器

  2. 按一下 [Select a project] (選取專案)。

  3. 選取生產端專案。

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

    前往「單位」

  5. 選取 vm-quickstart-unit 資源。

  6. 點選「佈建」。

  7. 選取 vm-quickstart-tenant-release 資源。

  8. 選取您在租戶專案中授予權限的啟動服務帳戶。

  9. 在「Input Variables」部分:

    • tenant_project_id 變數會按照您在 variables.tf 中定義的方式列出。
    • 在「Tenant Project ID」(租戶專案 ID) 方塊中,輸入 quickstart-tenant-project。
  10. 點選「佈建」。

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

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請按照下列步驟操作。

  1. 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 從專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
  3. 收到提示時,請輸入專案 ID,然後點選「Shut down」(關閉)。

後續步驟