使用 IAM 對專案進行存取權控管

Google Cloud Platform 提供「身分與存取權管理」(IAM) 功能,可讓您以更精細的方式授予使用者特定 Google Cloud Platform 資源的存取權限,避免其他資源遭到未經授權者擅自存取。IAM 可讓您採取最低權限的安全性原則,僅將必要的資源存取權限授予使用者。

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

本頁說明適用於專案層級的身分與存取權管理 (IAM) 角色。如需 Cloud IAM 的詳細說明,請參閱 IAM 說明文件。其中以授予、變更及撤銷存取權的部分最為重要。

權限與角色

透過 Cloud IAM,凡是需要帳戶發送 API 要求的 Google Cloud Platform 方法,皆具備使用該資源的適當權限。擁有權限的使用者才能對 Cloud 資源執行特定操作。例如,resourcemanager.projects.list 權限可讓使用者列出自己擁有的專案,而 resourcemanager.projects.delete 則能讓使用者刪除專案。

下表列出了呼叫者在呼叫專案 API 時必須具備的權限:

方法 所需權限
resourcemanager.projects.create() resourcemanager.projects.create
resourcemanager.projects.delete() resourcemanager.projects.delete
resourcemanager.projects.get() resourcemanager.projects.get
resourcemanager.projects.getIamPolicy() resourcemanager.projects.getIamPolicy
resourcemanager.projects.list() 不需任何權限。此方法列出呼叫者擁有 resourcemanager.projects.get 權限的專案。如果您在呼叫 list() 時提供篩選條件,例如 byParent,此方法會列出所有您具有 resourcemanager.projects.get 權限並且符合篩選條件的專案。
resourcemanager.projects.setIamPolicy() resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions() Does not require any permission.
resourcemanager.projects.undelete() resourcemanager.projects.undelete
resourcemanager.projects.update() 如要更新專案的中繼資料,需要 resourcemanager.projects.update 權限。如要更新專案的父項並將專案移至機構內,則需要機構的 resourcemanager.projects.create 權限。

您並非直接為使用者授予權限,而是指派「角色」給他們,每個角色可能具備一或多項權限。

針對同個專案,您可以授予一或多個角色。使用 resourcemanager.projects.getIamPolicy() 方法查看權限時,只會顯示指派給專案本身的權限,沿用的權限則不會顯示。

使用預先定義的角色

下表列出了您可以授予的角色,擁有這些角色的使用者即可存取專案。此外,您也可以透過下表瞭解各個角色的作用和角色具備的權限。

角色 說明 權限
roles/owner 所有資源的完整存取權。 所有資源的所有權限。
roles/editor 所有資源的編輯存取權 所有資源的建立和更新存取權。
roles/viewer 所有資源的讀取存取權。 所有資源的取得和列出存取權。
roles/browserBeta 版 專案資源的瀏覽存取權。
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list
  • resourcemanager.projectInvites.get

建立自訂角色

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

專案層級的存取權控管

您可以使用 Google Cloud Platform 主控台、Resource Manager API 及 gcloud 指令列工具,在專案層級將角色授予使用者。如需相關操作說明,請參閱授予、變更及撤銷專案成員存取權限的說明

預設角色

當您建立專案時,您會被授予角色/擁有者的角色,讓身為建立者的您能夠全權掌控這個專案。請參閱上述說明以瞭解此角色提供的權限。此預設角色可以在 Cloud IAM 政策中按一般方式變更。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Resource Manager 說明文件