Compute Engine IAM 역할

Compute Engine에는 특정 Identity and Access Management(IAM) 역할 집합이 있습니다. 사전 정의된 각 역할에는 일련의 권한이 포함되어 있습니다.

프로젝트에 새 구성원을 추가할 때 IAM 정책을 사용하여 해당 구성원에게 하나 이상의 IAM 역할을 부여할 수 있습니다. 각 IAM 역할에는 구성원에게 특정 리소스에 대한 액세스 권한을 부여하는 권한이 포함됩니다.

프로젝트 수준에서 정책을 설정하는 방법을 알아보려면 IAM 문서에서 리소스에 대한 액세스 권한 부여, 변경, 취소를 읽어보세요. Compute Engine 리소스에 정책을 설정하는 방법을 알아보려면 Compute Engine 리소스에 대한 액세스 권한 부여를 읽어보세요. Compute Engine 서비스 계정에 역할을 할당하는 방법을 알아보려면 서비스 계정 만들기 및 인스턴스에 사용 문서를 읽어보세요. 권한의 하위 집합을 포함하는 커스텀 역할을 만드는 방법을 알아보려면 커스텀 역할 만들기 및 관리를 읽어보세요.

시작하기 전에

IAM이란?

Google Cloud Platform은 사용자가 특정 Google Cloud Platform 리소스 액세스를 보다 세부적으로 관리하고 다른 리소스에 대한 무단 액세스를 방지할 수 있게 해주는 IAM(ID 및 액세스 관리)를 제공합니다. IAM은 최소 권한의 보안 원칙을 채택하여 리소스에 대해 필요한 액세스 권한만 부여할 수 있게 해줍니다.

IAM을 사용하면 IAM 정책을 설정하여 누가(ID) 어떤 리소스에 무슨(역할) 권한을 갖는지를 제어할 수 있습니다. IAM 정책은 프로젝트 구성원에게 특정 역할을 부여하고 ID 관련 권한을 제공합니다. 예를 들어 프로젝트 등의 특정 리소스에 대한 roles/compute.networkAdmin 역할을 Google 계정에 할당하면 이 계정이 프로젝트에 있는 네트워크 관련 리소스를 제어할 수 있지만 인스턴스 및 디스크와 같은 다른 리소스는 관리할 수 없습니다. IAM을 사용하여 프로젝트팀 구성원에게 부여된 GCP Console의 이전 역할을 관리할 수도 있습니다.

사전 정의된 Compute Engine IAM 역할

IAM을 사용할 때 Compute Engine의 모든 API 메소드를 사용하기 위해서는 API 요청을 실행하는 ID에 해당 리소스를 사용하기 위한 적절한 권한이 있어야 합니다. 권한은 프로젝트 구성원(사용자, 그룹 또는 서비스 계정)에 역할을 부여하는 정책을 설정함으로써 부여됩니다.

이전 역할(소유자, 편집자, 뷰어)과 커스텀 역할 외에도 다음과 같은 사전 정의된 Compute Engine 역할을 프로젝트 구성원에게 할당할 수 있습니다.

한 프로젝트 구성원에게 동일한 리소스에 대한 여러 역할을 부여할 수 있습니다. 예를 들어 네트워킹팀이 방화벽 규칙도 직접 관리하는 경우 네트워킹팀의 Google 그룹roles/compute.networkAdminroles/compute.securityAdmin을 모두 부여할 수 있습니다.

다음 표는 사전 정의된 Compute Engine IAM 역할과 각 역할에 포함된 권한을 설명합니다. 각 역할에는 특정 작업에 적합한 권한 집합이 포함되어 있습니다. 예를 들어 처음 두 역할은 인스턴스 관리를 위한 권한을 부여하고, 네트워크 관련 역할은 네트워크 관련 리소스를 관리하기 위한 권한을 포함하고, 보안 역할은 방화벽과 SSL 인증서 같은 보안 관련 리소스를 관리하기 위한 권한을 포함합니다.

serviceAccountUser 역할

