建立資料夾

本頁說明如何建立 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 客戶使用。如要進一步瞭解如何取得機構資源,請參閱「取得機構資源」。

如果您想探索使用資料夾的最佳方法,我們建議您:

  1. 參閱使用 IAM 控制資料夾的存取權。該主題說明如何控制存取資料夾和其中資源的人員和存取權限。
  2. 瞭解如何設定資料夾權限。 資料夾支援使用多個不同的 Identity and Access Management (IAM) 角色。如果您要廣泛設定權限,讓使用者能查看專案的結構,請在機構資源層級針對整個網域授予組織檢視者資料夾檢視者角色。如要限制資料夾階層分支的瀏覽權限,請針對您希望使用者查看的資料夾,授予資料夾檢視者角色。
  3. 建立資料夾。在您規劃如何組織 Cloud 資源的同時,我們建議您使用單一資料夾做為沙箱來開始,在這個資料夾中進行實驗,找出最適合您機構資源的階層。請將資料夾想成資源之間的分界線,以及存取和設定政策的附加點。您可以選擇為屬於不同部門的資源建立資料夾,並將管理員角色指派給資料夾來委派管理員權限。您也可以使用資料夾,將屬於應用程式或不同環境的資源分組,例如:開發、生產及測試。並使用巢狀資料夾模擬這些不同的情境。

常見的情況是建立資料夾,資料夾中又包含其他資料夾或專案,如先前的資源階層結構所示。這種結構稱作「資料夾階層」。建立資料夾階層時,請記住下列事項:

  • 資料夾最多可建立 10 () 層的巢狀結構。
  • 父項資料夾最多只可以包含 300 個資料夾。這裡指的是下一層的子資料夾,這些子資料夾可以包含更多資料夾或專案。
  • 在階層的同個層級中,資料夾顯示名稱不能重複。

設定管理資料夾的權限

如要存取及管理資料夾,請將特定資料夾 IAM 角色指派給特定的使用者群組。如要進一步瞭解這些角色,請參閱「使用 IAM 對資料夾進行存取權控管」。我們也建議您參閱我們的最佳做法,找出最佳的資料夾權限設定。

如要管理整個機構資源的資料夾,您要有資料夾 管理員角色。這個角色授予的權限可讓使用者建立、編輯、刪除、移動及變更資料夾的 IAM 權限,也能在資料夾之間移動專案。

一開始,只有機構管理員可以為機構資源指派資料夾管理員角色。之後,獲得此角色的帳戶也能將此角色授予其他帳戶。

如要設定資料夾權限,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台中,開啟「Manage resources」(管理資源) 頁面。

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

  2. 如果資訊面板未開啟,請按一下「顯示資訊面板」
  3. 在「資源」表格中,展開含有資料夾的機構。
  4. 從機構底下的資源清單中,選取要管理的資料夾。
  5. 在資訊面板中,按一下「Add Principal」(新增主體)
  6. 在「Add principals」(新增主體) 欄位中,輸入要授予權限的電子郵件地址。
  7. 在「Select a role」(選取角色) 選單中,選取「Resource Manager」(資源管理員) 類別,然後選取要授予的角色,例如「Folder Admin」(資料夾管理員)
  8. 按一下「儲存」授予新角色。

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」區段來建立資料夾。

  1. 前往 Google Cloud 控制台的「管理資源」頁面:

    開啟「Manage resources」(管理資源) 頁面

  2. 確認頁面頂端的機構下拉式清單中已選取機構資源名稱。

  3. 按一下「建立資料夾」,然後選取下列其中一個選項:

  4. 在「Folder name」(資料夾名稱) 方塊中輸入新的資料夾名稱。

  5. 在「Destination」(目的地) 下方,按一下「Browse」(瀏覽),然後選取要在哪個機構資源或資料夾下建立新資料夾。

    1. 點選「建立」

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 管理員資料夾管理員角色。

控制台

  1. 在 Google Cloud 控制台中,開啟「Manage Resources」(管理資源) 頁面。

    開啟「Manage Resources」(管理資源) 頁面

  2. 按一下左上角的「Organization」(機構) 下拉式選單,然後選取您的機構資源。

  3. 找出要變更權限的專案,然後選取專案旁的核取方塊。

    1. 在右側「Info panel」(資訊面板) 的「Permissions」(權限) 下方,輸入要新增的成員的電子郵件地址。

    2. 在「Select a role」(選擇角色) 下拉式選單中,選取要授予這些成員的角色。

    3. 按一下「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 createfolders move 指令。

如要使用這個旗標,請按照下列步驟操作:

  1. 啟動非同步工作。請參閱下列範例指令:

    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
    
  2. 檢查作業狀態。如要確認工作是否完成,請使用 operations describe 指令,並提供上一個步驟中的 ID。

    gcloud beta resource-manager operations describe fc.8572
    

    done 設為 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'
    

後續步驟