Compute Engine 身分與存取權管理角色

Compute Engine 設有一組特定的身分與存取權管理 (IAM) 角色。每個預先定義的角色都具有一組權限。

當您在專案中新增成員時,可以使用 IAM 政策為該成員提供一或多個 IAM 角色。每個 IAM 角色都包含了授予成員存取特定資源的權限。

如要瞭解如何設定專案層級的政策,請參閱 IAM 說明文件中的授予、變更及撤銷資源的存取權一文。如要瞭解如何設定 Compute Engine 資源上的政策,請參閱授予 Compute Engine 資源的存取權一文。如要瞭解如何為 Compute Engine 服務帳戶指派角色,請參閱建立和啟用執行個體的服務帳戶一文。如要瞭解如何建立含有任何部分權限的自訂角色,請參閱建立及管理自訂角色一文。

事前準備

什麼是 IAM?

Google Cloud Platform (GCP) 提供 Cloud Identity and Access Management (Cloud IAM) 功能,可讓您以更精細的方式授予特定 GCP 資源的存取權,避免其他資源遭到擅自存取。IAM 能讓您採用最低權限安全性原則,僅授予必要的資源存取權限給使用者。

IAM 可讓您設定 IAM 政策,藉此控管「誰」(身分)對於「哪些資源」有「哪些權限」(角色)。IAM 政策可將特定角色授予專案成員,讓對方擁有特定權限。舉例來說,您可以將某個特定資源 (例如專案) 的 roles/compute.networkAdmin 角色指派給一個 Google 帳戶,該帳戶即可控管專案中的網路相關資源,但無法管理其他資源,例如執行個體和磁碟等。您也可以使用 Cloud IAM 來管理已授予專案小組成員的 GCP Console 舊版角色

預先定義的 Compute Engine Cloud IAM 角色

若使用 Cloud IAM,Compute Engine API 中的每個 API 方法都要求提出 API 要求的身分具備使用該資源的適當權限。只要設定政策將「角色」授予專案「成員」 (使用者、群組或服務帳戶),即可授予權限。

除了舊版角色 (檢視者、編輯者、擁有者) 和自訂角色之外,您可以為專案成員指派下列預先定義的 Compute Engine 角色。

您可以將多個角色授予相同資源中的同一專案成員。舉例來說,如果您的網路小組也負責管理防火牆規則,則可將 roles/compute.networkAdminroles/compute.securityAdmin 授予網路小組的 Google 群組

下表說明預先定義的 Compute Engine Cloud IAM 角色,以及每個角色中包含的權限。每個角色都具有一組適用於特定工作的權限。舉例來說,前兩個角色可授予管理執行個體的權限,網路相關角色擁有管理網路相關資源的權限,安全性角色則有管理安全性相關資源 (例如防火牆與安全資料傳輸層 (SSL) 憑證) 的權限。

Compute 管理員角色

名稱 說明 權限
roles/
compute.admin

具備 Compute Engine 資源的完整控制權。

如果使用者會管理設定為以服務帳戶執行的虛擬機器執行個體,您還必須為該使用者授予 roles/iam.serviceAccountUser 角色。

  • compute.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 映像檔使用者角色

名稱 說明 權限
roles/
compute.imageUser

具備列出及讀取映像檔的權限,但不具備對映像檔的其他權限。在專案層級授予 compute.imageUser 角色可讓使用者列出專案中的所有映像檔,並依據專案中的映像檔建立資源 (例如執行個體和永久磁碟)。

  • compute.images.get
  • compute.images.getFromFamily
  • compute.images.list
  • compute.images.useReadOnly
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 執行個體管理員 (Beta 測試版) 角色

名稱 說明 權限
roles/
compute.instanceAdmin

具備建立、修改及刪除虛擬機器執行個體的權限,其中包括建立、修改及刪除磁碟的權限,以及進行受防護的 VMBETA 版設定的權限。

如果使用者會管理設定為以服務帳戶執行的虛擬機器執行個體,您還必須為該使用者授予 roles/iam.serviceAccountUser 角色。

