存取權控管總覽


根據預設,所有 Google Cloud 專案都只有一位使用者:原始專案建立者。除非使用者成為專案團隊成員或連結至特定資源,否則不能存取專案,因此也無法存取其中的 Google Cloud Platform 資源。本頁面將說明您可以透過哪些方式在專案中新增使用者,以及如何使用 Identity and Access Management (IAM) 為 Compute Engine 資源調整存取權控制設定。

如要瞭解如何為在 Compute Engine 執行個體上執行的應用程式提供存取權,請參閱「如何決定授權」。

使用者的存取權控制選項

如要讓使用者建立和管理您的 Compute Engine 資源,您可以將使用者新增為專案或特定資源的「團隊成員」,並使用 IAM「角色」來授予權限。

團隊成員可以是具備有效 Google 帳戶的個別使用者、外部身分資訊提供者的使用者帳戶、Google 群組、員工身分集區中的一組身分、服務帳戶或 Google Workspace 網域。新增專案或資源團隊成員時,您必須指定要授予他們的角色。IAM 提供三種類型的角色:預先定義的角色基本角色自訂角色

資源會繼承Google Cloud 資源階層中父項資源的政策。對資源來說有效的政策,是由對本身設定的政策及從父項繼承的政策共同構成。

預先定義的 Compute Engine 角色

預先定義的角色會授予一組相關的權限。Compute Engine 提供下列預先定義的角色:

角色稱號 功能 目標使用者
Compute Engine 映像檔使用者

具備列出及使用其他專案中映像檔的權限。如果您為某位成員同時授予這個角色和其他角色,該成員就可使用其他專案的映像檔來建立新資源。舉例來說,如果您同時授予這個角色和執行個體管理員角色,成員就可使用其他專案的映像檔來建立 VM 執行個體和永久磁碟。

如要建立代管執行個體群組,或使用 Deployment Manager 建立 VM 執行個體,您可能需要為專案的 Google API 服務帳戶授予這個角色才能使用其他專案的映像檔。

  • 服務帳戶
  • 系統管理員
  • 開發人員
Compute Engine 執行個體管理員 (v1)

具備 Compute Engine 執行個體、執行個體群組、磁碟、快照和映像檔的完整控制權,以及 Compute Engine 網路資源的唯讀存取權。

如果成員日後會管理以服務帳戶形式執行的 VM 執行個體,您還必須為該成員授予 roles/iam.serviceAccountUser 角色,這樣該成員才能指派服務帳戶給 VM 執行個體。

  • 系統管理員
  • 開發人員
Compute Engine 管理員角色

具備所有 Compute Engine 資源的完整控制權。如果使用者日後會管理設定為服務帳戶執行的 VM 執行個體,您就必須一併授予 roles/iam.serviceAccountUser 角色。

  • 系統管理員
  • 開發人員
Compute Engine 網路管理員

具備建立、修改及刪除網路資源的權限,防火牆規則和安全資料傳輸層 (SSL) 憑證除外。網路管理員角色可將防火牆規則、SSL 憑證和執行個體的唯讀權限授予成員 (以查看臨時 IP 位址),但無法讓成員建立、啟動、停止或刪除執行個體。

網路管理員
Compute Engine 安全管理員

具備建立、修改及刪除防火牆規則和安全資料傳輸層 (SSL) 憑證的權限。

安全管理員
Compute Engine 負載平衡器管理員 Beta 版

具備建立、修改及刪除負載平衡器與相關資源的權限。

負載平衡器管理員
Compute Engine 服務帳戶使用者

有權建立採用服務帳戶的執行個體,並有權連接磁碟以及在以服務帳戶形式執行的執行個體上設定中繼資料。

這個角色不具備 Compute Engine API 的存取權,因此請不要只授予這個角色,而應為成員同時授予這個角色和其他角色,例如執行個體管理員角色。

  • 系統管理員
  • 開發人員
Compute Engine 檢視者角色

具備唯讀權限,可以取得及列出 Compute Engine 資源,而無法讀取這類資源上儲存的資料。舉例來說,具備這個角色的帳戶可以列出專案中的所有磁碟,但無法讀取這些磁碟上的任何資料。

