使用 IAM 對資料夾進行存取權控管

Google Cloud 提供身分與存取權管理 (IAM) 功能,可對特定 Google Cloud 資源授予更精細的存取權,避免未經授權者存取其他資源。IAM 採用最小權限安全原則,可確保您僅授予使用者必要的資源存取權限。

設定允許政策後,即可控管哪些使用者具備何種存取權限 (角色),可以存取哪些資源。允許政策可將特定角色授予使用者,讓對方擁有特定權限。

本頁說明適用於資料夾層級的 IAM 角色,以及如何使用 Cloud Resource Manager API 建立及管理資料夾的允許政策。詳情請參閱「管理專案、資料夾和機構的存取權」。

資料夾的 IAM 角色總覽

為了幫助您設定 IAM 角色,下表列出:

  • 您要啟用的動作類型。
  • 執行動作須具備的角色。
  • 您套用角色需要的資源層級。
動作類型 需要角色 資源層級
管理整個機構資源的資料夾 資料夾管理員 組織資源
管理資料夾和其中所有的專案及資料夾 資料夾管理員 特定資料夾
可存取及管理資料夾的允許政策 資料夾 IAM 管理員 特定資料夾
建立新資料夾 資料夾建立者 新資料夾位置的父項資源
移動資料夾和專案 資料夾移動者 新資料夾與原始資料夾位置的父項資源
將專案移動到新資料夾 專案編輯者專案擁有者 新專案與原始專案位置的父項資源
刪除資料夾 資料夾編輯者或資料夾管理員 特定資料夾

在資料夾中使用 IAM 角色與權限的最佳做法

指派要用於資料夾的 IAM 角色和權限時,請注意以下幾點:

  • 盡可能使用群組來管理主體。
  • 盡可能減少基本角色的使用,例如擁有者、編輯者和檢視者。相反地,盡量按照最小權限原則來使用預先定義的角色。
  • 對於資料夾內的管理,請以資料夾層級指派權限,並讓專案自動繼承權限。例如,您可以為部門管理員群組指派資料夾的資料夾管理員角色。需要擁有部門權限的網路管理員,則可以擁有資料夾的網路管理員角色。
  • 在將資源移出資料夾之前,請仔細考慮可能更改的權限。否則,您可能會破壞需要該資源權限的現有應用程式或工作流程。
  • 在將實際工作環境專案移到資料夾之前,請仔細規劃並測試資源階層。執行此操作的方式之一是在您的機構資源中建立一個測試資料夾,並預先建立您所需的階層原型。
  • 在資料夾層級授予使用者角色,也會授予使用者該資料夾下所有資源的角色。舉例來說,如果您授予使用者資料夾的 Compute 管理員角色 (roles/compute.admin),使用者就能完全掌控該資料夾中所有專案的 Compute Engine 資源。

瞭解資料夾的角色與權限

資料夾是機構內的管理界線,可讓您將專案分組,並大規模套用政策。這些資料夾的存取權是透過機構繼承的權限,以及直接在資料夾層級授予的角色來管理。

預設角色

建立資料夾時,您會被授予資料夾管理員資料夾編輯者角色,讓您完全控制資料夾。下表列出這些角色提供的權限。您可以在允許政策中變更這些預設角色。

使用預先定義的角色

角色 權限

(roles/resourcemanager.folderAdmin)

提供處理資料夾的所有可用權限。

可授予此角色的最低層級資源:

  • 資料夾

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

提供管理資料夾允許政策的權限。

可授予此角色的最低層級資源:

  • 資料夾

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

提供瀏覽階層及建立資料夾所需的權限。

可授予此角色的最低層級資源:

  • 資料夾

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

提供修改資料夾及查看資料夾允許政策的權限。

可授予此角色的最低層級資源:

  • 資料夾

essentialcontacts.contacts.get

essentialcontacts.contacts.list