舉例來說,如果貴公司已有人負責管理虛擬機器執行個體群組,但並未管理網路或安全性設定,且未管理以服務帳戶執行的執行個體,則可將這個角色授予給包含執行個體的機構、資料夾或專案,或是授予給個別執行個體。

  • compute.acceleratorTypes.*
  • compute.addresses.get
  • compute.addresses.list
  • compute.addresses.use
  • compute.autoscalers.*
  • compute.diskTypes.*
  • compute.disks.create
  • compute.disks.createSnapshot
  • compute.disks.delete
  • compute.disks.get
  • compute.disks.list
  • compute.disks.resize
  • compute.disks.setLabels
  • compute.disks.update
  • compute.disks.use
  • compute.disks.useReadOnly
  • compute.globalAddresses.get
  • compute.globalAddresses.list
  • compute.globalAddresses.use
  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.images.get
  • compute.images.getFromFamily
  • compute.images.list
  • compute.images.useReadOnly
  • compute.instanceGroupManagers.*
  • compute.instanceGroups.*
  • compute.instanceTemplates.*
  • compute.instances.*
  • compute.licenses.get
  • compute.licenses.list
  • compute.machineTypes.*
  • compute.networkEndpointGroups.*
  • compute.networks.get
  • compute.networks.list
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.regionOperations.get
  • compute.regionOperations.list
  • compute.regions.*
  • compute.reservations.get
  • compute.reservations.list
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.targetPools.get
  • compute.targetPools.list
  • compute.zoneOperations.get
  • compute.zoneOperations.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 執行個體管理員 (v1) 角色

名稱 說明 權限
roles/
compute.instanceAdmin.v1
具備 Compute Engine 執行個體、執行個體群組、磁碟、快照和映像檔的完整控制權,以及 Compute Engine 網路資源的讀取存取權。

如果將此角色授予使用者時,僅停留在執行個體層級,則該使用者無法建立新執行個體。

  • compute.acceleratorTypes.*
  • compute.addresses.get
  • compute.addresses.list
  • compute.addresses.use
  • compute.autoscalers.*
  • compute.backendBuckets.get
  • compute.backendBuckets.list
  • compute.backendServices.get
  • compute.backendServices.list
  • compute.diskTypes.*
  • compute.disks.*
  • compute.externalVpnGateways.get
  • compute.externalVpnGateways.list
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.forwardingRules.get
  • compute.forwardingRules.list
  • compute.globalAddresses.get
  • compute.globalAddresses.list
  • compute.globalAddresses.use
  • compute.globalForwardingRules.get
  • compute.globalForwardingRules.list
  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.healthChecks.get
  • compute.healthChecks.list
  • compute.httpHealthChecks.get
  • compute.httpHealthChecks.list
  • compute.httpsHealthChecks.get
  • compute.httpsHealthChecks.list
  • compute.images.*
  • compute.instanceGroupManagers.*
  • compute.instanceGroups.*
  • compute.instanceTemplates.*
  • compute.instances.*
  • compute.interconnectAttachments.get
  • compute.interconnectAttachments.list
  • compute.interconnectLocations.*
  • compute.interconnects.get
  • compute.interconnects.list
  • compute.licenseCodes.*
  • compute.licenses.*
  • compute.machineTypes.*
  • compute.networkEndpointGroups.*
  • compute.networks.get
  • compute.networks.list
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.projects.setCommonInstanceMetadata
  • compute.regionBackendServices.get
  • compute.regionBackendServices.list
  • compute.regionOperations.get
  • compute.regionOperations.list
  • compute.regions.*
  • compute.reservations.get
  • compute.reservations.list
  • compute.resourcePolicies.*
  • compute.routers.get
  • compute.routers.list
  • compute.routes.get
  • compute.routes.list
  • compute.snapshots.*
  • compute.sslCertificates.get
  • compute.sslCertificates.list
  • compute.sslPolicies.get
  • compute.sslPolicies.list
  • compute.sslPolicies.listAvailableFeatures
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.targetHttpProxies.get
  • compute.targetHttpProxies.list
  • compute.targetHttpsProxies.get
  • compute.targetHttpsProxies.list
  • compute.targetInstances.get
  • compute.targetInstances.list
  • compute.targetPools.get
  • compute.targetPools.list
  • compute.targetSslProxies.get
  • compute.targetSslProxies.list
  • compute.targetTcpProxies.get
  • compute.targetTcpProxies.list
  • compute.targetVpnGateways.get
  • compute.targetVpnGateways.list
  • compute.urlMaps.get
  • compute.urlMaps.list
  • compute.vpnGateways.get
  • compute.vpnGateways.list
  • compute.vpnTunnels.get
  • compute.vpnTunnels.list
  • compute.zoneOperations.get
  • compute.zoneOperations.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 負載平衡器管理員角色

