개요
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 |
참고:
- Google Cloud CLI에서 상태 업데이트를 가져오려면
dataproc.operations.get
권한도 필요합니다. - Google Cloud CLI에서 작업의 결과를 가져오려면
dataproc.clusters.get
권한도 필요합니다. - 클러스터에서 자동 확장 정책을 사용 설정하려면
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 |
참고:
Google Cloud CLI에는
jobs submit
,jobs wait
,jobs update
,jobs delete
,jobs kill
명령어에 대한dataproc.jobs.get
권한도 필요합니다.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 |
참고:
워크플로 템플릿 권한은 클러스터 권한 및 작업 권한과 무관합니다.
create cluster
또는submit job
권한이 없어도 워크플로 템플릿을 만들고 인스턴스화할 수 있습니다.워크플로 완료를 폴링하려면 Google Cloud CLI에
dataproc.operations.get
권한이 추가로 필요합니다.실행 중인 워크플로를 취소하려면
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 |
참고:
- 클러스터에서
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 뷰어 역할에는 get
및 list
권한이 포함되며, 이를 통해 사용자는 프로젝트의 Dataproc 클러스터, 작업, 운영을 가져와 표시할 수 있습니다.
다음 표는 Dataproc IAM 역할과 각 역할과 관련된 권한 목록입니다.
Dataproc 역할 |
권한 |
Dataproc 관리자( Dataproc 리소스를 관리할 수 있는 전체 권한입니다. |
|
Dataproc 편집자( 머신 유형, 네트워크, 프로젝트, 영역을 포함한 Dataproc 관리에 필수적인 리소스를 보는 데 필요한 권한을 제공합니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
Dataproc Hub 에이전트( Dataproc 리소스를 관리할 수 있습니다. Dataproc Hub 인스턴스를 실행하는 서비스 계정용입니다. |
|
Dataproc 뷰어( Dataproc 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
Dataproc 작업자( Dataproc 리소스에 대한 작업자 액세스 권한을 제공합니다. 서비스 계정용입니다. |
|
참고:
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 |
작업 취소 | 예 | 아니요 | 예 | 예 | 아니요 |
작업 삭제 | 예 | 아니요 | 예 | 예 | 아니요 |
작업 나열 | 예 | 예 | 예 | 예 | 예 |
운영 세부정보 가져오기 | 예 | 예 | 예 | 예 | 예 |
작업 삭제 | 예 | 아니요 | 예 | 예 | 아니요 |
참고:
- 사용자에게
monitoring.timeSeries.list
권한이 있는 역할이 없으면 성능 그래프를 이용할 수 없습니다. - 사용자에게
compute.instances.list
권한이 있는 역할이 없으면 클러스터의 VM 목록에 마스터 인스턴스의 상태 정보 또는 SSH 링크가 포함되지 않습니다. - 파일 업로드 작업의 경우 사용자에게 Dataproc 스테이징 버킷에 대한
Storage Object Creator
역할 또는 쓰기 액세스 권한이 있어야 합니다. - 사용자에게 저장소 객체 뷰어 역할이 없거나 프로젝트의 스테이징 버킷에 대한 읽기 액세스 권한이 부여되지 않으면 작업 출력을 사용할 수 없습니다.
서비스 계정
Dataproc API를 호출하여 프로젝트에서 VM 인스턴스 만들기와 같은 작업을 수행하면 Dataproc이 작업을 수행하는 데 필요한 권한이 있는 서비스 계정을 사용하여 사용자를 대신해 작업을 수행합니다. 자세한 내용은 Dataproc 서비스 계정을 참조하세요.
IAM 관리
Google Cloud 콘솔, IAM API 또는 Google Cloud CLI를 사용하여 IAM 정책을 가져오고 설정할 수 있습니다.
- Google Cloud 콘솔의 경우 Google Cloud Console을 사용하여 액세스 제어를 참조하세요.
- API는 API를 사용하여 액세스 제어를 참조하세요.
- Google Cloud CLI의 경우 Google Cloud CLI를 사용하여 액세스 제어를 참조하세요.