設定主專案 (舊版)

本文說明如何在 App Hub 中設定主專案,並建立多專案界線

主專案是舊版應用程式設定模型,適用於現有 App Hub 使用者。建議您為新導入作業設定已啟用應用程式的資料夾,定義資料夾層級的界線。資料夾層級的界線可提供完整的一組以應用程式為中心的 Google Cloud 功能存取權,例如 Application Design Center 和 Gemini Cloud Assist。如要比較應用程式管理可用模型的主要差異,請參閱選擇應用程式設定模型

主專案和服務專案總覽

主專案是您附加其他專案的專案,這些專案包含要分組為 App Hub 應用程式的服務和工作負載。 Google Cloud附加至主專案的專案稱為「服務專案」。主專案和服務專案的連結會定義多專案界線

主專案可直接附加至自身,藉此管理自己的資源。不過,如果是單一專案設定,建議使用單一專案做法

事前準備

將專案設為主專案並附加服務專案前,請先完成下列步驟: Google Cloud

  1. 找出要設為主專案的 Google Cloud 專案。 您可以使用現有專案,或建立新專案
  2. 找出要以服務專案形式附加至主專案的專案 Google Cloud 。您必須找出所有包含服務和工作負載的專案,並向 App Hub 應用程式註冊這些專案。App Hub 無法查看其他專案中的資源。服務專案必須符合下列規定:

    • 服務專案必須與主專案位於同一個機構
    • 服務專案一次只能附加到一個主專案。
    • 主專案可做為自身的服務專案,管理自己的資源,但您無法將其附加為任何其他主專案的服務專案。

必要的角色

