存取權控管總覽

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

此外,如果您是在虛擬機器 (VM) 執行個體上執行應用程式,且應用程式需要存取 Compute Engine 或其他 Google Cloud Platform API,您可以使用服務帳戶 (而非使用者憑證) 來驗證應用程式。

使用者的存取權控制選項

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

團隊成員可以是具備有效 Google 帳戶的個別使用者、Google 群組、服務帳戶或 G Suite 網域。新增專案或資源團隊成員時,您必須指定要授予他們的角色。Cloud IAM 提供三種類型的角色:預先定義的角色原始角色自訂角色

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

預先定義的 Compute Engine 角色

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

角色名稱 權限 目標使用者
Compute Engine 映像檔使用者

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

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

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

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

如果成員日後會管理以服務帳戶形式執行的虛擬機器執行個體,您還必須為該成員授予服務帳戶使用者角色,這樣該成員才能指派服務帳戶給 VM 執行個體。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

具備所有網路資源的唯讀權限。舉例來說,如果您的軟體需要檢查網路配置,那麼您可以將網路檢視者角色授予該軟體的服務帳戶。

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

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

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

  • 系統管理員
  • 開發人員
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 角色說明文件。

Cloud IAM 原始角色

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

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

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

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

Compute Engine 資源適用的 Cloud IAM 政策

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

透過 Compute Engine 資源適用的 Cloud IAM 政策,組織可以:

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

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

組織政策

如果您是 G Suite 成員,您的專案可能屬於某項組織資源。機構資源在 Google Cloud Platform 資源階層中是超節點,與 G Suite 帳戶密切相關。為 G Suite 網域建立機構資源後,網域成員建立的所有 Cloud Platform 專案都將屬於該機構資源。

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

如要設定組織政策,您必須具備組織的 orgpolicy.policyAdmin 角色。您還可建立專案專屬的覆寫設定,以防出現政策的例外狀況。

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

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

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

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

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

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

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

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

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

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

後續步驟

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

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

這個網頁
Compute Engine 說明文件