Dataproc IAM 역할 및 권한

개요

Identity and Access Management(IAM)를 사용하면 프로젝트 리소스에 대한 사용자 및 그룹 액세스를 제어할 수 있습니다. 이 문서에서는 Dataproc과 관련된 IAM 권한과 해당 권한이 부여된 IAM 역할에 대해 집중적으로 다룹니다.

Dataproc 권한

서비스 계정을 포함한 사용자는 Dataproc 권한을 통해 Dataproc 클러스터, 작업, 운영, 워크플로 템플릿에서 작업을 수행할 수 있습니다. 예를 들어 dataproc.clusters.create 권한이 있는 사용자는 프로젝트에서 Dataproc 클러스터를 만들 수 있습니다. 일반적으로 권한을 부여하지 않습니다. 그 대신 하나 이상의 권한이 포함된 역할을 부여합니다.

다음 표는 Dataproc API(메서드)를 호출하는 데 필요한 권한 목록입니다. 이 표는 각 Dataproc 리소스(클러스터, 작업, 운영, 워크플로 템플릿)와 관련된 API에 따라 구성됩니다.

권한 범위: 다음 표에 나와 있는 Dataproc 권한의 범위는 포함된 Google Cloud 프로젝트(cloud-platform 범위)입니다. 서비스 계정 권한을 참조하세요.

예를 들면 다음과 같습니다.

  • dataproc.clusters.create는 포함된 프로젝트에 Dataproc 클러스터를 만들도록 허용합니다.
  • dataproc.jobs.create는 포함된 프로젝트의 Dataproc 클러스터에 Dataproc 작업을 제출하도록 허용합니다.
  • dataproc.clusters.list는 포함된 프로젝트에 Dataproc 클러스터의 세부정보를 표시하도록 허용합니다.

클러스터 메서드 필수 권한

메서드 필수 권한
projects.regions.clusters.create 1, 2 dataproc.clusters.create
projects.regions.clusters.get dataproc.clusters.get
projects.regions.clusters.list dataproc.clusters.list
projects.regions.clusters.patch 1, 2, 3 dataproc.clusters.update
projects.regions.clusters.delete 1 dataproc.clusters.delete
projects.regions.clusters.start dataproc.clusters.start
projects.regions.clusters.stop dataproc.clusters.stop
projects.regions.clusters.getIamPolicy dataproc.clusters.getIamPolicy
projects.regions.clusters.setIamPolicy dataproc.clusters.setIamPolicy

참고:

  1. Google Cloud CLI에서 상태 업데이트를 가져오려면 dataproc.operations.get 권한도 필요합니다.
  2. Google Cloud CLI에서 작업의 결과를 가져오려면 dataproc.clusters.get 권한도 필요합니다.
  3. 클러스터에서 자동 확장 정책을 사용 설정하려면 dataproc.autoscalingPolicies.use 권한도 필요합니다.

작업 메서드에 필요한 권한

메서드 필수 권한
projects.regions.jobs.submit 1, 2 dataproc.jobs.create
dataproc.clusters.use
projects.regions.jobs.get dataproc.jobs.get
projects.regions.jobs.list dataproc.jobs.list
projects.regions.jobs.cancel 1 dataproc.jobs.cancel
projects.regions.jobs.patch 1 dataproc.jobs.update
projects.regions.jobs.delete 1 dataproc.jobs.delete
projects.regions.jobs.getIamPolicy dataproc.jobs.getIamPolicy
projects.regions.jobs.setIamPolicy dataproc.jobs.setIamPolicy

참고:

  1. Google Cloud CLI에는 jobs submit, jobs wait, jobs update, jobs delete, jobs kill 명령어에 대한 dataproc.jobs.get 권한도 필요합니다.

  2. gcloud CLI에는 작업을 제출하기 위한 dataproc.clusters.get 권한도 필요합니다. Dataproc 상세 IAM을 사용하여 클러스터에서 gcloud dataproc jobs submit을 실행하는 데 필요한 사용자 권한을 설정하는 예시에 대해서는 상세 IAM을 사용하여 작업 제출을 참조하세요.

작업 메서드에 필요한 권한

메서드 필수 권한
projects.regions.operations.get dataproc.operations.get
projects.regions.operations.list dataproc.operations.list
projects.regions.operations.cancel dataproc.operations.cancel
projects.regions.operations.delete dataproc.operations.delete
projects.regions.operations.getIamPolicy dataproc.operations.getIamPolicy
projects.regions.operations.setIamPolicy dataproc.operations.setIamPolicy

워크플로 템플릿 메서드에 필요한 권한

메서드 필수 권한
projects.regions.workflowTemplates.instantiate dataproc.workflowTemplates.instantiate
projects.regions.workflowTemplates.instantiateInline dataproc.workflowTemplates.instantiateInline
projects.regions.workflowTemplates.create dataproc.workflowTemplates.create
projects.regions.workflowTemplates.get dataproc.workflowTemplates.get
projects.regions.workflowTemplates.list dataproc.workflowTemplates.list
projects.regions.workflowTemplates.update dataproc.workflowTemplates.update
projects.regions.workflowTemplates.delete dataproc.workflowTemplates.delete
projects.regions.workflowTemplates.getIamPolicy dataproc.workflowTemplates.getIamPolicy
projects.regions.workflowTemplates.setIamPolicy dataproc.workflowTemplates.setIamPolicy

참고:

  1. 워크플로 템플릿 권한은 클러스터 권한 및 작업 권한과 무관합니다. create cluster 또는 submit job 권한이 없어도 워크플로 템플릿을 만들고 인스턴스화할 수 있습니다.

  2. 워크플로 완료를 폴링하려면 Google Cloud CLI에 dataproc.operations.get 권한이 추가로 필요합니다.

  3. 실행 중인 워크플로를 취소하려면 dataproc.operations.cancel 권한이 필요합니다.

자동 확장 정책 메서드에 필요한 권한

메서드 필수 권한
projects.regions.autoscalingPolicies.create dataproc.autoscalingPolicies.create
projects.regions.autoscalingPolicies.get dataproc.autoscalingPolicies.get
projects.regions.autoscalingPolicies.list dataproc.autoscalingPolicies.list
projects.regions.autoscalingPolicies.update dataproc.autoscalingPolicies.update
projects.regions.autoscalingPolicies.delete dataproc.autoscalingPolicies.delete
projects.regions.autoscalingPolicies.getIamPolicy dataproc.autoscalingPolicies.getIamPolicy
projects.regions.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.setIamPolicy

참고:

  1. 클러스터에서 clusters.patch 메서드 요청으로 자동 확장 정책을 사용 설정하려면 dataproc.autoscalingPolicies.use 권한이 필요합니다.

노드 그룹 메서드 필수 권한

메서드 필수 권한
projects.regions.nodeGroups.create dataproc.nodeGroups.create
projects.regions.nodeGroups.get dataproc.nodeGroups.get
projects.regions.nodeGroups.resize dataproc.nodeGroups.update

Dataproc 역할

Dataproc IAM 역할은 하나 이상의 권한 모음입니다. 프로젝트의 Dataproc 리소스에서 작업을 수행할 수 있도록 사용자 또는 그룹에 역할을 부여할 수 있습니다. 예를 들어 Dataproc 뷰어 역할에는 getlist 권한이 포함되며, 이를 통해 사용자는 프로젝트의 Dataproc 클러스터, 작업, 운영을 가져와 표시할 수 있습니다.

다음 표는 Dataproc IAM 역할과 각 역할과 관련된 권한 목록입니다.

권한

(roles/dataproc.admin)

Dataproc 리소스를 관리할 수 있는 전체 권한입니다.

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.*

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.*

dataproc.jobs.*

dataproc.nodeGroups.*

dataproc.operations.*

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.*

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.editor)

머신 유형, 네트워크, 프로젝트, 영역을 포함한 Dataproc 관리에 필수적인 리소스를 보는 데 필요한 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 클러스터

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.create

dataproc.autoscalingPolicies.delete

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.update

dataproc.autoscalingPolicies.use

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.start

dataproc.clusters.stop

dataproc.clusters.update

dataproc.clusters.use

dataproc.jobs.cancel

dataproc.jobs.create

dataproc.jobs.delete

dataproc.jobs.get

dataproc.jobs.list

dataproc.jobs.update

dataproc.nodeGroups.*

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.create

dataproc.workflowTemplates.delete

dataproc.workflowTemplates.get

dataproc.workflowTemplates.instantiate

dataproc.workflowTemplates.instantiateInline

dataproc.workflowTemplates.list

dataproc.workflowTemplates.update

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.hubAgent)

Dataproc 리소스를 관리할 수 있습니다. Dataproc Hub 인스턴스를 실행하는 서비스 계정용입니다.

compute.instances.get

compute.instances.setMetadata

compute.instances.setTags

compute.zoneOperations.get

compute.zones.list

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.use

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.update

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

iam.serviceAccounts.actAs

iam.serviceAccounts.get

iam.serviceAccounts.list

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

logging.logEntries.create

logging.logEntries.list

logging.logEntries.route

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.get

storage.objects.list

(roles/dataproc.viewer)

Dataproc 리소스에 대한 읽기 전용 액세스 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 클러스터

compute.machineTypes.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.batches.analyze

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.get

dataproc.clusters.list

dataproc.jobs.get

dataproc.jobs.list

dataproc.nodeGroups.get

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.get

dataproc.sessionTemplates.list

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.workflowTemplates.get

dataproc.workflowTemplates.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.worker)

Dataproc 리소스에 대한 작업자 액세스 권한을 제공합니다. 서비스 계정용입니다.

cloudprofiler.profiles.create

cloudprofiler.profiles.update

dataproc.agents.*

dataproc.batches.sparkApplicationWrite

dataproc.sessions.sparkApplicationWrite

dataproc.tasks.*

