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

您可以使用資料夾層級的 Identity and Access Management (IAM) 角色,管理專案和資源群組的存取權。在允許政策中將角色繫結至主體時,資料夾層級角色可協助您在整個資源階層中強制執行最小權限原則。

您可以使用 Cloud Resource Manager API 建立及管理允許政策,或套用拒絕政策,明確封鎖特定權限。如要設定新環境並授予初始存取權,請按照Cloud de Confiance by S3NS 設定檢查清單操作。如要管理持續存取權,請參閱「管理專案、資料夾和組織的存取權」。

資料夾的 IAM 角色總覽

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

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

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

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

  • 盡可能使用群組管理主體。
  • 盡量少用基本角色,例如擁有者、編輯者和檢視者。請改用預先定義的角色,遵循最小權限原則。
  • 對於資料夾內的管理,請以資料夾層級指派權限,並讓專案自動繼承權限。舉例來說,您可以將資料夾的「Folder Admin」(資料夾管理員) 角色指派給部門管理員群組。需要具備部門層級權限的網路管理員,可以擁有資料夾的網路管理員角色。
  • 在將資源移出資料夾之前,請仔細考慮可能更改的權限。否則,您可能會破壞需要該資源權限的現有應用程式或工作流程。
  • 在將實際工作環境專案移到資料夾之前,請仔細規劃並測試資源階層。其中一個方法是在組織資源下建立測試資料夾,並預先建立預期階層的原型。
  • 在資料夾層級授予使用者角色,也會授予使用者該資料夾下所有資源的角色。舉例來說,如果您向使用者授予資料夾的 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

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

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

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

可將專案和資料夾移入或移出上層組織或資料夾。

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

  • 資料夾

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

提供取得資料夾及列出資源下資料夾和專案的權限。

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

  • 資料夾

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

建立自訂角色

除了本主題所述的預先定義角色外,您也可以建立自訂角色,也就是根據需求自訂的權限集合。建立要與 Resource Manager 搭配使用的自訂角色時,請注意下列事項:
  • 列出和取得權限 (例如 resourcemanager.projects.get/list) 應一律成對授予。
  • 如果自訂角色包含 folders.list 和 folders.get 權限,也應包含 projects.list 和 projects.get。
  • 請注意,如果使用者具備組織、資料夾和專案資源的 setIamPolicy 權限,就能授予所有其他權限,因此請謹慎指派。

授予角色以啟用資料夾瀏覽功能

列表權限可提供資料夾瀏覽。通常需要授予的兩種清單權限分別是 resourcemanager.folders.list (允許使用者列出資源下的資料夾) 和 resourcemanager.projects.list (允許使用者瀏覽組織資源或資料夾下的專案)。組織管理員會同時初始化這兩項權限。如果使用者未獲派組織管理員角色:

  • 您可以使用「資料夾檢視者」和「資料夾編輯者」角色授予 resourcemanager.folders.list。
  • 您可以使用「檢視者」或「瀏覽者」角色授予 resourcemanager.projects.list。

如要讓組織資源主體瀏覽整個組織資源階層,應在組織資源層級授予清單權限。

授予角色來啟用資料夾建立功能

如要建立資料夾,使用者必須在階層中高於資料夾建立層級的資源上,取得資料夾建立者角色。建議您一併授予瀏覽權限和資料夾建立權限,方便使用者在階層中找到要建立資料夾的位置。如要進一步瞭解瀏覽權限,請參閱上述章節。

資料夾建立者角色並未授予使用者刪除資料夾的權限;不過,當使用者建立資料夾時,系統會自動授予資料夾編輯者角色。資料夾編輯者角色可刪除資料夾。

授予角色來啟用資料夾移動功能

如要將資料夾自父項資源移入另一個父項資源,您在來源及目的地的父項資源或是共同的祖系資源必須具備資料夾移動者角色。

授予角色來啟用專案移動功能

如要遷移專案至資料夾,使用者必須具有專案的專案編輯者或專案擁有者角色,以及來源與目的地父項資源的專案移動者角色。

這與將非機構擁有的專案移至機構資源的需求略有不同,使用者必須具備專案的「專案編輯者」或「專案擁有者」角色,以及機構資源的「專案建立者」角色。

授予資料夾專屬角色,以便建立專案

使用者必須具備專案建立者角色,才能建立專案。不過,與其授予全組織的專案建立權限,不如限制使用者只能在特定資料夾中查看及建立專案。

授予特定資料夾的權限:

  1. 在組織資源層級 (例如 domain.com),將組織檢視者角色授予使用者。在 Cloud de Confiance 控制台中,從頁面頂端的專案和組織挑選器選取組織資源,或在「IAM」頁面的「Inheritance」(繼承) 欄中點選網域。
  2. 建立新資料夾。
  3. 在資料夾層級將使用者新增至 IAM,並授予「Folder Viewer」(資料夾檢視者) 和「Project Creator」(專案建立者) 角色。

這樣一來,使用者就能在資料夾中建立專案,但無法查看大型組織資源中的所有專案。