使用 IAM 控管專案存取權

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

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

本頁說明可用於管理專案存取權的 IAM 權限和角色。詳情請參閱「管理專案、資料夾和機構的存取權」。

權限與角色

如要控管資源存取權, Google Cloud 發出 API 要求的帳戶必須具備適當的 IAM 角色。身分與存取權管理角色包含權限,可讓使用者對Google Cloud 資源執行特定操作。舉例來說,resourcemanager.projects.delete 權限可讓使用者刪除專案。

您並非直接為使用者授予權限,而是指派「角色」給他們,每個角色可能具備一或多項權限。您可以在特定資源上授予這些角色,但這些角色也會套用至資源階層中該資源的所有子項。

權限

如要管理專案,呼叫端必須具備包含下列權限的角色。在包含專案的機構資源或資料夾中授予角色:

方法 所需權限
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
授予這項權限後,您也可以透過 Billing API 方法 billing.projects.getBillingInfo 取得與專案相關聯的帳單帳戶名稱。
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list resourcemanager.projects.list
resourcemanager.projects.search resourcemanager.projects.get
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions 不需任何權限。
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch 如要更新專案的中繼資料,需要 resourcemanager.projects.update 權限。如要更新專案的父項並將專案移至機構資源,則需要機構資源的 resourcemanager.projects.create 權限。
projects.move projects.move

使用預先定義的角色

您可以使用 IAM 預先定義的角色,管理使用者可用的權限。如需可在專案層級授予角色的完整清單,請參閱「瞭解角色」一文。

下表列出可用於授予專案存取權的預先定義角色。每個角色都包含用途說明和所含權限。

角色 權限

(roles/resourcemanager.projectCreator)

提供建立新專案的權限。使用者建立專案後,系統會自動為使用者授予該專案的擁有者角色。

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

  • 資料夾

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

提供刪除 Google Cloud 專案的存取權。

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

  • 專案

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

提供更新和移動專案的權限。

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

  • 專案

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

提供管理專案允許政策的權限。

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

  • 專案

iam.policybindings.*

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

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/browser)

瀏覽專案階層的讀取權限,包括資料夾、機構和允許政策。本角色不包含查看專案資源的權限。

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

  • 專案

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

基本角色

請只在必要時使用基本角色,這些角色具有高權限,可授予所有 Google Cloud 服務的廣泛權限。如要進一步瞭解何時應使用基本角色,請參閱「基本角色」。

角色 說明 權限
roles/owner 所有資源的完整存取權。 所有資源的所有權限。
roles/editor 具備多數資源的編輯權限。 建立及更新大部分資源的存取權。
roles/viewer 具備大多數資源的讀取權限。 取得及列出大多數資源的存取權。

建立自訂角色

除了本主題中描述的預先定義角色之外,您也可以建立自訂角色,角色的權限集合按照您的需求而訂。建立自訂角色與 Resource Manager 一起使用時,請注意以下幾點:
  • 「列出」及「取得」這兩項權限,例如 resourcemanager.projects.get/list,需一律同時授予。
  • 當您的自訂角色包含 folders.listfolders.get 權限時,同時也應包含 projects.listprojects.get
  • 請注意,機構、資料夾和專案資源的 setIamPolicy 權限允許使用者授予所有其他權限,因此應謹慎指派。

專案層級的存取權控管

您可以使用 Google Cloud console、Cloud Resource Manager API 及 Google Cloud CLI,在專案層級將角色授予使用者。如需相關操作說明,請參閱授予、變更及撤銷存取權

預設角色

建立專案時,您會獲得 roles/owner 角色,可全權掌控專案。您可以在允許政策中變更這項預設角色。

VPC Service Controls

使用 Cloud Resource Manager API 時,VPC Service Controls 可提供額外安全性。如要進一步瞭解 VPC Service Controls,請參閱 VPC Service Controls 總覽

如要瞭解目前搭配使用 Resource Manager 與 VPC Service Controls 的限制,請參閱「支援的產品和限制」頁面。