roles/iam.serviceAccountUser 역할과 roles/compute.instanceAdmin.v1 역할이 함께 부여된 구성원은 서비스 계정을 사용하는 인스턴스를 만들고 관리할 수 있습니다. roles/iam.serviceAccountUserroles/compute.instanceAdmin.v1 역할이 함께 부여된 구성원은 구체적으로 다음을 수행할 수 있습니다.

  • 서비스 계정으로 실행되는 인스턴스를 만들 수 있습니다.
  • 서비스 계정으로 실행되는 인스턴스에 영구 디스크를 연결할 수 있습니다.
  • 서비스 계정으로 실행되는 인스턴스에서 인스턴스 메타데이터를 설정할 수 있습니다.
  • SSH를 사용하여 서비스 계정으로 실행되는 인스턴스에 연결할 수 있습니다.
  • 인스턴스가 서비스 계정으로 실행되도록 다시 구성할 수 있습니다.

roles/iam.serviceAccountUser 역할은 다음 두 가지 방법 중 하나로 부여할 수 있습니다.

  • [권장] 특정 서비스 계정의 구성원에게 역할을 부여합니다. 이렇게 하면 구성원은 자신이 iam.serviceAccountUser인 서비스 계정에는 액세스할 수 있지만, 자신이 iam.serviceAccountUser가 아닌 다른 서비스 계정에는 액세스할 수 없습니다.

  • 프로젝트 수준에서 구성원에게 역할을 부여합니다. 구성원은 이후에 생성되는 서비스 계정을 포함하여 해당 프로젝트의 모든 서비스 계정에 액세스할 수 있습니다.

서비스 계정에 대해 잘 모른다면 서비스 계정에 대해 자세히 알아보세요.

인스턴스에 instanceAdmin으로 연결

프로젝트 구성원에게 roles/compute.instanceAdmin.v1 역할을 부여하면 해당 구성원은 gcloud 도구 같은 표준 Google Cloud Platform 도구 또는 브라우저에서 SSH로의 접속 기능을 사용하여 가상 머신 인스턴스에 연결할 수 있습니다.

구성원이 gcloud 명령줄 도구나 브라우저에서 SSH로의 접속 기능을 사용하면 이러한 도구가 자동으로 공개/비공개 키 쌍을 생성하고 공개 키를 프로젝트 메타데이터에 추가합니다. 멤버에게 프로젝트 메타데이터를 편집할 수 있는 권한이 없는 경우에는 도구가 멤버의 공개 키를 인스턴스 메타데이터에 추가합니다.

멤버에게 자신이 사용하려는 기존 키쌍이 있는 경우에는 자신의 공개 키를 인스턴스의 메타데이터에 직접 추가할 수 있습니다. 인스턴스에서 SSH 키 추가 및 제거에 대해 자세히 알아보세요.

서비스 계정과 IAM

새로운 커스텀 서비스 계정을 만들고 서비스 계정에 IAM 역할을 부여하여 인스턴스의 액세스 권한을 제한할 수 있습니다. 커스텀 서비스 계정과 함께 IAM 역할을 사용하면 다음을 수행할 수 있습니다.

  • 세분화된 IAM 역할을 사용하여 Cloud Platform API에 대한 인스턴스의 액세스 권한을 제한할 수 있습니다.
  • 각 인스턴스 또는 인스턴스 집합에 고유한 ID를 제공할 수 있습니다.
  • 기본 서비스 계정의 액세스 권한을 제한할 수 있습니다.

서비스 계정에 대해 자세히 알아보세요.

관리형 인스턴스 그룹 및 IAM

특히 자동 확장형으로 구성된 관리형 인스턴스 그룹은 직접적인 사용자 상호작용 없이 사용자를 대신해서 작업을 수행하는 리소스입니다. 관리형 인스턴스 그룹은 서비스 계정 ID를 사용하여 인스턴스 그룹에서 인스턴스를 생성, 삭제, 관리합니다. 자세한 내용은 관리형 인스턴스 그룹 및 IAM 문서를 읽어보세요.

지원되지 않는 작업

IAM 역할을 사용하여 인스턴스 그룹에서 지속적 업데이트를 수행하도록 액세스 권한을 부여할 수 없습니다.

이러한 작업을 수행할 수 있는 권한을 부여하려면 더 포괄적인 소유자, 편집자 또는 뷰어 역할을 사용하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서