프로젝트에 새 구성원을 추가할 때 ID 및 액세스 관리(IAM) 정책을 사용하여 해당 구성원에게 하나 이상의 IAM 역할을 부여할 수 있습니다. 각 IAM 역할에는 구성원에게 특정 리소스에 대한 액세스 권한을 부여하는 권한이 포함됩니다.
Compute Engine에는 이 페이지에서 설명하는 사전 정의된 IAM 역할 집합이 있습니다. 요구사항에 맞는 권한 하위 집합이 포함된 커스텀 역할을 만들 수도 있습니다.
각 방식에 필요한 권한을 알아보려면 Compute Engine API 참조 문서를 확인하세요.
액세스 권한 부여에 대한 자세한 내용은 다음 페이지를 참조하세요.
- 프로젝트 수준에서 IAM 정책을 설정하려면 IAM 문서에서 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.
- 특정 Compute Engine 리소스에 대해 정책을 설정하려면 Compute Engine 리소스에 대한 액세스 권한 부여를 참조하세요.
- Compute Engine 서비스 계정에 역할을 할당하려면 인스턴스의 서비스 계정 만들기 및 사용 설정을 참조하세요.
IAM이란?
Google Cloud는 사용자가 특정 Google Cloud 리소스에 대한 세부적인 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있는 IAM을 제공합니다. IAM은 최소 권한의 보안 원칙을 채택하여 리소스에 대해 필요한 액세스 권한만 부여할 수 있게 해줍니다.
IAM을 사용하면 IAM 정책을 설정하여 누가(ID) 어떤 리소스에 무슨(역할) 권한을 갖는지를 제어할 수 있습니다. IAM 정책은 프로젝트 구성원에게 특정 역할을 부여하고 ID 관련 권한을 제공합니다. 예를 들어 프로젝트와 같은 특정 리소스에 대한 roles/compute.networkAdmin
역할을 Google 계정에 할당하면 해당 계정이 프로젝트에 있는 네트워크 관련 리소스는 제어할 수 있어도 인스턴스 및 디스크와 같은 다른 리소스는 관리할 수 없습니다. IAM을 사용하여 프로젝트 팀 구성원에게 부여된 Google Cloud 콘솔의 기존 역할을 관리할 수도 있습니다.
serviceAccountUser 역할
roles/compute.instanceAdmin.v1
및 roles/iam.serviceAccountUser
역할을 함께 부여받은 구성원은 서비스 계정을 사용하는 인스턴스를 만들고 관리할 수 있습니다. 구체적으로 roles/iam.serviceAccountUser
및 roles/compute.instanceAdmin.v1
역할을 함께 부여받은 구성원에게는 다음 작업을 수행할 수 있는 권한이 제공됩니다.
- 서비스 계정으로 실행되는 인스턴스를 만들 수 있습니다.
- 서비스 계정으로 실행되는 인스턴스에 영구 디스크를 연결할 수 있습니다.
- 서비스 계정으로 실행되는 인스턴스에서 인스턴스 메타데이터를 설정할 수 있습니다.
- SSH를 사용하여 서비스 계정으로 실행되는 인스턴스에 연결할 수 있습니다.
- 인스턴스가 서비스 계정으로 실행되도록 다시 구성할 수 있습니다.
다음 2가지 방법 중 하나로 roles/iam.serviceAccountUser
를 부여할 수 있습니다.
권장사항. 특정 서비스 계정의 구성원에게 역할을 부여합니다. 이렇게 하면 이 구성원은
iam.serviceAccountUser
역할을 부여받은 서비스 계정에는 액세스할 수 있지만,iam.serviceAccountUser
역할을 부여받지 않은 다른 서비스 계정에는 액세스할 수 없습니다.프로젝트 수준에서 구성원에게 역할을 부여합니다. 구성원은 이후에 생성되는 서비스 계정을 포함하여 해당 프로젝트의 모든 서비스 계정에 액세스할 수 있습니다.
서비스 계정에 대해 잘 모른다면 서비스 계정에 대해 자세히 알아보세요.
Google Cloud 콘솔 권한
Google Cloud 콘솔을 사용하여 Compute Engine 리소스에 액세스하려면 프로젝트에 대해 다음 권한을 갖는 역할이 할당되어 있어야 합니다.
compute.projects.get
인스턴스에 instanceAdmin으로 연결
roles/compute.instanceAdmin.v1
역할을 부여받은 프로젝트 구성원은 gcloud CLI 또는 SSH-in-browser와 같은 표준 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 역할을 프로젝트 구성원에게 할당할 수 있습니다.
한 프로젝트 구성원에게 동일한 리소스에 대한 여러 역할을 부여할 수 있습니다. 예를 들어 네트워킹팀에서 방화벽 규칙도 관리하는 경우 네트워킹팀의 Google 그룹에 roles/compute.networkAdmin
과 roles/compute.securityAdmin
역할을 모두 부여할 수 있습니다.
다음 표는 사전 정의된 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 역할 부여