Dataproc 권한 및 IAM 역할

개요

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

Dataproc 권한

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

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

클러스터 권한

메소드 필수 권한
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.getIamPolicy dataproc.clusters.getIamPolicy
projects.regions.clusters.setIamPolicy dataproc.clusters.setIamPolicy

참고

  1. gcloud 명령줄 도구에서 상태 업데이트를 가져오려면 dataproc.operations.get 권한도 필요합니다.
  2. gcloud 명령줄 도구에서 작업의 결과를 가져오려면 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. jobs submit, jobs wait, jobs update, jobs delete, jobs kill 명령어가 제대로 작동하려면 gcloud 명령줄 도구에 dataproc.jobs.get이 추가로 필요합니다.

  2. 작업을 제출하려면 gcloud 명령줄 도구에 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. 워크플로 완료를 폴링하려면 gcloud 명령줄 도구에 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 권한이 필요합니다.

Dataproc 역할

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

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

역할 ID 권한
roles/dataproc.admin dataproc.*.getIamPolicy
dataproc.*.setIamPolicy
dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.viewer dataproc.*.get
dataproc.*.list
compute.machineTypes.get
compute.regions.get
compute.regions.list
compute.zones.get
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.worker(서비스 계정 전용) dataproc.agents.*
dataproc.tasks.*
logging.logEntries.create
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create
storage.buckets.get
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete
storage.objects.getIamPolicy
storage.objects.setIamPolicy

참고

  • '*'는 '클러스터', '작업', '운영'을 의미합니다. 단, dataproc.operations.과 관련된 권한만 get, list, delete입니다.
  • 위의 목록에서 compute 권한은 Google Cloud Console 또는 Cloud SDK gcloud 명령줄 도구를 사용할 때 Dataproc 클러스터를 만들어서 확인하는 데 필요하거나 권장됩니다.
  • 사용자가 파일을 업로드할 수 있도록 Storage Object Creator 역할을 부여합니다. 사용자가 작업 출력을 볼 수 있도록 Storage Object Viewer 역할을 부여합니다. 이러한 저장소 역할 중 하나를 부여하면 사용자는 프로젝트의 모든 버킷에 액세스할 수 있습니다.
  • Google Cloud Console→Dataproc→클러스터 세부정보 개요 탭에서 그래프를 보려면 monitoring.timeSeries.list 권한이 있어야 합니다.
  • Google Cloud Console→Dataproc→클러스터 세부정보 VM 인스턴스 탭에서 인스턴스 상태와 마스터 인스턴스 SSH 메뉴를 보려면 compute.instances.list 권한이 있어야 합니다. Google Compute Engine 역할에 대한 자세한 내용은 Compute Engine→사용 가능한 IAM 역할을 참조하세요.
  • 사용자가 지정한 서비스 계정으로 클러스터를 만들려면 지정된 서비스 계정에 Dataproc Worker 역할에서 부여한 모든 권한이 있어야 합니다. 구성된 기능에 따라 추가 역할이 필요할 수 있습니다. 추가 역할 목록은 서비스 계정을 참조하세요.

프로젝트 역할

IAM 프로젝트 역할을 사용하여 프로젝트 수준에서 권한을 설정할 수도 있습니다. 다음은 IAM 프로젝트 역할과 관련된 권한을 요약해서 보여줍니다.

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

IAM 역할 및 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. 사용자에게 저장소 객체 생성자 역할이 없거나 프로젝트의 스테이징 버킷에 대한 쓰기 액세스 권한이 부여되지 않으면 업로드해야 하는 파일이 포함된 작업을 제출할 수 없습니다.
  4. 사용자에게 저장소 객체 뷰어 역할이 없거나 프로젝트의 스테이징 버킷에 대한 읽기 액세스 권한이 부여되지 않으면 작업 출력을 사용할 수 없습니다.

서비스 계정

Dataproc API를 호출하여 클러스터가 있는 프로젝트에서 VM 인스턴스 만들기와 같은 작업을 수행할 때 Dataproc이 작업을 수행하는 데 필요한 권한이 있는 서비스 계정을 사용하여 사용자를 대신해 해당 작업을 수행합니다. 아래에 나와 있는 서비스 계정에는 클러스터가 있는 프로젝트에서 Dataproc 작업을 수행하는 데 필요한 권한이 있습니다.

  • Dataproc은 먼저 service-[project-number]@dataproc-accounts.iam.gserviceaccount.com을 사용하려고 시도합니다.
  • 서비스 계정이 없는 경우 Dataproc은 Google API 서비스 계정[project-number]@cloudservices.gserviceaccount.com을 사용하도록 전환됩니다.

클러스터가 공유 VPC 네트워크를 사용하는 경우 공유 VPC 관리자가 위의 서비스 계정 둘 다에 공유 VPC 호스트 프로젝트의 네트워크 사용자 역할을 부여해야 합니다. 자세한 내용은 다음을 참조하세요.

IAM 관리

Google Cloud Console, IAM API 또는 gcloud 명령줄 도구를 사용하여 Cloud IAM 정책을 가져오고 설정할 수 있습니다.

다음 단계