本頁說明如何建立 Google Cloud 資料夾,在資源階層中分組及整理專案。您可以使用資料夾委派管理職責、強制執行環境專屬的組織政策,以及簡化各部門的成本管理作業。
資料夾是 Cloud Platform 資源階層中的節點。資料夾可包含專案、其他資料夾,或是兩者兼具。 機構資源能使用資料夾,在階層中的機構資源節點下對專案進行分組。舉例來說,您的機構資源可能包含多個部門,每個部門都有自己的資源組。 Google Cloud 您可以使用資料夾,將這些資源按照部門分組,或是將具有相同常見允許或拒絕政策的資源分組。資料夾可包含多個資料夾或資源,但是特定資料夾或資源只能有一個父項。
在下圖中,這個名為「公司」的機構資源擁有代表兩個部門的資料夾:「Dept X」(部門 X) 和「Dept Y」(部門 Y),以及一個名為「Shared Infrastructure」(共用基礎架構) 用於儲存兩個部門共用項目的資料夾。在「Dept Y」之下有兩個團隊,各團隊資料夾中再依產品進行分組。其中「Product 1」(產品 1) 資料夾包含了三個專案,每個專案都包含該專案本身所需的資源。這提供了高度的靈活性,能夠以適當的精細程度,指派允許、拒絕或組織政策。
您可以藉由資料夾層級的允許和拒絕政策,控制資料夾中資源的存取權。舉例來說,如果向使用者授予某個資料夾的 Compute 執行個體管理員角色,使用者將擁有該資料夾內所有專案的 Compute 執行個體管理員角色。
事前準備
資料夾功能只開放給擁有機構資源的 Google Workspace 和 Cloud Identity 客戶使用。如要進一步瞭解如何取得機構資源,請參閱「取得機構資源」。
如果您想探索使用資料夾的最佳方法,我們建議您:
- 參閱使用 IAM 控制資料夾的存取權。該主題說明如何控制存取資料夾和其中資源的人員和存取權限。
- 瞭解如何設定資料夾權限。 資料夾支援使用多個不同的 Identity and Access Management (IAM) 角色。如果您要廣泛設定權限,讓使用者能查看專案的結構,請在機構資源層級針對整個網域授予組織檢視者及資料夾檢視者角色。如要限制資料夾階層分支的瀏覽權限,請針對您希望使用者查看的資料夾,授予資料夾檢視者角色。
- 建立資料夾。在您規劃如何組織 Cloud 資源的同時,我們建議您使用單一資料夾做為沙箱來開始,在這個資料夾中進行實驗,找出最適合您機構資源的階層。請將資料夾想成資源之間的分界線,以及存取和設定政策的附加點。您可以選擇為屬於不同部門的資源建立資料夾,並將管理員角色指派給資料夾來委派管理員權限。您也可以使用資料夾,將屬於應用程式或不同環境的資源分組,例如:開發、生產及測試。並使用巢狀資料夾模擬這些不同的情境。
常見的情況是建立資料夾,資料夾中又包含其他資料夾或專案,如先前的資源階層結構所示。這種結構稱作「資料夾階層」。建立資料夾階層時,請記住下列事項:
- 資料夾最多可建立 10 (十) 層的巢狀結構。
- 父項資料夾最多只可以包含 300 個資料夾。這裡指的是下一層的子資料夾,這些子資料夾可以包含更多資料夾或專案。
- 在階層的同個層級中,資料夾顯示名稱不能重複。
設定管理資料夾的權限
如要存取及管理資料夾,請將特定資料夾 IAM 角色指派給特定的使用者群組。如要進一步瞭解這些角色,請參閱「使用 IAM 對資料夾進行存取權控管」。我們也建議您參閱我們的最佳做法,找出最佳的資料夾權限設定。
如要管理整個機構資源的資料夾,您要有資料夾 管理員角色。這個角色授予的權限可讓使用者建立、編輯、刪除、移動及變更資料夾的 IAM 權限,也能在資料夾之間移動專案。
一開始,只有機構管理員可以為機構資源指派資料夾管理員角色。之後,獲得此角色的帳戶也能將此角色授予其他帳戶。
如要設定資料夾權限,請按照下列步驟操作:
控制台
- 在 Google Cloud 控制台中,開啟「Manage resources」(管理資源) 頁面。
- 如果資訊面板未開啟,請按一下「顯示資訊面板」。
- 在「資源」表格中,展開含有資料夾的機構。
- 從機構底下的資源清單中,選取要管理的資料夾。
- 在資訊面板中,按一下「Add Principal」(新增主體)。
- 在「Add principals」(新增主體) 欄位中,輸入要授予權限的電子郵件地址。
- 在「Select a role」(選取角色) 選單中,選取「Resource Manager」(資源管理員) 類別,然後選取要授予的角色,例如「Folder Admin」(資料夾管理員)。
- 按一下「儲存」授予新角色。
gcloud
如要使用 Google Cloud CLI 將資料夾管理員角色授予主體,請執行下列指令:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member=user:USER_ID \
--role=roles/resourcemanager.folderAdmin
REST
要求 JSON:
request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [ "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'
curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/ORGANIZATION_NAME:setIamPolicy
將 ORGANIZATION_NAME 替換為要設定允許政策的機構名稱,例如 organizations/123。
建立資料夾
您必須在父項層級擁有資料夾管理員或資料夾建立者角色,才能建立資料夾。舉例來說,如要在機構層級建立資料夾,您必須在機構層級具有上述任一角色。
在建立資料夾的過程中,您必須指定資料夾名稱。資料夾名稱必須符合以下要求:
- 名稱可以包含字母、數字、空格、連字號和底線。
- 資料夾顯示名稱的開頭和結尾必須是字母或數字。
- 名稱必須介於 3 至 30 個半形字元之間。
- 名稱不得與同一父項下的其他資料夾相同。
如要建立資料夾,請按照下列步驟操作:
控制台
您可以在 UI 中,使用「Manage Projects and Folders」區段來建立資料夾。
前往 Google Cloud 控制台的「管理資源」頁面:
確認頁面頂端的機構下拉式清單中已選取機構資源名稱。
按一下「建立資料夾」,然後選取下列其中一個選項:
- 標準資料夾:標準資料夾資源。
- 符合規範的資料夾:Assured Workloads 資料夾,可為 Google Cloud 資源提供額外的法規、區域或主權控管機制。選取這個選項後,系統會將您帶往 Assured Workloads,以便建立資料夾。
在「Folder name」(資料夾名稱) 方塊中輸入新的資料夾名稱。
在「Destination」(目的地) 下方,按一下「Browse」(瀏覽),然後選取要在哪個機構資源或資料夾下建立新資料夾。
- 點選「建立」。
gcloud
您可以使用 Google Cloud CLI,透過程式建立資料夾。
如要使用 gcloud 指令列工具在機構資源下建立資料夾,請執行以下指令。
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID
若要在其他資料夾下建立資料夾:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--folder=FOLDER_ID
更改下列內容:
- DISPLAY_NAME:資料夾的顯示名稱。同一父項下的資料夾不能使用相同的顯示名稱。顯示名稱的開頭和結尾必須是字母或數字。顯示名稱可包含字母、數字、空格、連字號和底線,且長度不可超過 30 個字元。
- ORGANIZATION_ID:如果父項是機構資源,則為父項機構資源的 ID。
- FOLDER_ID:如果父項為資料夾,則為父項資料夾的 ID。
API
您可以透過 API 要求來建立資料夾。
JSON 要求:
request_json= '{
display_name: DISPLAY_NAME,
parent: ORGANIZATION_NAME
}'
「建立資料夾」curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders
其中:
- DISPLAY_NAME:新資料夾的顯示名稱,例如「My Awesome Folder」。
- ORGANIZATION_NAME:您要在其中建立資料夾的機構資源名稱,例如
organizations/123。
「建立資料夾」回應:
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "CREATE"
}
}
「取得作業」curl 要求:
curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789
「取得作業」回應:
{
"name": "operations/fc.123456789",
"metadata": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
"displayName": "DISPLAY_NAME",
"operationType": "CREATE"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
"name": "folders/12345",
"parent": "organizations/123",
"displayName": "DISPLAY_NAME",
"lifecycleState": "ACTIVE",
"createTime": "2017-07-19T23:29:26.018Z",
"updateTime": "2017-07-19T23:29:26.046Z"
}
}
在建立資料夾時新增標記
標記可用於建立資源的註解。建立資料夾時,可以新增標籤。如要這麼做,您必須授予「標記使用者」角色。如要進一步瞭解這個角色包含的權限,請參閱「建立及管理代碼」。 您只能透過下列其中一種方式,為代碼鍵/值組合新增命名空間:
gcloud
如要在建立資料夾時新增標記,請執行下列指令:
gcloud resource-manager folders create \
--display-name=DISPLAY_NAME \
--organization=ORGANIZATION_ID\
--tags=KEY_VALUE_PAIRS
更改下列內容:
DISPLAY_NAME:資料夾的顯示名稱。ORGANIZATION_ID:父項機構資源的專屬 ID。KEY_VALUE_PAIRS:以逗號分隔的清單,可指派給資源。以半形逗號分隔的鍵/值組合範例如下:123/environment=production, 456/create=testresource。
REST
下列程式碼片段是建立資料夾並在其中新增標記的 JSON 要求。
POST https://cloudresourcemanager.googleapis.com/v3/projects/
Authorization: *************
Content-Type: application/json
{
"display_name": "our-folder-456",
"parent": "organizations/123",
"tags": {
"key": "123/environment"
"value": "production"
},
"tags": {
"key": "123/costCenter"
"value": "marketing"
}
}
設定資料夾的存取權
若要設定資料夾的存取權,您必須在父項層級擁有資料夾 IAM 管理員或資料夾管理員角色。
控制台
在 Google Cloud 控制台中,開啟「Manage Resources」(管理資源) 頁面。
按一下左上角的「Organization」(機構) 下拉式選單,然後選取您的機構資源。
找出要變更權限的專案,然後選取專案旁的核取方塊。
在右側「Info panel」(資訊面板) 的「Permissions」(權限) 下方,輸入要新增的成員的電子郵件地址。
在「Select a role」(選擇角色) 下拉式選單中,選取要授予這些成員的角色。
按一下「Add」(新增)。畫面上隨即顯示通知,確認成員的新角色已新增或更新。
gcloud
您可以使用 Google Cloud CLI 或 REST API,透過程式設定資料夾的存取權。
gcloud resource-manager folders \
add-iam-policy-binding FOLDER_ID \
--member=user:email1@example.com \
--role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
add-iam-policy-binding FOLDER_ID \
--member=user:email1@example.com \
--role=roles/resourcemanager.folderViewer
您也可以使用以下程式碼:
gcloud resource-manager folders \
set-iam-policy FOLDER_ID POLICY_FILE
更改下列內容:
- FOLDER_ID:新資料夾的 ID
- POLICY_FILE:資料夾的政策檔案路徑
API
setIamPolicy 方法可在資料夾上設定存取控管政策,並取代任何現有的政策。resource 欄位應為資料夾的資源名稱,例如 folders/1234。
request_json= '{
policy: {
version: "1",
bindings: [
{
role: "roles/resourcemanager.folderEditor",
members: [
"user:email1@example.com",
"user:email2@example.com",
]
}
]
}
}'
curl 要求:
curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/FOLDER_ID:setIamPolicy
將 FOLDER_ID 替換成要設定 IAM 政策的資料夾名稱,例如 folders/123。
處理長時間執行的作業
某些資料夾作業 (例如建立或遷移) 需要全域傳播,因此會由 Google Cloud 非同步處理。為避免終端機或自動化指令碼遭到封鎖,您可以使用 --async 旗標。
使用這個標記時,指令會立即傳回長時間執行的作業 (LRO) 物件。然後您就可以使用 operation_id,在方便的時間輪詢完成狀態。--async 旗標僅支援 folders create 和 folders move 指令。
如要使用這個旗標,請按照下列步驟操作:
啟動非同步工作。請參閱下列範例指令:
gcloud resource-manager folders create \ --display-name="Test Async Folder" \ --organization=2518 \ --async輸出內容會提供作業名稱 (例如 fc.8572),並顯示
done: false。回應範例:
name: operations/fc.8572 metadata: operation_type: CREATE display_name: Awe-Inspiring Async Folder destination_parent: organizations/2518 done: false檢查作業狀態。如要確認工作是否完成,請使用
operations describe指令,並提供上一個步驟中的 ID。gcloud beta resource-manager operations describe fc.8572done設為 true 後,回應區塊就會包含新建立資源的完整詳細資料。name: operations/fc.8572 done: true response: name: folders/6428 display_name: Awe-Inspiring Async Folder lifecycle_state: ACTIVE create_time: '2024-03-20T10:00:00Z'
後續步驟
- 瞭解如何查看及更新資料夾。
- 瞭解如何管理資料夾中的專案。
- 瞭解資料夾的角色和權限。
- 瞭解如何列出資源階層中的所有資料夾和專案。