서비스 계정

이 페이지에서는 서비스 계정과 Dataproc에서 서비스 계정을 사용하는 방법을 설명합니다.

서비스 계정이란 무엇인가요?

서비스 계정은 다른 Google Cloud API와 상호 작용을 위해 Compute Engine 인스턴스에서 실행 중인 서비스 및 애플리케이션에서 사용할 수 있는 특수한 계정입니다. 애플리케이션은 서비스 계정 사용자 인증 정보를 사용하여 여러 API 액세스를 승인하고 서비스 계정 및 가상 머신 인스턴스에 부여된 권한 내에서 작업을 수행할 수 있습니다.

생성된 Compute Engine 가상 머신은 특정 서비스 계정을 사용하도록 구성할 수 있습니다. 서비스 계정을 지정하지 않으면 기본 서비스 계정이 사용됩니다. 자세한 내용은 Compute Engine 서비스 계정 설명서를 참조하세요.

Dataproc의 서비스 계정

Dataproc 클러스터는 Compute Engine 가상 머신을 기반으로 구축됩니다. Dataproc 클러스터를 만들 때 사용자 관리 서비스 계정을 지정하면 클러스터의 Dataproc 가상 머신에 해당 서비스 계정을 사용할 수 있습니다. 서비스 계정을 지정하지 않으면 Dataproc 가상 머신에서 기본 Google 관리 Compute Engine 서비스 계정 [project-number]-compute@developer.gserviceaccount.com이 사용됩니다.

서비스 계정을 지정하는 이유는 무엇인가요?

서비스 계정에는 IAM 역할이 부여됩니다. Dataproc 클러스터를 만들 때 사용자 관리 서비스 계정을 지정하면 클라우드 리소스에 대한 세분화된 액세스 및 제어 기능을 갖춘 클러스터를 만들고 활용할 수 있습니다. 여러 Dataproc 클러스터가 있는 여러 사용자 관리 서비스 계정을 사용하면 Cloud 리소스에 대한 액세스 권한이 다른 클러스터를 사용할 수 있습니다.

서비스 계정 요구 사항 및 제한 사항

  • 서비스 계정은 클러스터를 만들 때만 설정할 수 있습니다.
  • 서비스 계정과 연결할 Dataproc 클러스터를 만들기 전에 서비스 계정을 생성해야 합니다.
  • 클러스터에 사용되는 서비스 계정은 한 번 설정되면 변경할 수 없습니다.
  • 서비스 계정에 필요에 맞는 적절한 IAM 역할이 있는지 확인합니다.
  • Dataproc과 함께 사용되는 서비스 계정에는 Dataproc/Dataproc Worker 역할이 있어야 합니다(또는 Dataproc Worker 역할에서 부여한 모든 권한이 있어야 함).
  • 서비스 계정은 클러스터가 생성될 프로젝트 내에 있어야 합니다.
  • Dataproc 클러스터에서 사용되는 Compute Engine 가상 머신에는 여전히 특정 액세스 범위가 필요합니다. 또한 액세스 범위는 적용되는 서비스로 제한됩니다. 예를 들어 Dataproc 클러스터에 Cloud Storage의 https://www.googleapis.com/auth/storage-full 범위만 부여된 경우 동일한 범위를 사용하여 BigQuery에 요청할 수 없습니다.

기본 및 최소 범위

서비스 계정 범위를 지정하지 않으면 Dataproc은 다음 기본 범위 집합을 사용합니다.

https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
커스텀 범위가 지정되면 Dataproc은 사용자 지정 범위와 다음과 같은 최소 Dataproc 필수 범위의 조합을 사용합니다.
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

서비스 계정 사용

새로운 Cloud Dataproc 클러스터를 만들 때 Dataproc API clusters.create 요청 또는 Cloud SDK gcloud 명령줄 도구를 통해 사용자 관리 서비스 계정을 지정할 수 있습니다.

gcloud 명령

gcloud clusters create 명령어를 사용하여 사용자 지정 서비스 계정과 액세스 범위로 새 클러스터를 만듭니다.
gcloud dataproc clusters create cluster-name \
    --region=region \
    --service-account=service-account-name@project-id.iam.gserviceaccount.com \
    --scopes=scope[, ...]

REST API

clusters.create API 요청의 일부로 GceClusterConfig 객체에서 serviceAccountserviceAccountScopes를 설정할 수 있습니다.

콘솔

Cloud Console에서 사용자 관리 서비스 계정을 설정하기 위한 Dataproc 지원은 이후 출시 버전에서 추가될 예정입니다.

다음 단계