系統管理員
Compute Engine 網路使用者

具備使用共用 VPC 網路的權限。具體而言,請將這個角色授予需要在主專案中使用資源的服務擁有者。授予這個角色後,服務擁有者就可使用屬於託管專案的子網路和網路。舉例來說,網路使用者可建立屬於共用 VPC 託管網路的 VM 執行個體,但無法在主專案中刪除或建立新網路。

  • 系統管理員
  • 開發人員
Compute Engine 網路檢視者

具備所有網路資源的唯讀權限。舉例來說,如果您的軟體需要檢查網路設定,請將網路檢視者角色授予軟體的服務帳戶。

  • 網路管理員
  • 系統管理員
  • 開發人員
  • 服務帳戶
Compute Engine 儲存空間管理員 Beta 版

具備建立、修改及刪除磁碟、映像檔和快照的權限。

舉例來說,如果貴公司有人負責管理映像檔,而您不希望該使用者具備該專案的編輯者角色,那麼請為對方的帳戶授予這個角色。

  • 系統管理員
  • 開發人員
Compute Engine 共用 VPC 管理員

具備管理共用 VPC 主專案的權限,具體而言可啟用主專案,並將服務專案連結至主專案的網路。這個角色只能在機構層級授予。

專案建立者

如需特定角色可授予權限的 API 方法清單,請參閱 Compute Engine IAM 角色說明文件。

預先定義的角色矩陣

下表提供每個 Compute Engine 角色權限的完整比較。

功能 執行個體管理員 (v1) 映像檔使用者 網路使用者 網路檢視者 網路管理員 安全管理員 儲存空間管理員 共用 VPC 管理員 Compute 管理員 Compute 檢視者 負載平衡器管理員
建立或刪除 VM 執行個體 *
透過 SSH 存取執行個體 * *
列出或取得 VM 執行個體
建立或刪除映像檔、磁碟、快照
列出或取得映像檔
建立或刪除執行個體群組 *
列出或取得執行個體群組
建立及管理負載平衡器
建立及管理 VPN
查看網路/子網路資源
查看防火牆規則
建立及管理防火牆和 SSL 憑證 防火牆
SSL 憑證
建立及管理 VPC 託管專案
使用共用 VPC 託管專案中的網路和子網路
建立及管理網路和子網路

*如果 VM 執行個體能夠以服務帳戶形式執行,請一併授予服務帳戶使用者角色。

如需特定角色可授予權限的 API 方法清單,請參閱 Compute Engine IAM 角色說明文件。

基本身分與存取權管理角色

基本 IAM 角色可直接對應至舊版專案的擁有者、編輯者和檢視者角色。一般來說,您應該要盡可能使用預先定義的角色;不過在不支援 IAM 的情況下,您可能需要使用基本角色來授予適當的權限。

角色稱號 權限
Owner 具備所有檢視者和編輯者權限,並可變更帳單設定、管理存取權控制設定,以及刪除專案。
Editor 具備所有檢視者權限,並可建立、修改及刪除資源。
Viewer 具備所有資源的唯讀權限;沒有資源的變更權限。

如要進一步瞭解基本角色,請參閱基本角色說明文件。

如果預先定義或基本角色不符合您的需求,您可以建立自訂角色

Compute Engine 資源適用的 IAM 政策

您可以授予 Compute Engine 資源存取權 (例如 VM 執行個體、映像檔和磁碟),方法是將 IAM 政策直接連結至該資源。IAM 政策可讓您管理這些資源上的 IAM 角色,而不是在專案層級管理角色。這樣一來,您就能透過更靈活的方式來落實最小權限原則;例如將協作者的權限侷限在工作需要的資源上。

透過 Compute Engine 資源適用的 IAM 政策,機構可以:

  • 授予使用者存取特定資源子集。假設艾莉負責管理專案內某執行個體子集,您可以利用執行個體層級的 IAM 政策,授予艾莉 compute.instanceAdmin.v1 角色來限制其只能存取這些執行個體。如果您在專案上授予艾莉同一個角色,她就有權限能修改專案內的所有執行個體。
  • 允許系統管理員授予存取權。系統管理員可以授予其他人存取執行個體、磁碟和映像檔的權限,就算管理員本身不是專案擁有者也能授予。假設鮑伯是開發人員且具備特定映像檔的 compute.storageAdmin 角色,則他可以授予映像檔的 compute.imageUser 角色,和其他團員共用映像檔。但如果沒有 Compute Engine 資源適用的 IAM 政策,鮑伯就必須是專案擁有者才能和團員共用映像檔,因為他必須修改專案的 IAM 政策。

