本文說明如何使用 Resource Manager 設定及管理管理邊界和功能設定。管理邊界可讓 Agent Registry 探索及管理跨專案資源。
事前準備
設定邊界和功能前,請先取得必要角色並啟用必要 API。
必要的角色
如要取得設定邊界和功能所需的權限,請要求管理員授予您下列 IAM 角色:
-
建立、更新及刪除邊界和功能設定:目標資料夾或組織 (以及管理專案,如果您提供使用者自行管理的管理專案) 的Resource Manager 編輯者 (
roles/resourcemanager.editor) -
查看邊界和功能設定:目標資料夾或組織的資源管理員檢視者 (
roles/resourcemanager.viewer) - 將標記附加至成員專案:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
啟用 API
如要啟用 Resource Manager API,請使用
gcloud services enable指令:gcloud services enable cloudresourcemanager.googleapis.com \ --project=PROJECT_ID將
PROJECT_ID替換為專案 ID。
設定管理邊界
您可以透過下列兩種方式之一,在資料夾或組織上設定管理邊界:
- 資料夾或組織層級邊界 (無標記篩選器):包含資料夾或組織中的所有子系專案。略過步驟 1 和步驟 4,只要完成步驟 2:建立邊界 (不含
--tag-key和--tag-value) 和步驟 3:建立功能設定即可。 - 以標記為基礎的邊界:依標記值劃分資料夾或組織中的專案。請完成下列四個步驟。
步驟 1:設定分區標記鍵
如果您要建立資料夾層級或組織層級的邊界,且不使用標記篩選器,請略過這個步驟。根據預設,BoundaryConfig 資源未設定任何標記鍵。
如果是以標記為基礎的邊界,BoundaryConfig 資源會建立標記鍵,用於劃分資料夾或組織內的專案。請先設定這項資源,再建立標記邊界。
如要設定分區標記鍵,請使用 gcloud resource-manager boundary-configs update 指令:
gcloud resource-manager boundary-configs update \
--folder=FOLDER_ID \
--tag-key=TAG_KEY_NAME
如要設定組織的標記鍵,請指定 --organization=ORGANIZATION_ID,而非 --folder。如果您先前已設定標記鍵,並想切換至未標記的邊界 (父項下沒有邊界),請使用 --clear-tag-key (而非 --tag-key) 執行這個指令。
更改下列內容:
FOLDER_ID:上層資料夾的 IDTAG_KEY_NAME:標記鍵的名稱,格式為ORGANIZATION_ID/TAG_KEY_SHORT_NAME,例如123456789012/env
步驟 2:建立邊界
在資料夾或組織中建立 Boundary 資源。
如要建立不含標記篩選器的資料夾層級邊界 (會自動納入資料夾中的所有子系專案),請使用 gcloud resource-manager boundaries create 指令,但不含 --tag-key 和 --tag-value:
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary"
如要在步驟 1 設定分區標記鍵後,建立以標記為基礎的邊界,請加入 --tag-key 和 --tag-value 旗標:
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary" \
--tag-key=TAG_KEY_NAME \
--tag-value=TAG_VALUE_SHORT_NAME
如要在組織中建立邊界,請指定 --organization=ORGANIZATION_ID,而非 --folder。
更改下列內容:
BOUNDARY_ID:邊界的專屬 ID,例如prod-boundaryFOLDER_ID:上層資料夾的 IDTAG_KEY_NAME:您設定的標記鍵,例如123456789012/envTAG_VALUE_SHORT_NAME:專案必須具備的標記值,才能加入邊界,例如prod
步驟 3:建立功能設定
建立 CapabilityConfig 資源,將邊界連結至管理專案,並宣告要跨邊界管理哪些服務。
如要建立功能設定,請使用 gcloud resource-manager capability-configs create 指令,並為代理程式註冊資料庫指定 --types=agent-management:
gcloud resource-manager capability-configs create \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--types=agent-management \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID \
--display-name="DISPLAY_NAME"
如要在組織中建立功能設定,請指定 --organization=ORGANIZATION_ID,而非 --folder。
更改下列內容:
CAPABILITY_CONFIG_ID:功能設定的專屬 ID,例如prod-capabilitiesFOLDER_ID:上層資料夾的 IDBOUNDARY_ID:您建立的邊界 IDDISPLAY_NAME:人類可讀的顯示名稱
如要在沒有邊界的單一獨立專案上啟用功能,請略過步驟 1、2 和 4,並使用 --project=PROJECT_NUMBER 和 --management-project=projects/PROJECT_NUMBER (而非 --folder 和 --boundaries) 執行這個指令。
如要使用現有專案做為管理專案,請傳遞 --management-project=projects/PROJECT_NUMBER 旗標。您指定的專案必須符合下列規定,否則指令會失敗並顯示錯誤:
- 與
CapabilityConfig資源位於同一個父項 (folders/FOLDER_ID或organizations/ORGANIZATION_ID) 下。 - 處於
ACTIVE生命週期狀態。 - 尚未指定為管理專案。
如果省略 --management-project,Resource Manager 會直接在上層資料夾或組織底下,自動佈建專屬管理專案。
建立 CapabilityConfig 資源時,系統會自動在管理專案啟用對應的服務 API (例如指定 agent-management 時,啟用 agentregistry.googleapis.com)。您不必手動在管理專案啟用這些 API。
步驟 4:將標記附加至成員專案
如果您建立的資料夾層級或組織層級邊界未設定標記篩選器,請略過這個步驟,因為系統會自動納入所有子系專案。
如果是以標記為基礎的邊界,只要將相符的標記值繫結至專案,專案就會動態加入管理邊界。
如要將標記附加至邊界內的每個專案,請使用 gcloud resource-manager tags bindings create 指令:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
更改下列內容:
TAG_VALUE_NAME:標記值名稱,例如123456789012/env/prodPROJECT_NUMBER:要納入邊界的專案編號 (或專案 ID)
管理功能設定
您可以列出、說明、更新及刪除功能設定。本節中的範例使用 --folder=FOLDER_ID。如要管理組織或專案的功能設定,請指定 --organization=ORGANIZATION_ID 或 --project=PROJECT_NUMBER,而非 --folder (邊界只能附加至資料夾層級或組織層級的功能設定)。
列出功能設定
如要列出資料夾中的所有功能設定,請使用 gcloud resource-manager capability-configs list 指令:
gcloud resource-manager capability-configs list \
--folder=FOLDER_ID
說明功能設定
如要查看設定詳細資料和指派的管理專案,請使用 gcloud resource-manager capability-configs describe 指令:
gcloud resource-manager capability-configs describe \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID
更新相關聯的邊界
如要更新與功能設定連結的邊界,請使用 gcloud resource-manager capability-configs update 指令:
gcloud resource-manager capability-configs update \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID_1,folders/FOLDER_ID/boundaries/BOUNDARY_ID_2
update 指令也接受 --types 和 --display-name 旗標,用於更新啟用的功能類型或顯示名稱。
刪除功能設定
CapabilityConfig 資源附加邊界時無法刪除,Boundary 資源附加至 CapabilityConfig 資源時也無法刪除。
如不再需要跨專案管理,請按照下列步驟刪除功能設定:
如要卸載相關聯的邊界,請使用
gcloud resource-manager capability-configs update指令,並加上--clear-boundaries旗標:gcloud resource-manager capability-configs update \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID \ --clear-boundaries如要刪除功能設定,請使用
gcloud resource-manager capability-configs delete指令:gcloud resource-manager capability-configs delete \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID