Dataproc 주 구성원 및 역할

Dataproc 서비스를 사용하여 클러스터를 만들고 클러스터에서 작업을 실행하면 Dataproc 서비스는 프로젝트에서 해당 작업을 수행하는 데 필요한 Google Cloud 리소스에 액세스하고 이를 사용하기 위한 필수 Dataproc 권한 및 IAM 역할을 설정합니다. 하지만 다른 프로젝트의 데이터에 액세스하는 경우처럼 프로젝트 간 작업을 수행하는 경우에는 사용자가 프로젝트 간 리소스에 액세스하는 데 필요한 역할과 권한을 설정해야 합니다.

사용자가 프로젝트 간 작업을 성공적으로 수행할 수 있도록 이 문서에는 Dataproc 서비스를 사용하는 다양한 주 구성원과 함께, 각각의 주 구성원이 Google Cloud 리소스에 액세스하고 이를 사용하는 데 필요한 역할 및 관련 권한이 나와 있습니다.

Dataproc API 사용자(최종 사용자 ID)

예시: username@example.com

Dataproc 서비스를 호출하는 최종 사용자입니다. 최종 사용자는 일반적으로 개인이지만 Dataproc이 API 클라이언트나 다른 Google Cloud 서비스(Compute Engine, Cloud Functions 또는 Cloud Composer 등)를 통해 호출되는 경우에는 서비스 계정이 될 수도 있습니다.

관련 역할 및 권한:

알아두면 좋은 정보:

  • Dataproc API가 제출한 작업이 루트로 실행됨
  • Dataproc 클러스터는 클러스터를 만들 때 --metadata=block-project-ssh-keys=true를 설정하여 명시적으로 차단하지 않는 한 프로젝트 전체의 Compute Engine SSH 메타데이터를 상속합니다(클러스터 메타데이터 참조).
  • gcloud compute ssh를 통해 Dataproc 클러스터에 연결하여 명령줄을 통해 작업을 제출하면 해당 작업은 로그인된 사용자 이름으로 실행되지만 이 인증이 VM 내에 기본으로 강제 적용되지 않습니다.
  • HDFS 사용자 디렉터리는 프로젝트 수준 SSH 사용자별로 생성됩니다. 이러한 HDFS 디렉터리는 클러스터 배포 시 생성되며 새로운(배포 후) SSH 사용자에게는 기존 클러스터에 HDFS 디렉터리가 제공되지 않습니다.

Dataproc 서비스 에이전트(제어 영역 ID)

예: service-project-number@dataproc-accounts.iam.gserviceaccount.com

Dataproc은 Dataproc 사용자의 Google Cloud 프로젝트에 Dataproc 서비스 에이전트 역할을 하는 이 서비스 계정을 만듭니다. 이 서비스 계정은 클러스터를 만들 때 사용자가 지정하는 서비스 계정으로 바꿀 수 없습니다. 다른 프로젝트의 공유 VPC 네트워크를 사용하는 클러스터를 만드는 경우가 아니면 이 서비스 계정을 구성할 필요가 없습니다.

이 서비스 계정은 다음과 같이 다양한 시스템 작업을 수행하는 데 사용됩니다.

  • 이미지, 방화벽, Dataproc 초기화 작업, Cloud Storage 버킷과 같은 리소스의 구성을 확인하기 위한 가져오기 및 나열 작업
  • Dataproc 스테이징 버킷의 자동 생성(사용자가 스테이징 버킷을 지정하지 않은 경우)
  • 스테이징 버킷에 클러스터 구성 메타데이터 쓰기
  • VM 인스턴스, 인스턴스 그룹 및 인스턴스 템플릿을 비롯한 Compute Engine 리소스 생성

관련 오류: '서비스 계정에 리소스에 대한 읽기 또는 나열 액세스 권한이 없습니다.'

관련 역할 및 권한:

  • 역할: Dataproc 서비스 에이전트

Dataproc VM 서비스 계정(데이터 영역 ID)

예: project-number-compute@developer.gserviceaccount.com

Dataproc VM은 이 서비스 계정으로 실행됩니다. 사용자 작업에는 이 서비스 계정의 권한이 부여되며, 사용자의 애플리케이션 코드는 Dataproc 작업자 VM에서 이 서비스 계정으로 실행됩니다.

Dataproc clusters.create API 요청에 선택사항인 --service-account 플래그를 gcloud dataproc clusters create 명령어 또는 GceClusterConfig.serviceAccount 필드와 함께 사용하여 사용자 관리형 서비스 계정을 지정할 수 있습니다. 클러스터를 만들 때 사용자 관리형 서비스 계정을 지정하지 않으면 위의 예시에 나온 Compute Engine 기본 서비스 계정이 사용됩니다.

VM 서비스 계정에는 다음과 같은 권한이 있어야 합니다.

  • Dataproc 제어 영역과 통신
  • Dataproc 스테이징 버킷 읽기 및 쓰기

작업 요구사항에 따라 VM 서비스 계정에 다음과 같은 권한도 필요할 수 있습니다.

  • Cloud Storage, BigQuery, Cloud Logging, 기타 Google Cloud 리소스 읽기 및 쓰기

관련 역할 및 권한:

추가 정보