プロジェクトに新しいメンバーを追加する際は、Identity and Access Management(IAM)ポリシーを使用して、そのメンバーに 1 つ以上の IAM ロールを付与できます。各 IAM ロールには、メンバーに特定のリソースへのアクセスを許可する権限が含まれています。
Compute Engine には、このページで説明する一連の事前定義された IAM ロールが用意されています。また、ニーズに直接対応する権限のサブセットを含むカスタムロールを作成することもできます。
各メソッドに対して必要な権限については、Compute Engine API のリファレンス ドキュメントをご覧ください。
アクセス権の付与の詳細については、次のページをご覧ください。
- プロジェクト レベルで IAM ポリシーを設定するには、IAM ドキュメントのリソースへのアクセス権の付与、変更、取り消しをご覧ください。
- 特定の Compute Engine リソースにポリシーを設定するには、Compute Engine リソースへのアクセス権の付与をご覧ください。
- Compute Engine サービス アカウントにロールを割り当てる方法については、インスタンスのサービス アカウントの作成と有効化をご覧ください。
IAM とは
Google Cloud には IAM 機能があります。これにより、特定の Google Cloud リソースに対するアクセス権を詳細に設定できるため、他のリソースへの不正なアクセスを防ぐことができます。IAM を使用すると、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみ付与できます。
IAM では、IAM ポリシーを設定して、誰(どのユーザー)に、どのリソースに対するどのアクセス権(ロール)を付与するかを制御できます。IAM ポリシーは、特定のロールをプロジェクト メンバーに付与することで、その ID に特定の権限を付与します。たとえば、プロジェクトなどの特定のリソースに対し、Google アカウントに roles/compute.networkAdmin
のロールを割り当てた場合、そのアカウントはプロジェクト内のネットワーク関連のリソースは制御できるようになりますが、インスタンスやディスクなどの他のリソースは管理できません。また、IAM を使用して、プロジェクト チームメンバーに付与されている Google Cloud コンソールの以前のロールを管理することもできます。
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 コンソールの権限
Google Cloud コンソールを使用して 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
)が付与されています。このロールは、グループの構成に基づいてリソースを作成するのに十分な権限を持っています。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
Details | Permissions |
---|---|
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
Lowest-level resources where you can grant this role:
|
|
Compute Future Reservation Admin role
Details | Permissions |
---|---|
Compute Future Reservation Admin Beta(
|
|
Compute Future Reservation User role
Details | Permissions |
---|---|
Compute Future Reservation User Beta(
|
|
Compute Future Reservation Viewer role
Details | Permissions |
---|---|
Compute Future Reservation Viewer Beta(
|
|
Compute Image User role
Details | Permissions |
---|---|
Compute Image User( 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 Instance Admin (beta) role
Details | Permissions |
---|---|
Compute Instance Admin (beta)( 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
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:
|
|
Compute Instance Admin (v1) role
Details | Permissions |
---|---|
Compute Instance Admin (v1)( Full control of Compute Engine instances, instance groups, disks, snapshots, and images. Read access to all Compute Engine networking resources. If you grant a user this role only at an instance level, then that user cannot create new instances. |
|
Compute Load Balancer Admin role
Details | Permissions |
---|---|
Compute Load Balancer Admin( 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:
|
|
Compute Load Balancer Services User role
Details | Permissions |
---|---|
Compute Load Balancer Services User( Permissions to use services from a load balancer in other projects. |
|
Compute Network Admin role
Details | Permissions |
---|---|
Compute Network Admin( 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
Lowest-level resources where you can grant this role:
|
|
Compute Network User role
Details | Permissions |
---|---|
Compute Network User( 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 Network Viewer role
Details | Permissions |
---|---|
Compute Network Viewer( Read-only access to all networking resources For example, if you have software that inspects your network configuration, you could grant this role to that software's service account. Lowest-level resources where you can grant this role:
|
|
Compute Organization Firewall Policy Admin role
Details | Permissions |
---|---|
Compute Organization Firewall Policy Admin( Full control of Compute Engine Organization Firewall Policies. |
|
Compute Organization Firewall Policy User role
Details | Permissions |
---|---|
Compute Organization Firewall Policy User( View or use Compute Engine Firewall Policies to associate with the organization or folders. |
|
Compute Organization Security Policy Admin role
Details | Permissions |
---|---|
Compute Organization Security Policy Admin( Full control of Compute Engine Organization Security Policies. |
|
Compute Organization Security Policy User role
Details | Permissions |
---|---|
Compute Organization Security Policy User( View or use Compute Engine Security Policies to associate with the organization or folders. |
|
Compute Organization Resource Admin role
Details | Permissions |
---|---|
Compute Organization Resource Admin( Full control of Compute Engine Firewall Policy associations to the organization or folders. |
|
Compute OS Admin Login role
Details | Permissions |
---|---|
Compute OS Admin Login( Access to log in to a Compute Engine instance as an administrator user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login role
Details | Permissions |
---|---|
Compute OS Login( Access to log in to a Compute Engine instance as a standard user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login External User role
Details | Permissions |
---|---|
Compute OS Login External User( 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
Details | Permissions |
---|---|
Compute packet mirroring admin( Specify resources to be mirrored. |
|
Compute packet mirroring user role
Details | Permissions |
---|---|
Compute packet mirroring user( Use Compute Engine packet mirrorings. |
|
Compute Public IP Admin role
Details | Permissions |
---|---|
Compute Public IP Admin( Full control of public IP address management for Compute Engine. |
|
Compute Security Admin role
Details | Permissions |
---|---|
Compute Security Admin( 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 Sole Tenant Viewer role
Details | Permissions |
---|---|
Compute Sole Tenant Viewer( Permissions to view sole tenancy node groups |
|
Compute Storage Admin role
Details | Permissions |
---|---|
Compute Storage Admin( 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 Viewer role
Details | Permissions |
---|---|
Compute Viewer( Read-only access to get and list Compute Engine resources, without being able to read the data stored on them. For example, an account with this role could inventory all of the disks in a project, but it could not read any of the data on those disks. Lowest-level resources where you can grant this role:
|
|
Compute Shared VPC Admin role
Details | Permissions |
---|---|
Compute Shared VPC Admin( 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
( Lowest-level resources where you can grant this role:
|
|
OS Config Admin role
Details | Permissions |
---|---|
OS Config Admin Beta( Full access to OS Config resources |
|
GuestPolicy Admin role
Details | Permissions |
---|---|
GuestPolicy Admin Beta( Full admin access to GuestPolicies |
|
GuestPolicy Editor role
Details | Permissions |
---|---|
GuestPolicy Editor Beta( Editor of GuestPolicy resources |
|
GuestPolicy Viewer role
Details | Permissions |
---|---|
GuestPolicy Viewer Beta( Viewer of GuestPolicy resources |
|
InstanceOSPoliciesCompliance Viewer role
Details | Permissions |
---|---|
InstanceOSPoliciesCompliance Viewer Beta( Viewer of OS Policies Compliance of VM instances |
|
OS Inventory Viewer role
Details | Permissions |
---|---|
OS Inventory Viewer( Viewer of OS Inventories |
|
OSPolicyAssignment Admin role
Details | Permissions |
---|---|
OSPolicyAssignment Admin( Full admin access to OS Policy Assignments |
|
OSPolicyAssignment Editor role
Details | Permissions |
---|---|
OSPolicyAssignment Editor( Editor of OS Policy Assignments |
|
OSPolicyAssignmentReport Viewer role
Details | Permissions |
---|---|
OSPolicyAssignmentReport Viewer( Viewer of OS policy assignment reports for VM instances |
|
OSPolicyAssignment Viewer role
Details | Permissions |
---|---|
OSPolicyAssignment Viewer( Viewer of OS Policy Assignments |
|
PatchDeployment Admin role
Details | Permissions |
---|---|
PatchDeployment Admin( Full admin access to PatchDeployments |
|
PatchDeployment Viewer role
Details | Permissions |
---|---|
PatchDeployment Viewer( Viewer of PatchDeployment resources |
|
Patch Job Executor role
Details | Permissions |
---|---|
Patch Job Executor( Access to execute Patch Jobs. |
|
Patch Job Viewer role
Details | Permissions |
---|---|
Patch Job Viewer( Get and list Patch Jobs. |
|
PolicyOrchestrator Admin role
Details | Permissions |
---|---|
PolicyOrchestrator Admin Beta( Admin of PolicyOrchestrator resources |
|
PolicyOrchestrator Viewer role
Details | Permissions |
---|---|
PolicyOrchestrator Viewer Beta( Viewer of PolicyOrchestrator resources |
|
Project Feature Settings Editor role
Details | Permissions |
---|---|
Project Feature Settings Editor( Read/write access to project feature settings |
|
Project Feature Settings Viewer role
Details | Permissions |
---|---|
Project Feature Settings Viewer( Read access to project feature settings |
|
Upgrade Report Viewer role
Details | Permissions |
---|---|
Upgrade Report Viewer Beta( Provides read-only access to VM Manager Upgrade Reports |
|
OS Config Viewer role
Details | Permissions |
---|---|
OS Config Viewer Beta( Readonly access to OS Config resources |
|
OS VulnerabilityReport Viewer role
Details | Permissions |
---|---|
OS VulnerabilityReport Viewer( Viewer of OS VulnerabilityReports |
|
DNS Administrator role
Details | Permissions |
---|---|
DNS Administrator( Provides read-write access to all Cloud DNS resources. Lowest-level resources where you can grant this role:
|
|
DNS Peer role
Details | Permissions |
---|---|
DNS Peer( Access to target networks with DNS peering zones |
|
DNS Reader role
Details | Permissions |
---|---|
DNS Reader( Provides read-only access to all Cloud DNS resources. Lowest-level resources where you can grant this role:
|
|
Service Account Admin role
Details | Permissions |
---|---|
Service Account Admin( Create and manage service accounts. Lowest-level resources where you can grant this role:
|
|
Create Service Accounts role
Details | Permissions |
---|---|
Create Service Accounts( Access to create service accounts. |
|
Delete Service Accounts role
Details | Permissions |
---|---|
Delete Service Accounts( Access to delete service accounts. |
|
Service Account Key Admin role
Details | Permissions |
---|---|
Service Account Key Admin( Create and manage (and rotate) service account keys. Lowest-level resources where you can grant this role:
|
|
Service Account OpenID Connect Identity Token Creator role
Details | Permissions |
---|---|
Service Account OpenID Connect Identity Token Creator( Create OpenID Connect (OIDC) identity tokens |
|
Service Account Token Creator role
Details | Permissions |
---|---|
Service Account Token Creator( Impersonate service accounts (create OAuth2 access tokens, sign blobs or JWTs, etc). Lowest-level resources where you can grant this role:
|
|
Service Account User role
Details | Permissions |
---|---|
Service Account User( Run operations as the service account. Lowest-level resources where you can grant this role:
|
|
View Service Accounts role
Details | Permissions |
---|---|
View Service Accounts( Read access to service accounts, metadata, and keys. |
|
Workload Identity User role
Details | Permissions |
---|---|
Workload Identity User( Impersonate service accounts from federated workloads. |
|
次のステップ
- IAM の詳細について学習する。
- カスタム IAM ロールの作成および管理方法を学習する。
- IAM のロールをプロジェクト ユーザーに付与する。
- 特定の Compute Engine リソースに対して IAM ロールを付与する。
- IAM のロールをサービス アカウントに付与する。