名稱 說明 權限
roles/
compute.loadBalancerAdmin
Beta 版

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

舉例來說,如果貴公司有一個負責管理負載平衡器、負載平衡器的 SSL 憑證、SSL 政策及其他負載平衡資源的負載平衡團隊,還有另一個負責管理其他網路資源的網路團隊,請將 loadBalancerAdmin 角色授予負載平衡團隊的成員。

  • compute.addresses.*
  • compute.backendBuckets.*
  • compute.backendServices.*
  • compute.forwardingRules.*
  • compute.globalAddresses.*
  • compute.globalForwardingRules.*
  • compute.healthChecks.*
  • compute.httpHealthChecks.*
  • compute.httpsHealthChecks.*
  • compute.instanceGroups.*
  • compute.instances.get
  • compute.instances.list
  • compute.instances.use
  • compute.networkEndpointGroups.*
  • compute.networks.get
  • compute.networks.list
  • compute.networks.use
  • compute.projects.get
  • compute.regionBackendServices.*
  • compute.securityPolicies.get
  • compute.securityPolicies.list
  • compute.securityPolicies.use
  • compute.sslCertificates.*
  • compute.sslPolicies.*
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.targetHttpProxies.*
  • compute.targetHttpsProxies.*
  • compute.targetInstances.*
  • compute.targetPools.*
  • compute.targetSslProxies.*
  • compute.targetTcpProxies.*
  • compute.urlMaps.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 網路管理員角色

名稱 說明 權限
roles/
compute.networkAdmin

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

舉例來說,如果貴公司有一個負責管理防火牆和 SSL 憑證的安全性團隊,以及一個負責管理其他網路資源的網路團隊,請將 networkAdmin 角色授予網路團隊的成員。

  • compute.addresses.*
  • compute.autoscalers.get
  • compute.autoscalers.list
  • compute.backendBuckets.*
  • compute.backendServices.*
  • compute.externalVpnGateways.*
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.forwardingRules.*
  • compute.globalAddresses.*
  • compute.globalForwardingRules.*
  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.healthChecks.*
  • compute.httpHealthChecks.*
  • compute.httpsHealthChecks.*
  • compute.instanceGroupManagers.get
  • compute.instanceGroupManagers.list
  • compute.instanceGroupManagers.update
  • compute.instanceGroupManagers.use
  • compute.instanceGroups.get
  • compute.instanceGroups.list
  • compute.instanceGroups.update
  • compute.instanceGroups.use
  • compute.instances.get
  • compute.instances.getGuestAttributes
  • compute.instances.getSerialPortOutput
  • compute.instances.list
  • compute.instances.listReferrers
  • compute.instances.use
  • compute.interconnectAttachments.*
  • compute.interconnectLocations.*
  • compute.interconnects.*
  • compute.networkEndpointGroups.get
  • compute.networkEndpointGroups.list
  • compute.networkEndpointGroups.use
  • compute.networks.*
  • compute.projects.get
  • compute.regionBackendServices.*
  • compute.regionOperations.get
  • compute.regionOperations.list
  • compute.regions.*
  • compute.routers.*
  • compute.routes.*
  • compute.securityPolicies.get
  • compute.securityPolicies.list
  • compute.securityPolicies.use
  • compute.sslCertificates.get
  • compute.sslCertificates.list
  • compute.sslPolicies.*
  • compute.subnetworks.*
  • compute.targetHttpProxies.*
  • compute.targetHttpsProxies.*
  • compute.targetInstances.*
  • compute.targetPools.*
  • compute.targetSslProxies.*
  • compute.targetTcpProxies.*
  • compute.targetVpnGateways.*
  • compute.urlMaps.*
  • compute.vpnGateways.*
  • compute.vpnTunnels.*
  • compute.zoneOperations.get
  • compute.zoneOperations.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • servicenetworking.operations.get
  • servicenetworking.services.addPeering
  • servicenetworking.services.get
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 網路使用者角色