資源同時也會繼承父項資源的政策。如果您在專案層級設定政策,該層級的所有子項資源都會繼承這項政策。會對資源發揮作用的政策,除了在資源層級設定的政策外,還包括資源從上層階級繼承的政策。詳情請參閱 IAM 政策階層

機構政策

如果您是 Google Workspace 成員,您的專案可能屬於某項機構資源。機構資源在 Google Cloud 資源階層中是超節點,與 Google Workspace 帳戶密切相關。為 Google Workspace 網域建立機構資源之後,由該網域成員建立的所有Google Cloud 專案皆隸屬於該機構資源。

機構可導入機構政策,限制整個Google Cloud 資源階層的可用設定。針對 Compute Engine,您可以採用下列政策:

如要設定機構政策,您必須已獲授予機構的 orgpolicy.policyAdmin 角色。您還可建立專案專屬的覆寫設定,以防出現政策的例外狀況。

如要進一步瞭解機構,請參閱機構說明文件。

如要進一步瞭解機構政策,請參閱機構政策說明文件。

為使用者授予 VM 執行個體的 SSH 存取權

如想允許某位使用者使用 SSH 連線至 VM 執行個體,但不想授予其 Compute Engine 資源的管理權限,請在專案中新增該使用者的公開金鑰,或在特定執行個體中新增使用者的公開金鑰。只要使用這個方法,您就不必將使用者新增為專案成員,同時仍可為該使用者授予特定執行個體的存取權。

如要進一步瞭解 SSH 和管理 SSH 金鑰的方式,請參閱 SSH 金鑰總覽一文。

請注意,如果您為某位專案成員授予 roles/compute.instanceAdmin.v1 角色,則只要執行個體並未設定為以服務帳戶的形式執行,該成員可使用 SSH 自動連線至執行個體。如果執行個體是以服務帳戶的形式執行,您就必須一併授予 roles/iam.serviceAccountUser 角色,這樣該成員才能連線至執行個體。

如果您將成員新增為專案擁有者或編輯者,該成員也將自動取得專案中 VM 執行個體的 SSH 存取權。

針對在 VM 執行個體上執行的應用程式控制存取權

如果您在執行個體上執行應用程式,且應用程式需要驗證其他 Google Cloud API,您可以建立服務帳戶並授予其特定 IAM 角色,代替您驗證其他 Google Cloud API。服務帳戶是一種沒有使用者憑證的特殊帳戶,適合用於伺服器之間的互動。

如要進一步瞭解服務帳戶,請參閱服務帳戶說明文件。

Compute Engine 工作負載的受管理工作負載身分

您可以使用受管理的工作負載身分,設定憑證授權單位服務 (CA 服務) 的 X.509 憑證自動佈建和生命週期管理作業。受管理的工作負載身分憑證是由 CA 服務核發,這是一項可用性高且可擴充的服務 Google Cloud ,可協助您簡化及自動化 CA 服務的部署、管理和安全防護作業,同時保有對私密金鑰的控制權。

透過受管理的工作負載身分,您可以利用由 Compute Engine 管理的 VM 專屬 mTLS。每個 VM mTLS 都會使用您建立 VM 時核發的 X.509 憑證。這些 mTLS 憑證會自動輪替,因此您不必再擔心管理憑證。

受管理的工作負載身分可提供基礎,讓任何兩個 Compute Engine VM 之間的通訊能夠相互驗證並加密。舉例來說,當您使用受管理的工作負載身分時,在一個 VM 中執行的服務 A 會透過使用 mTLS 建立的加密管道,與在不同 VM 中執行的服務 B 進行通訊。

如要瞭解如何設定受管理的工作負載身分,請參閱「透過 mTLS 驗證工作負載與其他工作負載」。

後續步驟