如要取得將服務專案連結至主專案所需的權限,請要求管理員在主專案和要連結的每個服務專案中,授予您「應用程式中樞管理員 」(roles/apphub.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

設定主專案

如要將 Google Cloud 專案設定為主專案,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取專案。

  2. 從 App Hub 前往「總覽」頁面:

    前往「Overview」(總覽) 頁面

  3. 按一下「設定應用程式中心」

  4. 在「啟用 App Hub」頁面中,選擇「完整設定」,建立多專案邊界。

  5. 記下專案名稱和 ID。這項資訊會識別主機專案,您將使用這些值授予存取權。

  6. 查看待啟用的 API 清單。 部分 API 會產生相關費用。 進一步瞭解 API 的費用 或是點選個別 API 來查看相關聯的費用。

  7. 按一下「繼續」

  8. 在「定義邊界」分頁中,確認專案資訊。

  9. 按一下「新增專案」將服務專案新增至邊界,或稍後再新增。

  10. 按一下「繼續」

  11. 在「授予存取權」分頁中,為專案管理員選擇適當的 IAM 角色和權限。如需各項產品建議使用的以應用程式為核心的角色清單,請參閱「授予使用者以應用程式為核心的角色」。Google Cloud

  12. 在「New principals」(新增主體) 方塊中,輸入應具備專案中以應用程式為中心工作管理員存取權的使用者、群組或服務帳戶。

  13. 依序點選「授予角色」和「完成」

稍後,您可以透過「IAM」頁面,將其他 IAM 角色授予主體。詳情請參閱「使用 Google Cloud 控制台授予 IAM 角色」。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 確認已安裝最新版 Google Cloud CLI:

    gcloud components update
    
  3. 找出要設為主專案的 Google Cloud 專案 ID

  4. 將主專案設為指令的預設專案:

    gcloud config set project HOST_PROJECT_ID
    

    HOST_PROJECT_ID 替換為要設為託管專案的專案 ID。

  5. 在主機專案中啟用 App Hub API

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    

新增服務專案

將服務專案附加至主專案,即可將其新增至應用程式管理邊界

如要將服務專案附加至主專案,並建立多專案界線,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取主專案。

    前往「歡迎」頁面

  2. 從 App Hub 前往「邊界設定」頁面:

    前往「邊界設定」

  3. 按一下 「新增專案」

  4. 選取要附加至主專案的服務專案,然後透過下列任一方式新增至邊界:

    • 在專案清單中,勾選要附加為服務專案的專案核取方塊。
    • 篩選專案名稱,然後勾選核取方塊。
  5. 按一下「選取」

    「Projects in your boundary」(邊界內的專案) 表格會顯示所選服務專案。附加程序可能需要一段時間才能完成。

  6. 確認服務專案清單完整無缺。

gcloud

  1. 找出每個要設為服務專案的 Google Cloud 專案 ID
  2. 附加每個服務專案:

    gcloud apphub service-projects add SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    更改下列內容:

    • SERVICE_PROJECT_ID:要附加的服務專案 ID。
    • HOST_PROJECT_ID:主機專案的 ID。
  3. 針對要附加至主專案的每個服務專案,重複執行上述程序。

Terraform

如要使用 Terraform 將服務專案附加至主專案,請使用google_apphub_service_project_attachment 資源,例如:

resource "google_apphub_service_project_attachment" "example" {
    service_project_attachment_id = google_project.service_project.project_id
    depends_on = [time_sleep.wait_120s]
}

resource "google_project" "service_project" {
    project_id ="project-1"
    name = "Service Project"
    org_id = "123456789"
    deletion_policy = "DELETE"
}

resource "time_sleep" "wait_120s" {
    depends_on = [google_project.service_project]

    create_duration = "120s"
}

如要從託管專案卸離服務專案,請參閱「移除服務專案」。

指派 App Hub 角色和權限

如要將適當的 App Hub 角色和權限授予主專案和服務專案中的 App Hub 使用者,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取主專案。

    前往「歡迎」頁面

  2. 前往「IAM」(身分與存取權管理) 頁面:

    前往「身分與存取權管理」頁面

  3. 點選 「授予存取權」。「授予存取權」窗格隨即開啟。

  4. 在「New principals」(新增主體) 欄位中,輸入要授予 App Hub 存取權的主體電子郵件地址。

  5. 按一下「選取角色」,然後在「篩選器」欄位中輸入「App Hub」

  6. 選取要指派給主體的 App Hub IAM 角色,然後按一下「儲存」

  7. 在附加至主專案的每個 App Hub 服務專案中,重複先前的程序,將相同角色授予相同使用者。

gcloud

  1. 找出您設定為主專案和服務專案的每個 Google Cloud 專案 ID

  2. 授予主專案中主體的存取權:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member='user:EMAIL_ADDRESS' \
        --role='ROLE_NAME'
    

    更改下列內容:

    • HOST_PROJECT_ID:主機專案的 ID。
    • EMAIL_ADDRESS:必須在主機專案中取得 App Hub 存取權的負責人電子郵件地址。這個值必須採用 username@yourdomain 格式,例如 my.user@example.com
    • ROLE_NAME:要指派給主體的應用程式中樞 IAM 角色,例如 roles/apphub.admin
  3. 在您附加至主專案的每個 App Hub 服務專案中,將相同角色授予相同使用者:

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
        --member='user:EMAIL_ADDRESS' \
        --role='ROLE_NAME'
    

    SERVICE_PROJECT_ID 替換為要授予存取權的服務專案 ID。

設定 VPC Service Controls

如要使用 VPC Service Controls 範圍保護應用程式,請先將 App Hub 主機專案和服務專案新增至範圍,再建立應用程式。詳情請參閱「搭配使用 VPC Service Controls 與 App Hub」。

選用:設定指標範圍

如要在 Cloud Monitoring 中查看主專案內應用程式的系統指標,請將附加的服務專案新增至主專案的指標範圍。主機專案可做為時間序列資料的範圍專案,方便您繪製資料圖表及監控資料。如需更多資訊和設定說明,請參閱「設定指標範圍」和「使用 API 設定指標範圍」。

移除服務專案

從主專案卸離服務專案,即可從應用程式管理邊界中移除這些專案。

如要從主專案卸離服務專案,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台,使用專案選擇工具選取主專案。

    前往「歡迎」頁面

  2. 從 App Hub 前往「邊界設定」頁面:

    前往「邊界設定」

  3. 選取要從主專案中分離並從邊界移除的服務專案核取方塊。

  4. 按一下「Detach projects」(取消連結專案)

    「邊界內的專案」表格會重新整理,只顯示仍附加至主專案的專案。

  5. 確認服務專案清單已更新。

gcloud

  1. 找出要從託管專案中移除的每個服務專案 ID
  2. 移除每個服務專案:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    更改下列內容:

    • SERVICE_PROJECT_ID:要移除的服務專案 ID。
    • HOST_PROJECT_ID:主機專案的 ID。
  3. 針對要從託管專案移除的每個服務專案,重複執行上述程序。

從主專案移除服務專案時,如果先前設定了指標範圍,請考慮也從主專案的指標範圍中移除服務專案。詳情請參閱「從指標範圍中移除專案」。

後續步驟