名稱 說明 權限
roles/
compute.networkUser

提供共用虛擬私人雲端 (VPC) 網路的存取權

授予這個角色後,服務擁有者就可使用屬於主專案的虛擬私人雲端網路和子網路。舉例來說,網路使用者可建立屬於主專案網路的 VM 執行個體,但無法在主專案中刪除或建立新網路。

  • compute.addresses.createInternal
  • compute.addresses.deleteInternal
  • compute.addresses.get
  • compute.addresses.list
  • compute.addresses.useInternal
  • compute.externalVpnGateways.get
  • compute.externalVpnGateways.list
  • compute.externalVpnGateways.use
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.interconnectAttachments.get
  • compute.interconnectAttachments.list
  • compute.interconnectLocations.*
  • compute.interconnects.get
  • compute.interconnects.list
  • compute.interconnects.use
  • compute.networks.get
  • compute.networks.list
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.regions.*
  • compute.routers.get
  • compute.routers.list
  • compute.routes.get
  • compute.routes.list
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.targetVpnGateways.get
  • compute.targetVpnGateways.list
  • compute.vpnGateways.get
  • compute.vpnGateways.list
  • compute.vpnGateways.use
  • compute.vpnTunnels.get
  • compute.vpnTunnels.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • servicenetworking.services.get
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 網路檢視者角色

名稱 說明 權限
roles/
compute.networkViewer

具備所有網路資源的唯讀存取權

舉例來說,如果您的軟體需要檢查網路設定,您可以將 networkViewer 角色授予給該軟體的服務帳戶。

  • compute.addresses.get
  • compute.addresses.list
  • compute.autoscalers.get
  • compute.autoscalers.list
  • compute.backendBuckets.get
  • compute.backendBuckets.list
  • compute.backendServices.get
  • compute.backendServices.list
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.forwardingRules.get
  • compute.forwardingRules.list
  • compute.globalAddresses.get
  • compute.globalAddresses.list
  • compute.globalForwardingRules.get
  • compute.globalForwardingRules.list
  • compute.healthChecks.get
  • compute.healthChecks.list
  • compute.httpHealthChecks.get
  • compute.httpHealthChecks.list
  • compute.httpsHealthChecks.get
  • compute.httpsHealthChecks.list
  • compute.instanceGroupManagers.get
  • compute.instanceGroupManagers.list
  • compute.instanceGroups.get
  • compute.instanceGroups.list
  • compute.instances.get
  • compute.instances.getGuestAttributes
  • compute.instances.getSerialPortOutput
  • compute.instances.list
  • compute.instances.listReferrers
  • compute.interconnectAttachments.get
  • compute.interconnectAttachments.list
  • compute.interconnectLocations.*
  • compute.interconnects.get
  • compute.interconnects.list
  • compute.networks.get
  • compute.networks.list
  • compute.projects.get
  • compute.regionBackendServices.get
  • compute.regionBackendServices.list
  • compute.regions.*
  • compute.routers.get
  • compute.routers.list
  • compute.routes.get
  • compute.routes.list
  • compute.sslCertificates.get
  • compute.sslCertificates.list
  • compute.sslPolicies.get
  • compute.sslPolicies.list
  • compute.sslPolicies.listAvailableFeatures
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.targetHttpProxies.get
  • compute.targetHttpProxies.list
  • compute.targetHttpsProxies.get
  • compute.targetHttpsProxies.list
  • compute.targetInstances.get
  • compute.targetInstances.list
  • compute.targetPools.get
  • compute.targetPools.list
  • compute.targetSslProxies.get
  • compute.targetSslProxies.list
  • compute.targetTcpProxies.get
  • compute.targetTcpProxies.list
  • compute.targetVpnGateways.get
  • compute.targetVpnGateways.list
  • compute.urlMaps.get
  • compute.urlMaps.list
  • compute.vpnGateways.get
  • compute.vpnGateways.list
  • compute.vpnTunnels.get
  • compute.vpnTunnels.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • servicenetworking.services.get
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 機構安全性政策管理員角色