dataprocrm.nodes.mintOAuthToken

logging.logEntries.create

logging.logEntries.route

monitoring.metricDescriptors.create

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

monitoring.timeSeries.create

storage.buckets.get

storage.folders.*

storage.managedFolders.create

storage.managedFolders.delete

storage.managedFolders.get

storage.managedFolders.list

storage.multipartUploads.*

storage.objects.*

참고:

  • compute 권한은 Google Cloud 콘솔 또는 gcloud CLI Google Cloud CLI를 사용할 때 Dataproc 클러스터를 만들어서 확인하는 데 필요하거나 권장됩니다.
  • 사용자가 파일을 업로드할 수 있도록 Storage Object Creator 역할을 부여합니다. 사용자가 작업 출력을 볼 수 있도록 Storage Object Viewer 역할을 부여합니다.
  • Google Cloud 콘솔→Dataproc→클러스터 세부정보 개요 탭에서 그래프를 보려면 monitoring.timeSeries.list 권한이 있어야 합니다.
  • Google Cloud 콘솔→Dataproc→클러스터 세부정보 VM 인스턴스 탭에서 인스턴스 상태와 마스터 인스턴스 SSH 메뉴를 보려면 compute.instances.list 권한이 있어야 합니다. Compute Engine 역할에 대한 자세한 내용은 Compute Engine→사용 가능한 IAM 역할을 참조하세요.
  • 사용자가 지정한 서비스 계정으로 클러스터를 만들려면 지정된 서비스 계정에 Dataproc Worker 역할에서 부여한 모든 권한이 있어야 하며, 여기에는 Dataproc 스테이징 및 임시 버킷에 대한 액세스 권한이 포함됩니다. 구성된 기능에 따라 추가 역할이 필요할 수 있습니다. 자세한 내용은 커스텀 VM 서비스 계정으로 클러스터 만들기를 참조하세요.

프로젝트 역할

IAM 프로젝트 역할을 사용하여 프로젝트 수준에서 권한을 설정할 수도 있습니다. 다음 표에는 IAM 프로젝트 역할과 연결된 권한이 나와 있습니다.

프로젝트 역할 권한
프로젝트 뷰어 상태를 보존하는 읽기 전용 작업에 대한 모든 프로젝트 권한(가져오기, 표시)
프로젝트 편집자 모든 프로젝트 뷰어 권한에 더해 상태를 수정하는 작업에 대한 모든 프로젝트 권한(만들기, 삭제, 업데이트, 사용, 취소, 중지, 시작)
프로젝트 소유자 모든 프로젝트 편집자 권한에 더해 프로젝트에 대한 액세스 제어를 관리하고(IamPolicy 가져오기/설정) 프로젝트 결제를 설정하는 권한

IAM 역할 및 Dataproc 작업 요약

다음 표에는 프로젝트 및 Dataproc 역할과 연결된 Dataproc 작업이 나와 있습니다.

작업 프로젝트 편집자 프로젝트 뷰어 Dataproc 관리자 Dataproc 편집자 Dataproc 뷰어
Dataproc IAM 권한 가져오기/설정 아니요 아니요 아니요 아니요
클러스터 만들기 아니요 아니요
클러스터 나열
클러스터 세부정보 가져오기 1, 2 1, 2 1, 2
클러스터 업데이트 아니요 아니요
클러스터 삭제 아니요 아니요
클러스터 시작/중지 아니요 아니요
작업 제출 아니요 3 3 아니요
작업 표시
작업 세부정보 가져오기 4 4 4
작업 취소 아니요 아니요
작업 삭제 아니요 아니요
작업 나열
운영 세부정보 가져오기
작업 삭제 아니요 아니요

참고:

  1. 사용자에게 monitoring.timeSeries.list 권한이 있는 역할이 없으면 성능 그래프를 이용할 수 없습니다.
  2. 사용자에게 compute.instances.list 권한이 있는 역할이 없으면 클러스터의 VM 목록에 마스터 인스턴스의 상태 정보 또는 SSH 링크가 포함되지 않습니다.
  3. 파일 업로드 작업의 경우 사용자에게 Dataproc 스테이징 버킷에 대한 Storage Object Creator 역할 또는 쓰기 액세스 권한이 있어야 합니다.
  4. 사용자에게 저장소 객체 뷰어 역할이 없거나 프로젝트의 스테이징 버킷에 대한 읽기 액세스 권한이 부여되지 않으면 작업 출력을 사용할 수 없습니다.

서비스 계정

Dataproc API를 호출하여 프로젝트에서 VM 인스턴스 만들기와 같은 작업을 수행하면 Dataproc이 작업을 수행하는 데 필요한 권한이 있는 서비스 계정을 사용하여 사용자를 대신해 작업을 수행합니다. 자세한 내용은 Dataproc 서비스 계정을 참조하세요.

IAM 관리

Google Cloud 콘솔, IAM API 또는 Google Cloud CLI를 사용하여 IAM 정책을 가져오고 설정할 수 있습니다.

다음 단계