プロジェクトに新しいメンバーを追加する際は、Identity and Access Management(IAM)ポリシーを使用して、そのメンバーに 1 つ以上の IAM ロールを付与できます。各 IAM ロールには、メンバーに特定のリソースへのアクセスを許可する権限が含まれています。
Compute Engine には、このページで説明する一連の事前定義された IAM ロールが用意されています。また、ニーズに直接対応する権限のサブセットを含むカスタムロールを作成することもできます。
各メソッドに対して必要な権限については、Compute Engine API のリファレンス ドキュメントをご覧ください。
アクセス権の付与の詳細については、次のページをご覧ください。
始める前に
IAM とは
Google Cloud には IAM 機能があります。これにより、特定の Google Cloud リソースに対するアクセス権を詳細に設定できるため、他のリソースへの不正なアクセスを防ぐことができます。IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみ付与できます。
IAM では、IAM ポリシーを設定して、誰(どのユーザー)に、どのリソースに対するどのアクセス権(ロール)を付与するかを制御できます。IAM ポリシーは、特定のロールをプロジェクト メンバーに付与することで、その ID に特定の権限を付与します。たとえば、プロジェクトなどの特定のリソースに対し、Google アカウントに roles/compute.networkAdmin
のロールを割り当てた場合、そのアカウントはプロジェクト内のネットワーク関連のリソースは制御できるようになりますが、インスタンスやディスクなどの他のリソースは管理できません。また、IAM を使用して、プロジェクト チームメンバーに付与されている Cloud Console の以前のロールを管理することもできます。
serviceAccountUser の役割
roles/compute.instanceAdmin.v1
と roles/iam.serviceAccountUser
の両方が付与されたメンバーは、サービス アカウントを使用するインスタンスを作成、管理できます。具体的には、roles/iam.serviceAccountUser
と roles/compute.instanceAdmin.v1
の両方が付与されたメンバーには次の権限が設定されます。
- サービス アカウントとして実行するインスタンスの作成。
- サービス アカウントとして実行するインスタンスへの永続ディスクの接続。
- サービス アカウントとして実行するインスタンスへのインスタンス メタデータの設定。
- サービス アカウントとして実行するインスタンスへの SSH を使用した接続。
- サービス アカウントとして実行するインスタンスの再構成。
roles/iam.serviceAccountUser
は、次の 2 つの方法のいずれかで付与できます。
(推奨)特定のサービス アカウントに基づいてメンバーに役割を付与する。これにより、この役割が付与されたメンバーは自身が iam.serviceAccountUser
となっているサービス アカウントにはアクセスできますが、iam.serviceAccountUser
となっていない他のサービス アカウントにはアクセスできません。
プロジェクト レベルでメンバーに役割を付与する。このメンバーは、プロジェクト内のすべてのサービス アカウントにアクセスできます。今後作成されるサービス アカウントにもアクセスできます。
サービス アカウントに精通していない場合は、サービス アカウントの詳細を確認してください。
Google Cloud Console 権限
Google Cloud Console を使用して Compute Engine リソースにアクセスするには、プロジェクトに対して次の権限を持つロールが必要です。
compute.projects.get
instanceAdmin としてのインスタンスへの接続
プロジェクト メンバーに roles/compute.instanceAdmin.v1
のロールを付与すると、そのメンバーは gcloud CLI やブラウザからの SSH をはじめとする標準の Google Cloud ツールを使用して、仮想マシン(VM)インスタンスに接続できます。
メンバーが gcloud CLI またはブラウザからの SSH を使用すると、公開鍵 / 秘密鍵のペアが自動的に生成され、公開鍵がプロジェクト メタデータに追加されます。メンバーがプロジェクト メタデータを編集する権限を保有していない場合、ツールによって代わりにメンバーの公開鍵がインスタンス メタデータに追加されます。
使用する既存の鍵のペアを持っているメンバーは、自分の公開鍵をインスタンスのメタデータに手動で追加できます。インスタンスへの SSH 認証鍵の追加の詳細について確認します。
IAM とサービス アカウント
新しいカスタム サービス アカウントを作成し、IAM のロールをサービス アカウントに付与して、インスタンスのアクセスを制限します。IAM のロールとカスタム サービス アカウントは、以下の目的のために使用します。
- きめ細かい IAM のロールを使用して、Google Cloud APIs に対するインスタンスのアクセスを制限する。
- 各インスタンス、または一連のインスタンスに一意の ID を付与する。
- デフォルトのサービス アカウントのアクセスを制限する。
サービス アカウントの詳細を確認する。
マネージド インスタンス グループと IAM
マネージド インスタンス グループ(MIG)は、直接的なユーザー操作なしでユーザーの代わりにアクションを実行するリソースです。たとえば、MIG はグループに対して VM の追加や削除を行うことができます。
MIG の一部として Compute Engine により実行されるオペレーションはすべて、プロジェクトの Google API サービス エージェントによって実行されます。このサービス エージェントは、PROJECT_ID@cloudservices.gserviceaccount.com
のようなメールアドレスを持っています。
デフォルトでは、Google API サービス エージェントにはプロジェクト レベルで編集者のロール(roles/editor
)が付与されています。このロールは、MIG の構成に基づいてリソースを作成するのに十分な権限を持っています。Google API サービス エージェントのアクセス権をカスタマイズする場合は、Compute インスタンス管理者(v1)ロール(roles/compute.instanceAdmin.v1
)と、必要に応じてサービス アカウント ユーザーのロール(roles/iam.serviceAccountUser
)を付与します。サービス アカウント ユーザーのロールは、MIG がサービス アカウントとして実行できる VM を作成する場合にのみ必要です。
なお、Google API サービス エージェントは Deployment Manager などの他のプロセスでも使用されます。
MIG の作成やインスタンス テンプレートの更新を行うと、Compute Engine は、Google API サービス エージェントに次のロールと権限が付与されていることを確認します。
- サービス アカウント ユーザーのロール(サービス アカウントとして実行できるインスタンスを作成する場合には重要)。
- イメージ、ディスク、VPC ネットワーク、サブネットなどのインスタンス テンプレートから参照されるすべてのリソースに対する権限。
事前定義された Compute Engine IAM 役割
IAM では、Compute Engine API のすべての API メソッドで、API リクエストを行う ID がリソースの使用に必要な権限を保持していることが要求されます。権限を付与するには、プロジェクトのメンバー(ユーザー、グループ、またはサービス アカウント)に役割を付与するポリシーを設定します。
基本ロール(閲覧者、編集者、オーナー)やカスタムロールに加え、Compute Engine で以下の事前定義ロールもプロジェクトのメンバーに割り当てることができます。
1 人のプロジェクト メンバーに、同一リソースにおける複数の役割を付与できます。たとえば、ネットワーキング チームがファイアウォール ルールも管理している場合、roles/compute.networkAdmin
と roles/compute.securityAdmin
の両方のロールをネットワーキング チームの Google グループに付与できます。
次の表に、事前定義された Compute Engine IAM ロールと、それぞれのロールに含まれる権限を記載します。各ロールには、特定のタスクに適した一連の権限が含まれています。たとえば、インスタンス管理者のロールはインスタンスを管理する権限を付与することができ、ネットワーク関連のロールにはネットワーク関連のリソースを管理する権限が含まれています。また、セキュリティ関連のロールには、セキュリティ関連のリソース(ファイアウォール証明書、SSL 証明書など)を管理する権限が含まれています。
Compute Admin role
Title and name |
Description |
Permissions |
Compute Admin
(roles/compute.admin )
|
Full control of all Compute Engine resources.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
roles/iam.serviceAccountUser role.
Lowest-level resources where you can grant this role:
-
Disk
-
Image
-
Instance
-
Instance template
-
Node group
-
Node template
-
Snapshot Beta
|
compute.*
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Image User role
Title and name |
Description |
Permissions |
Compute Image User
(roles/compute.imageUser )
|
Permission to list and read images without having other permissions on the image. Granting this role
at the project level gives users the ability to list all images in the project and create resources,
such as instances and persistent disks, based on images in the project.
Lowest-level resources where you can grant this role:
|
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 Instance Admin (beta) role
Title and name |
Description |
Permissions |
Compute Instance Admin (beta)
(roles/compute.instanceAdmin )
|
Permissions to create, modify, and delete virtual machine instances.
This includes permissions to create, modify, and delete disks, and also to
configure Shielded VM
settings.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
roles/iam.serviceAccountUser role.
For example, if your company has someone who manages groups of virtual
machine instances but does not manage network or security settings and
does not manage instances that run as service accounts, you can grant this
role on the organization, folder, or project that contains the instances,
or you can grant it on individual instances.
Lowest-level resources where you can grant this role:
-
Disk
-
Image
-
Instance
-
Instance template
-
Snapshot Beta
|
compute.acceleratorTypes.*
compute.addresses.createInternal
compute.addresses.deleteInternal
compute.addresses.get
compute.addresses.list
compute.addresses.use
compute.addresses.useInternal
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.globalNetworkEndpointGroups.*
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.machineImages.*
compute.machineTypes.*
compute.networkEndpointGroups.*
compute.networks.get
compute.networks.list
compute.networks.use
compute.networks.useExternalIp
compute.projects.get
compute.regionNetworkEndpointGroups.*
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 Instance Admin (v1) role
Compute Load Balancer Admin role
Title and name |
Description |
Permissions |
Compute Load Balancer Admin
(roles/compute.loadBalancerAdmin )
Beta
|
Permissions to create, modify, and delete load balancers and associate
resources.
For example, if your company has a load balancing team that manages load
balancers, SSL certificates for load balancers, SSL policies, and other
load balancing resources, and a separate networking team that manages
the rest of the networking resources, then grant this role to the load
balancing team's group.
Lowest-level resources where you can grant this role:
|
certificatemanager.certmaps.get
certificatemanager.certmaps.list
certificatemanager.certmaps.use
compute.addresses.*
compute.backendBuckets.*
compute.backendServices.*
compute.disks.listEffectiveTags
compute.disks.listTagBindings
compute.forwardingRules.*
compute.globalAddresses.*
compute.globalForwardingRules.*
compute.globalNetworkEndpointGroups.*
compute.healthChecks.*
compute.httpHealthChecks.*
compute.httpsHealthChecks.*
compute.images.listEffectiveTags
compute.images.listTagBindings
compute.instanceGroups.*
compute.instances.get
compute.instances.list
compute.instances.listEffectiveTags
compute.instances.listTagBindings
compute.instances.use
compute.instances.useReadOnly
compute.networkEndpointGroups.*
compute.networks.get
compute.networks.list
compute.networks.use
compute.projects.get
compute.regionBackendServices.*
compute.regionHealthCheckServices.*
compute.regionHealthChecks.*
compute.regionNetworkEndpointGroups.*
compute.regionNotificationEndpoints.*
compute.regionSslCertificates.*
compute.regionTargetHttpProxies.*
compute.regionTargetHttpsProxies.*
compute.regionUrlMaps.*
compute.securityPolicies.get
compute.securityPolicies.list
compute.securityPolicies.use
compute.snapshots.listEffectiveTags
compute.snapshots.listTagBindings
compute.sslCertificates.*
compute.sslPolicies.*
compute.subnetworks.get
compute.subnetworks.list
compute.subnetworks.use
compute.targetGrpcProxies.*
compute.targetHttpProxies.*
compute.targetHttpsProxies.*
compute.targetInstances.*
compute.targetPools.*
compute.targetSslProxies.*
compute.targetTcpProxies.*
compute.urlMaps.*
networksecurity.clientTlsPolicies.get
networksecurity.clientTlsPolicies.list
networksecurity.clientTlsPolicies.use
networksecurity.serverTlsPolicies.get
networksecurity.serverTlsPolicies.list
networksecurity.serverTlsPolicies.use
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Load Balancer Services User role
Title and name |
Description |
Permissions |
Compute Load Balancer Services User
(roles/compute.loadBalancerServiceUser )
Beta
|
Permissions to use services from a load balancer in other projects.
|
compute.backendServices.get
compute.backendServices.list
compute.backendServices.use
compute.projects.get
compute.regionBackendServices.get
compute.regionBackendServices.list
compute.regionBackendServices.use
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Network Admin role
Title and name |
Description |
Permissions |
Compute Network Admin
(roles/compute.networkAdmin )
|
Permissions to create, modify, and delete networking resources,
except for firewall rules and SSL certificates. The network admin role
allows read-only access to firewall rules, SSL certificates, and instances
(to view their ephemeral IP addresses). The network admin role does not
allow a user to create, start, stop, or delete instances.
For example, if your company has a security team that manages firewalls
and SSL certificates and a networking team that manages the rest of the
networking resources, then grant this role to the networking team's group.
Or, if you have a combined team that manages both security and networking,
then grant this role as well as the
roles/compute.securityAdmin role to the combined team's group.
Lowest-level resources where you can grant this role:
|
compute.acceleratorTypes.*
compute.addresses.*
compute.autoscalers.get
compute.autoscalers.list
compute.backendBuckets.*
compute.backendServices.*
compute.disks.listEffectiveTags
compute.disks.listTagBindings
compute.externalVpnGateways.*
compute.firewallPolicies.get
compute.firewallPolicies.list
compute.firewallPolicies.use
compute.firewalls.get
compute.firewalls.list
compute.forwardingRules.*
compute.globalAddresses.*
compute.globalForwardingRules.*
compute.globalNetworkEndpointGroups.get
compute.globalNetworkEndpointGroups.list
compute.globalNetworkEndpointGroups.use
compute.globalOperations.get
compute.globalOperations.list
compute.globalPublicDelegatedPrefixes.delete
compute.globalPublicDelegatedPrefixes.get
compute.globalPublicDelegatedPrefixes.list
compute.globalPublicDelegatedPrefixes.update
compute.globalPublicDelegatedPrefixes.updatePolicy
compute.healthChecks.*
compute.httpHealthChecks.*
compute.httpsHealthChecks.*
compute.images.listEffectiveTags
compute.images.listTagBindings
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.getScreenshot
compute.instances.getSerialPortOutput
compute.instances.list
compute.instances.listEffectiveTags
compute.instances.listReferrers
compute.instances.listTagBindings
compute.instances.updateSecurity
compute.instances.use
compute.instances.useReadOnly
compute.interconnectAttachments.*
compute.interconnectLocations.*
compute.interconnects.*
compute.machineTypes.*
compute.networkEndpointGroups.get
compute.networkEndpointGroups.list
compute.networkEndpointGroups.use
compute.networks.*
compute.packetMirrorings.get
compute.packetMirrorings.list
compute.projects.get
compute.publicDelegatedPrefixes.delete
compute.publicDelegatedPrefixes.get
compute.publicDelegatedPrefixes.list
compute.publicDelegatedPrefixes.update
compute.publicDelegatedPrefixes.updatePolicy
compute.regionBackendServices.*
compute.regionFirewallPolicies.get
compute.regionFirewallPolicies.list
compute.regionFirewallPolicies.use
compute.regionHealthCheckServices.*
compute.regionHealthChecks.*
compute.regionNetworkEndpointGroups.get
compute.regionNetworkEndpointGroups.list
compute.regionNetworkEndpointGroups.use
compute.regionNotificationEndpoints.*
compute.regionOperations.get
compute.regionOperations.list
compute.regionSslCertificates.get
compute.regionSslCertificates.list
compute.regionTargetHttpProxies.*
compute.regionTargetHttpsProxies.*
compute.regionUrlMaps.*
compute.regions.*
compute.routers.*
compute.routes.*
compute.securityPolicies.get
compute.securityPolicies.list
compute.securityPolicies.use
compute.serviceAttachments.*
compute.snapshots.listEffectiveTags
compute.snapshots.listTagBindings
compute.sslCertificates.get
compute.sslCertificates.list
compute.sslPolicies.*
compute.subnetworks.*
compute.targetGrpcProxies.*
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.*
networkconnectivity.locations.*
networkconnectivity.operations.*
networksecurity.*
networkservices.*
resourcemanager.projects.get
resourcemanager.projects.list
servicedirectory.namespaces.create
servicedirectory.namespaces.delete
servicedirectory.services.create
servicedirectory.services.delete
servicenetworking.operations.get
servicenetworking.services.addPeering
servicenetworking.services.get
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
trafficdirector.*
|
Compute Network User role
Title and name |
Description |
Permissions |
Compute Network User
(roles/compute.networkUser )
|
Provides access to a shared VPC network
Once granted, service owners can use VPC networks and subnets that belong
to the host project. For example, a network user can create a VM instance
that belongs to a host project network but they cannot delete or create
new networks in the host project.
Lowest-level resources where you can grant this role:
|
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.access
compute.networks.get
compute.networks.getEffectiveFirewalls
compute.networks.getRegionEffectiveFirewalls
compute.networks.list
compute.networks.listPeeringRoutes
compute.networks.use
compute.networks.useExternalIp
compute.projects.get
compute.regions.*
compute.routers.get
compute.routers.list
compute.routes.get
compute.routes.list
compute.serviceAttachments.get
compute.serviceAttachments.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.*
networkconnectivity.locations.*
networkconnectivity.operations.get
networkconnectivity.operations.list
networksecurity.authorizationPolicies.get
networksecurity.authorizationPolicies.list
networksecurity.authorizationPolicies.use
networksecurity.clientTlsPolicies.get
networksecurity.clientTlsPolicies.list
networksecurity.clientTlsPolicies.use
networksecurity.locations.*
networksecurity.operations.get
networksecurity.operations.list
networksecurity.serverTlsPolicies.get
networksecurity.serverTlsPolicies.list
networksecurity.serverTlsPolicies.use
networkservices.endpointConfigSelectors.get
networkservices.endpointConfigSelectors.list
networkservices.endpointConfigSelectors.use
networkservices.endpointPolicies.get
networkservices.endpointPolicies.list
networkservices.endpointPolicies.use
networkservices.gateways.get
networkservices.gateways.list
networkservices.gateways.use
networkservices.grpcRoutes.get
networkservices.grpcRoutes.list
networkservices.grpcRoutes.use
networkservices.httpFilters.get
networkservices.httpFilters.list
networkservices.httpFilters.use
networkservices.httpRoutes.get
networkservices.httpRoutes.list
networkservices.httpRoutes.use
networkservices.httpfilters.get
networkservices.httpfilters.list
networkservices.httpfilters.use
networkservices.locations.*
networkservices.meshes.get
networkservices.meshes.list
networkservices.meshes.use
networkservices.operations.get
networkservices.operations.list
networkservices.serviceBindings.get
networkservices.serviceBindings.list
networkservices.tcpRoutes.get
networkservices.tcpRoutes.list
networkservices.tcpRoutes.use
resourcemanager.projects.get
resourcemanager.projects.list
servicenetworking.services.get
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Network Viewer role
Compute Organization Firewall Policy Admin role
Title and name |
Description |
Permissions |
Compute Organization Firewall Policy Admin
(roles/compute.orgFirewallPolicyAdmin )
|
Full control of Compute Engine Organization Firewall Policies.
|
compute.firewallPolicies.cloneRules
compute.firewallPolicies.create
compute.firewallPolicies.delete
compute.firewallPolicies.get
compute.firewallPolicies.getIamPolicy
compute.firewallPolicies.list
compute.firewallPolicies.move
compute.firewallPolicies.setIamPolicy
compute.firewallPolicies.update
compute.firewallPolicies.use
compute.globalOperations.get
compute.globalOperations.getIamPolicy
compute.globalOperations.list
compute.globalOperations.setIamPolicy
compute.projects.get
compute.regionFirewallPolicies.*
compute.regionOperations.get
compute.regionOperations.getIamPolicy
compute.regionOperations.list
compute.regionOperations.setIamPolicy
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Organization Firewall Policy User role
Title and name |
Description |
Permissions |
Compute Organization Firewall Policy User
(roles/compute.orgFirewallPolicyUser )
|
View or use Compute Engine Firewall Policies to associate with the organization or folders.
|
compute.firewallPolicies.get
compute.firewallPolicies.list
compute.firewallPolicies.use
compute.globalOperations.get
compute.globalOperations.getIamPolicy
compute.globalOperations.list
compute.projects.get
compute.regionFirewallPolicies.get
compute.regionFirewallPolicies.list
compute.regionFirewallPolicies.use
compute.regionOperations.get
compute.regionOperations.getIamPolicy
compute.regionOperations.list
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Organization Security Policy Admin role
Title and name |
Description |
Permissions |
Compute Organization Security Policy Admin
(roles/compute.orgSecurityPolicyAdmin )
|
Full control of Compute Engine Organization Security Policies.
|
compute.firewallPolicies.*
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 Organization Security Policy User role
Title and name |
Description |
Permissions |
Compute Organization Security Policy User
(roles/compute.orgSecurityPolicyUser )
|
View or use Compute Engine Security Policies to associate with the organization or folders.
|
compute.firewallPolicies.addAssociation
compute.firewallPolicies.get
compute.firewallPolicies.list
compute.firewallPolicies.removeAssociation
compute.firewallPolicies.use
compute.globalOperations.get
compute.globalOperations.getIamPolicy
compute.globalOperations.list
compute.globalOperations.setIamPolicy
compute.projects.get
compute.securityPolicies.addAssociation
compute.securityPolicies.get
compute.securityPolicies.list
compute.securityPolicies.removeAssociation
compute.securityPolicies.use
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Organization Resource Admin role
Title and name |
Description |
Permissions |
Compute Organization Resource Admin
(roles/compute.orgSecurityResourceAdmin )
|
Full control of Compute Engine Firewall Policy associations to the organization or folders.
|
compute.globalOperations.get
compute.globalOperations.getIamPolicy
compute.globalOperations.list
compute.globalOperations.setIamPolicy
compute.organizations.listAssociations
compute.organizations.setFirewallPolicy
compute.organizations.setSecurityPolicy
compute.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute OS Admin Login role
Title and name |
Description |
Permissions |
Compute OS Admin Login
(roles/compute.osAdminLogin )
|
Access to log in to a Compute Engine instance as an administrator
user.
Lowest-level resources where you can grant this role:
|
compute.disks.listEffectiveTags
compute.disks.listTagBindings
compute.images.listEffectiveTags
compute.images.listTagBindings
compute.instances.get
compute.instances.list
compute.instances.listEffectiveTags
compute.instances.listTagBindings
compute.instances.osAdminLogin
compute.instances.osLogin
compute.projects.get
compute.snapshots.listEffectiveTags
compute.snapshots.listTagBindings
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute OS Login role
Title and name |
Description |
Permissions |
Compute OS Login
(roles/compute.osLogin )
|
Access to log in to a Compute Engine instance as a standard user.
Lowest-level resources where you can grant this role:
|
compute.disks.listEffectiveTags
compute.disks.listTagBindings
compute.images.listEffectiveTags
compute.images.listTagBindings
compute.instances.get
compute.instances.list
compute.instances.listEffectiveTags
compute.instances.listTagBindings
compute.instances.osLogin
compute.projects.get
compute.snapshots.listEffectiveTags
compute.snapshots.listTagBindings
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute OS Login External User role
Title and name |
Description |
Permissions |
Compute OS Login External User
(roles/compute.osLoginExternalUser )
|
Available only at the organization level.
Access for an external user to set OS Login information associated with
this organization. This role does not grant access to instances. External
users must be granted one of the required
OS Login roles
in order to allow access to instances using SSH.
Lowest-level resources where you can grant this role:
|
|
Compute packet mirroring admin role
Title and name |
Description |
Permissions |
Compute packet mirroring admin
(roles/compute.packetMirroringAdmin )
|
Specify resources to be mirrored.
|
compute.instances.updateSecurity
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 packet mirroring user role
Title and name |
Description |
Permissions |
Compute packet mirroring user
(roles/compute.packetMirroringUser )
|
Use Compute Engine packet mirrorings.
|
compute.packetMirrorings.*
compute.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
|
Compute Public IP Admin role
Title and name |
Description |
Permissions |
Compute Public IP Admin
(roles/compute.publicIpAdmin )
|
Full control of public IP address management for Compute Engine.
|
compute.addresses.*
compute.globalAddresses.*
compute.globalPublicDelegatedPrefixes.*
compute.publicAdvertisedPrefixes.*
compute.publicDelegatedPrefixes.*
resourcemanager.projects.get
resourcemanager.projects.list
|
Compute Security Admin role
Title and name |
Description |
Permissions |
Compute Security Admin
(roles/compute.securityAdmin )
|
Permissions to create, modify, and delete firewall rules and SSL
certificates, and also to
configure Shielded VM
settings.
For example, if your company has a security team that manages firewalls
and SSL certificates and a networking team that manages the rest of the
networking resources, then grant this role to the security team's group.
Lowest-level resources where you can grant this role:
|
compute.firewallPolicies.*
compute.firewalls.*
compute.globalOperations.get
compute.globalOperations.list
compute.instances.getEffectiveFirewalls
compute.instances.setShieldedInstanceIntegrityPolicy
compute.instances.setShieldedVmIntegrityPolicy
compute.instances.updateSecurity
compute.instances.updateShieldedInstanceConfig
compute.instances.updateShieldedVmConfig
compute.networks.get
compute.networks.getEffectiveFirewalls
compute.networks.getRegionEffectiveFirewalls
compute.networks.list
compute.networks.updatePolicy
compute.packetMirrorings.*
compute.projects.get
compute.regionFirewallPolicies.*
compute.regionOperations.get
compute.regionOperations.list
compute.regionSslCertificates.*
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 Sole Tenant Viewer role
Title and name |
Description |
Permissions |
Compute Sole Tenant Viewer
(roles/compute.soleTenantViewer )
Beta
|
Permissions to view sole tenancy node groups
|
compute.nodeGroups.get
compute.nodeGroups.getIamPolicy
compute.nodeGroups.list
compute.nodeTemplates.get
compute.nodeTemplates.getIamPolicy
compute.nodeTemplates.list
compute.nodeTypes.*
|
Compute Storage Admin role
Title and name |
Description |
Permissions |
Compute Storage Admin
(roles/compute.storageAdmin )
|
Permissions to create, modify, and delete disks, images, and snapshots.
For example, if your company has someone who manages project images and
you don't want them to have the editor role on the project, then grant
this role to their account on the project.
Lowest-level resources where you can grant this role:
|
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 Viewer role
Compute Shared VPC Admin role
Title and name |
Description |
Permissions |
Compute Shared VPC Admin
(roles/compute.xpnAdmin )
|
Permissions to administer shared VPC host projects,
specifically enabling the host projects and associating shared VPC service projects to the host
project's network.
At the organization level, this role can only be granted by an organization admin.
Google Cloud recommends that the Shared VPC Admin be the owner of the shared VPC host project. The
Shared VPC Admin is responsible for granting the Compute Network User role
(roles/compute.networkUser ) to service owners, and the shared VPC host project owner
controls the project itself. Managing the project is easier if a single principal (individual or
group) can fulfill both roles.
Lowest-level resources where you can grant this role:
|
compute.globalOperations.get
compute.globalOperations.list
compute.organizations.administerXpn
compute.organizations.disableXpnHost
compute.organizations.disableXpnResource
compute.organizations.enableXpnHost
compute.organizations.enableXpnResource
compute.projects.get
compute.subnetworks.getIamPolicy
compute.subnetworks.setIamPolicy
resourcemanager.organizations.get
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
resourcemanager.projects.list
|
GuestPolicy Admin role
Title and name |
Description |
Permissions |
GuestPolicy Admin
(roles/osconfig.guestPolicyAdmin )
Beta
|
Full admin access to GuestPolicies
|
osconfig.guestPolicies.*
resourcemanager.projects.get
resourcemanager.projects.list
|
GuestPolicy Editor role
Title and name |
Description |
Permissions |
GuestPolicy Editor
(roles/osconfig.guestPolicyEditor )
Beta
|
Editor of GuestPolicy resources
|
osconfig.guestPolicies.get
osconfig.guestPolicies.list
osconfig.guestPolicies.update
resourcemanager.projects.get
resourcemanager.projects.list
|
GuestPolicy Viewer role
Title and name |
Description |
Permissions |
GuestPolicy Viewer
(roles/osconfig.guestPolicyViewer )
Beta
|
Viewer of GuestPolicy resources
|
osconfig.guestPolicies.get
osconfig.guestPolicies.list
resourcemanager.projects.get
resourcemanager.projects.list
|
InstanceOSPoliciesCompliance Viewer role
Title and name |
Description |
Permissions |
InstanceOSPoliciesCompliance Viewer
(roles/osconfig.instanceOSPoliciesComplianceViewer )
Beta
|
Viewer of OS Policies Compliance of VM instances
|
osconfig.instanceOSPoliciesCompliances.*
resourcemanager.projects.get
resourcemanager.projects.list
|
OS Inventory Viewer role
Title and name |
Description |
Permissions |
OS Inventory Viewer
(roles/osconfig.inventoryViewer )
|
Viewer of OS Inventories
|
osconfig.inventories.*
resourcemanager.projects.get
resourcemanager.projects.list
|
OSPolicyAssignment Admin role
Title and name |
Description |
Permissions |
OSPolicyAssignment Admin
(roles/osconfig.osPolicyAssignmentAdmin )
|
Full admin access to OS Policy Assignments
|
osconfig.osPolicyAssignments.*
resourcemanager.projects.get
resourcemanager.projects.list
|
OSPolicyAssignment Editor role
Title and name |
Description |
Permissions |
OSPolicyAssignment Editor
(roles/osconfig.osPolicyAssignmentEditor )
|
Editor of OS Policy Assignments
|
osconfig.osPolicyAssignments.get
osconfig.osPolicyAssignments.list
osconfig.osPolicyAssignments.update
resourcemanager.projects.get
resourcemanager.projects.list
|
OSPolicyAssignmentReport Viewer role
Title and name |
Description |
Permissions |
OSPolicyAssignmentReport Viewer
(roles/osconfig.osPolicyAssignmentReportViewer )
|
Viewer of OS policy assignment reports for VM instances
|
osconfig.osPolicyAssignmentReports.*
resourcemanager.projects.get
resourcemanager.projects.list
|
OSPolicyAssignment Viewer role
Title and name |
Description |
Permissions |
OSPolicyAssignment Viewer
(roles/osconfig.osPolicyAssignmentViewer )
|
Viewer of OS Policy Assignments
|
osconfig.osPolicyAssignments.get
osconfig.osPolicyAssignments.list
resourcemanager.projects.get
resourcemanager.projects.list
|
PatchDeployment Admin role
Title and name |
Description |
Permissions |
PatchDeployment Admin
(roles/osconfig.patchDeploymentAdmin )
|
Full admin access to PatchDeployments
|
osconfig.patchDeployments.*
resourcemanager.projects.get
resourcemanager.projects.list
|
PatchDeployment Viewer role
Title and name |
Description |
Permissions |
PatchDeployment Viewer
(roles/osconfig.patchDeploymentViewer )
|
Viewer of PatchDeployment resources
|
osconfig.patchDeployments.get
osconfig.patchDeployments.list
resourcemanager.projects.get
resourcemanager.projects.list
|
Patch Job Executor role
Title and name |
Description |
Permissions |
Patch Job Executor
(roles/osconfig.patchJobExecutor )
|
Access to execute Patch Jobs.
|
osconfig.patchJobs.*
resourcemanager.projects.get
resourcemanager.projects.list
|
Patch Job Viewer role
Title and name |
Description |
Permissions |
Patch Job Viewer
(roles/osconfig.patchJobViewer )
|
Get and list Patch Jobs.
|
osconfig.patchJobs.get
osconfig.patchJobs.list
resourcemanager.projects.get
resourcemanager.projects.list
|
OS VulnerabilityReport Viewer role
Title and name |
Description |
Permissions |
OS VulnerabilityReport Viewer
(roles/osconfig.vulnerabilityReportViewer )
|
Viewer of OS VulnerabilityReports
|
osconfig.vulnerabilityReports.*
resourcemanager.projects.get
resourcemanager.projects.list
|
DNS Administrator role
Title and name |
Description |
Permissions |
DNS Administrator
(roles/dns.admin )
|
Provides read-write access to all Cloud DNS resources.
Lowest-level resources where you can grant this role:
|
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.*
dns.responsePolicies.*
dns.responsePolicyRules.*
resourcemanager.projects.get
resourcemanager.projects.list
|
DNS Peer role
Title and name |
Description |
Permissions |
DNS Peer
(roles/dns.peer )
|
Access to target networks with DNS peering zones
|
dns.networks.targetWithPeeringZone
|
DNS Reader role
Title and name |
Description |
Permissions |
DNS Reader
(roles/dns.reader )
|
Provides read-only access to all Cloud DNS resources.
Lowest-level resources where you can grant this role:
|
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.get
dns.resourceRecordSets.list
dns.responsePolicies.get
dns.responsePolicies.list
dns.responsePolicyRules.get
dns.responsePolicyRules.list
resourcemanager.projects.get
resourcemanager.projects.list
|
サービス アカウント管理者のロール
タイトルと名前 |
説明 |
権限 |
サービス アカウント管理者
(roles/iam.serviceAccountAdmin )
|
サービス アカウントを作成、管理します。 このロールを付与できる最下位レベルのリソース:
|
iam.serviceAccounts.create
iam.serviceAccounts.delete
iam.serviceAccounts.disable
iam.serviceAccounts.enable
iam.serviceAccounts.get
iam.serviceAccounts.getIamPolicy
iam.serviceAccounts.list
iam.serviceAccounts.setIamPolicy
iam.serviceAccounts.undelete
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.getOpenIdToken
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
|
サービス アカウント表示のロール
タイトルと名前 |
説明 |
権限 |
サービス アカウントの表示
(roles/iam.serviceAccountViewer ) |
サービス アカウント、メタデータ、鍵への読み取りアクセス権。 |
iam.serviceAccountKeys.get
iam.serviceAccountKeys.list
iam.serviceAccounts.get
iam.serviceAccounts.getIamPolicy
iam.serviceAccounts.list
resourcemanager.projects.get
resourcemanager.projects.list
|
Workload Identity ユーザーのロール
タイトルと名前 |
説明 |
権限 |
Workload Identity ユーザー
(roles/iam.workloadIdentityUser ) |
GKE ワークロードのサービス アカウントを使用できます。 |
iam.serviceAccounts.get
iam.serviceAccounts.getAccessToken
iam.serviceAccounts.getOpenIdToken
iam.serviceAccounts.list
|
次のステップ