名稱 說明 權限
roles/
compute.orgSecurityPolicyAdmin
Beta 版
具備 Compute Engine 機構安全性政策的完整控制權。
  • compute.globalOperations.get
  • compute.globalOperations.getIamPolicy
  • compute.globalOperations.list
  • compute.globalOperations.setIamPolicy
  • compute.projects.get
  • compute.securityPolicies.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 機構安全性政策使用者角色

名稱 說明 權限
roles/
compute.orgSecurityPolicyUser
Beta 版
查看或使用 Compute Engine 安全性政策,並與機構或資料夾建立關聯。
  • compute.globalOperations.get
  • compute.globalOperations.getIamPolicy
  • compute.globalOperations.list
  • compute.globalOperations.setIamPolicy
  • compute.projects.get
  • compute.securityPolicies.get
  • compute.securityPolicies.list
  • compute.securityPolicies.use
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 機構資源管理員角色

名稱 說明 權限
roles/
compute.orgSecurityResourceAdmin
Beta 版
具備與機構或資料夾相關聯之 Compute Engine 安全性政策的完整控制權。
  • compute.globalOperations.get
  • compute.globalOperations.getIamPolicy
  • compute.globalOperations.list
  • compute.globalOperations.setIamPolicy
  • compute.projects.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute OS 管理員登入角色

名稱 說明 權限
roles/
compute.osAdminLogin

以管理員使用者身分登入 Compute Engine 執行個體的存取權。

  • compute.instances.get
  • compute.instances.list
  • compute.instances.osAdminLogin
  • compute.instances.osLogin
  • compute.projects.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute OS 登入角色

名稱 說明 權限
roles/
compute.osLogin

以標準使用者身分登入 Compute Engine 執行個體的存取權。

  • compute.instances.get
  • compute.instances.list
  • compute.instances.osLogin
  • compute.projects.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute OS 登入外部使用者角色

名稱 說明 權限
roles/
compute.osLoginExternalUser

僅可用於機構層級。

允許外部使用者設定與此機構關聯的 OS 登入資訊。此角色並未授予對執行個體的存取權。外部使用者必須獲得必要的 OS 登入角色,才能使用 SSH 存取執行個體。

  • compute.oslogin.*

Compute 封包鏡像管理員角色

名稱 說明 權限
roles/
compute.packetMirroringAdmin
Alpha 版
指定要建立鏡像的資源。
  • compute.networks.mirror
  • compute.projects.get
  • compute.subnetworks.mirror
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 封包鏡像使用者角色

名稱 說明 權限
roles/
compute.packetMirroringUser
Alpha 版
使用 Compute Engine 封包鏡像。
  • compute.packetMirrorings.*
  • compute.projects.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 安全性管理員角色

名稱 說明 權限
roles/
compute.securityAdmin

具備建立、修改及刪除防火牆規則和 SSL 憑證的權限,以及進行受防護的 VM Beta 版設定的權限。

舉例來說,如果貴公司的安全性團隊負責管理防火牆和 SSL 憑證,而網路團隊負責管理其他網路資源,請將 securityAdmin 角色授予安全性團隊所屬的群組。

  • compute.firewalls.*
  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.instances.setShieldedInstanceIntegrityPolicy
  • compute.instances.setShieldedVmIntegrityPolicy
  • compute.instances.updateShieldedInstanceConfig
  • compute.instances.updateShieldedVmConfig
  • compute.networks.get
  • compute.networks.list
  • compute.networks.updatePolicy
  • compute.packetMirrorings.*
  • compute.projects.get
  • compute.regionOperations.get
  • compute.regionOperations.list
  • compute.regions.*
  • compute.routes.get
  • compute.routes.list
  • compute.securityPolicies.*
  • compute.sslCertificates.*
  • compute.sslPolicies.*
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.zoneOperations.get
  • compute.zoneOperations.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 儲存空間管理員角色

名稱 說明 權限
roles/
compute.storageAdmin

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

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

  • compute.diskTypes.*
  • compute.disks.*
  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.images.*
  • compute.licenseCodes.*
  • compute.licenses.*
  • compute.projects.get
  • compute.regionOperations.get
  • compute.regionOperations.list
  • compute.regions.*
  • compute.resourcePolicies.*
  • compute.snapshots.*
  • compute.zoneOperations.get
  • compute.zoneOperations.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 檢視者角色

名稱 說明 權限
roles/
compute.viewer

具備唯讀權限,可以取得及列出 Compute Engine 資源,但無法讀取其上儲存的資料。

舉例來說,具備這個角色的帳戶可以列出專案中的所有磁碟,但無法讀取這些磁碟上的任何資料。

  • compute.acceleratorTypes.*
  • compute.addresses.get
  • compute.addresses.list
  • compute.autoscalers.get
  • compute.autoscalers.list
  • compute.backendBuckets.get
  • compute.backendBuckets.list
  • compute.backendServices.get
  • compute.backendServices.list
  • compute.commitments.get
  • compute.commitments.list
  • compute.diskTypes.*
  • compute.disks.get
  • compute.disks.getIamPolicy
  • compute.disks.list
  • compute.externalVpnGateways.get
  • compute.externalVpnGateways.list
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.forwardingRules.get
  • compute.forwardingRules.list
  • compute.globalAddresses.get
  • compute.globalAddresses.list
  • compute.globalForwardingRules.get
  • compute.globalForwardingRules.list
  • compute.globalOperations.get
  • compute.globalOperations.getIamPolicy
  • compute.globalOperations.list
  • compute.healthChecks.get
  • compute.healthChecks.list
  • compute.httpHealthChecks.get
  • compute.httpHealthChecks.list
  • compute.httpsHealthChecks.get
  • compute.httpsHealthChecks.list
  • compute.images.get
  • compute.images.getFromFamily
  • compute.images.getIamPolicy
  • compute.images.list
  • compute.instanceGroupManagers.get
  • compute.instanceGroupManagers.list
  • compute.instanceGroups.get
  • compute.instanceGroups.list
  • compute.instanceTemplates.get
  • compute.instanceTemplates.getIamPolicy
  • compute.instanceTemplates.list
  • compute.instances.get
  • compute.instances.getGuestAttributes
  • compute.instances.getIamPolicy
  • compute.instances.getSerialPortOutput
  • compute.instances.getShieldedInstanceIdentity
  • compute.instances.getShieldedVmIdentity
  • compute.instances.list
  • compute.instances.listReferrers
  • compute.interconnectAttachments.get
  • compute.interconnectAttachments.list
  • compute.interconnectLocations.*
  • compute.interconnects.get
  • compute.interconnects.list
  • compute.licenseCodes.get
  • compute.licenseCodes.getIamPolicy
  • compute.licenseCodes.list
  • compute.licenses.get
  • compute.licenses.getIamPolicy
  • compute.licenses.list
  • compute.machineTypes.*
  • compute.maintenancePolicies.get
  • compute.maintenancePolicies.getIamPolicy
  • compute.maintenancePolicies.list
  • compute.networkEndpointGroups.get
  • compute.networkEndpointGroups.getIamPolicy
  • compute.networkEndpointGroups.list
  • compute.networks.get
  • compute.networks.list
  • compute.nodeGroups.get
  • compute.nodeGroups.getIamPolicy
  • compute.nodeGroups.list
  • compute.nodeTemplates.get
  • compute.nodeTemplates.getIamPolicy
  • compute.nodeTemplates.list
  • compute.nodeTypes.*
  • compute.projects.get
  • compute.regionBackendServices.get
  • compute.regionBackendServices.list
  • compute.regionOperations.get
  • compute.regionOperations.getIamPolicy
  • compute.regionOperations.list
  • compute.regions.*
  • compute.reservations.get
  • compute.reservations.list
  • compute.resourcePolicies.get
  • compute.resourcePolicies.list
  • compute.routers.get
  • compute.routers.list
  • compute.routes.get
  • compute.routes.list
  • compute.securityPolicies.get
  • compute.securityPolicies.getIamPolicy
  • compute.securityPolicies.list
  • compute.snapshots.get
  • compute.snapshots.getIamPolicy
  • compute.snapshots.list
  • compute.sslCertificates.get
  • compute.sslCertificates.list
  • compute.sslPolicies.get
  • compute.sslPolicies.list
  • compute.sslPolicies.listAvailableFeatures
  • compute.subnetworks.get
  • compute.subnetworks.getIamPolicy
  • compute.subnetworks.list
  • compute.targetHttpProxies.get
  • compute.targetHttpProxies.list
  • compute.targetHttpsProxies.get
  • compute.targetHttpsProxies.list
  • compute.targetInstances.get
  • compute.targetInstances.list
  • compute.targetPools.get
  • compute.targetPools.list
  • compute.targetSslProxies.get
  • compute.targetSslProxies.list
  • compute.targetTcpProxies.get
  • compute.targetTcpProxies.list
  • compute.targetVpnGateways.get
  • compute.targetVpnGateways.list
  • compute.urlMaps.get
  • compute.urlMaps.list
  • compute.urlMaps.validate
  • compute.vpnGateways.get
  • compute.vpnGateways.list
  • compute.vpnTunnels.get
  • compute.vpnTunnels.list
  • compute.zoneOperations.get
  • compute.zoneOperations.getIamPolicy
  • compute.zoneOperations.list
  • compute.zones.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Compute 共用虛擬私人雲端管理員角色

名稱 說明 權限
roles/
compute.xpnAdmin

具備管理共用虛擬私人雲端主專案的權限,具體而言可啟用主專案,並為共用虛擬私人雲端服務專案與主專案網路建立關聯。

此角色只能由機構管理員授予機構。

Google Cloud 建議您將共用虛擬私人雲端管理員設為共用虛擬私人雲端主專案的擁有者。共用虛擬私人雲端管理員負責將 compute.networkUser 角色授予服務擁有者,而共用虛擬私人雲端主專案擁有者則可自行控管專案。如果單一主體 (個人或群體) 可以同時擔任這兩個角色,就能更輕鬆管理專案。

  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.organizations.*
  • compute.projects.get
  • compute.subnetworks.getIamPolicy
  • compute.subnetworks.setIamPolicy
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list

DNS 管理員角色

名稱 說明 權限
roles/
dns.admin
提供所有 Cloud DNS 資源的讀寫存取權。
  • compute.networks.get
  • compute.networks.list
  • dns.changes.*
  • dns.dnsKeys.*
  • dns.managedZoneOperations.*
  • dns.managedZones.*
  • dns.networks.*
  • dns.policies.create
  • dns.policies.delete
  • dns.policies.get
  • dns.policies.list
  • dns.policies.update
  • dns.projects.*
  • dns.resourceRecordSets.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list

DNS 對等互連角色

名稱 說明 權限
roles/
dns.peer
Beta 版
可存取含有 DNS 對等互連區域的目標網路
  • dns.networks.targetWithPeeringZone

DNS 讀取者角色

名稱 說明 權限
roles/
dns.reader
提供所有 Cloud DNS 資源的唯讀存取權。
  • compute.networks.get
  • dns.changes.get
  • dns.changes.list
  • dns.dnsKeys.*
  • dns.managedZoneOperations.*
  • dns.managedZones.get
  • dns.managedZones.list
  • dns.policies.get
  • dns.policies.list
  • dns.projects.*
  • dns.resourceRecordSets.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

服務帳戶管理員角色

名稱 說明 權限
roles/
iam.serviceAccountAdmin
可建立及管理服務帳戶。
  • iam.serviceAccounts.create
  • iam.serviceAccounts.delete
  • iam.serviceAccounts.get
  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.list
  • iam.serviceAccounts.setIamPolicy
  • iam.serviceAccounts.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list

建立服務帳戶角色

名稱 說明 權限
roles/
iam.serviceAccountCreator
可建立服務帳戶。
  • iam.serviceAccounts.create
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

刪除服務帳戶角色

名稱 說明 權限
roles/
iam.serviceAccountDeleter
可刪除服務帳戶。
  • iam.serviceAccounts.delete
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

服務帳戶金鑰管理員角色

名稱 說明 權限
roles/
iam.serviceAccountKeyAdmin
建立、管理 (及輪替) 服務帳戶金鑰。
  • iam.serviceAccountKeys.*
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

服務帳戶憑證建立者角色

名稱 說明 權限
roles/
iam.serviceAccountTokenCreator
模擬服務帳戶 (建立 OAuth2 存取憑證與簽署 blob 或 JWT 等)。
  • iam.serviceAccounts.get
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.list
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
  • resourcemanager.projects.get
  • resourcemanager.projects.list

服務帳戶使用者角色

名稱 說明 權限
roles/
iam.serviceAccountUser
以服務帳戶進行作業。
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Workload Identity 使用者角色

名稱 說明 權限
roles/
iam.workloadIdentityUser
使用 GKE 工作負載的模擬服務帳戶
  • iam.serviceAccounts.get
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.list

serviceAccountUser 角色

一併授予 roles/compute.instanceAdmin.v1 角色時,roles/iam.serviceAccountUser 角色會授予成員建立及管理使用服務帳戶的執行個體的權限。具體而言,同時將 roles/iam.serviceAccountUserroles/compute.instanceAdmin.v1 授予成員,即可授予以下權限:

  • 建立以服務帳戶形式執行的執行個體。
  • 將永久磁碟連結至以服務帳戶執行的執行個體。
  • 為以服務帳戶執行的執行個體設定相關中繼資料。
  • 透過 SSH 連線至以服務帳戶執行的執行個體。
  • 重新設定執行個體,使其以服務帳戶形式執行。

您可以透過以下兩種方式授予 roles/iam.serviceAccountUser

  • 建議做法:將特定服務帳戶的該角色授予成員。這麼做可讓該成員存取其具備 iam.serviceAccountUser 角色的服務帳戶,但禁止對方存取其不具備 iam.serviceAccountUser 角色的其他服務帳戶。

  • 專案層級將角色授予成員。該成員可以存取專案中的所有服務帳戶 (包括日後建立的服務帳戶)。

如對服務帳戶不熟悉,請參閱說明文章進一步瞭解。

以 instanceAdmin 身分與執行個體連線

roles/compute.instanceAdmin.v1 角色授予專案成員後,對方即可透過標準 Google Cloud Platform 工具 (例如 gcloud 工具或 透過瀏覽器使用安全殼層連線),連線到虛擬機器 (VM) 執行個體。

如果有成員使用 gcloud 指令列工具或透過瀏覽器使用安全殼層連線,這些工具會自動產生公開/私密金鑰組,並將公開金鑰新增至專案中繼資料。如果成員不具備編輯專案中繼資料的權限,工具則會改為將該成員的公開金鑰新增至執行個體中繼資料。

如果成員已有想要使用的現有金鑰組,可以將其公開金鑰手動新增至執行個體的中繼資料。進一步瞭解如何在執行個體上新增或刪除安全殼層金鑰

透過服務帳戶使用 IAM 功能

建立新的自訂服務帳戶,並將 Cloud IAM 角色授予服務帳戶,以限制執行個體的存取權。透過自訂服務帳戶使用 Cloud IAM 角色,您就能執行下列操作:

  • 透過精細的 Cloud IAM 角色來限制執行個體對 GCP API 的存取權。
  • 為每個執行個體 (或一組執行個體) 提供獨特的身分。
  • 限制預設服務帳戶的存取權。

進一步瞭解服務帳戶

代管執行個體群組和 Cloud IAM

代管執行個體群組 (尤其在設為自動調度資源時) 是可以代表您執行動作的資源,完全不需要使用者直接互動。代管執行個體群組會透過服務帳戶身分在執行個體群組中建立、刪除及管理執行個體。詳情請參閱代管執行個體群組和 Cloud IAM 說明文件。

不支援的操作

您無法透過 Cloud IAM 角色授予對執行個體群組執行滾動式更新的權限。

如要授予可執行這類操作的權限,請使用更廣泛的擁有者、編輯者或檢視者角色。

後續步驟

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

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

這個網頁
Compute Engine 說明文件