Identity and Access Management(IAM)를 사용하면 프로젝트 리소스에 대한 사용자 및 그룹 액세스를 제어할 수 있습니다. 이 문서에서는 Managed Service for Apache Spark와 관련된 IAM 권한과 해당 권한을 부여하는 IAM 역할에 대해 집중적으로 다룹니다.
Managed Service for Apache Spark 권한
Managed Service for Apache Spark 권한을 사용하면 서비스 계정을 포함한 사용자가 Managed Service for Apache Spark 클러스터, 작업, 작업, 워크플로 템플릿에서 작업을 수행할 수 있습니다. 예를 들어 dataproc.clusters.create 권한이 있는 사용자는 프로젝트에서 Managed Service for Apache Spark 클러스터를 만들 수 있습니다.
일반적으로 권한을 부여하지 않습니다. 그 대신 하나 이상의 권한이 포함된 역할을 부여합니다.
다음 표는 Managed Service for Apache Spark API (메서드)를 호출하는 데 필요한 권한 목록입니다. 이 표는 각 Managed Service for Apache Spark 리소스 (클러스터, 작업, 작업, 워크플로 템플릿)와 관련된 API에 따라 구성됩니다.
권한 범위: 다음 표에 나와 있는 Managed Service for Apache Spark 권한의 범위는 포함된 Google Cloud프로젝트 (cloud-platform 범위)입니다. 서비스 계정 권한을 참조하세요.
예:
dataproc.clusters.create는 포함된 프로젝트에 Managed Service for Apache Spark 클러스터를 만들도록 허용합니다.dataproc.jobs.create는 포함된 프로젝트의 Managed Service for Apache Spark 클러스터에 Managed Service for Apache Spark 작업을 제출하도록 허용합니다.dataproc.clusters.list는 포함된 프로젝트에 Managed Service for Apache Spark 클러스터의 세부정보를 표시하도록 허용합니다.
클러스터 메서드에 필요한 권한
| 메서드 | 필수 권한 |
|---|---|
| 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권한도 필요합니다. Managed Service for Apache Spark 상세 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 |
Managed Service for Apache Spark 역할
Managed Service for Apache Spark IAM 역할은 하나 이상의 권한 모음입니다.
프로젝트의 Managed Service for Apache Spark 리소스에서 작업을 수행할 수 있도록 사용자 또는 그룹에 역할을 부여할 수 있습니다. 예를 들어 Managed Service for Apache Spark 뷰어 역할에는 get 및 list 권한이 포함되며, 이를 통해 사용자는 프로젝트의 Managed Service for Apache Spark 클러스터, 작업, 운영을 가져와 표시할 수 있습니다.
다음 표에는 Managed Service for Apache Spark 클러스터를 만들고 관리하는 데 필요한 권한이 포함된 역할이 나열되어 있습니다.
| 역할 부여 대상 | 역할 |
|---|---|
| 사용자 | 사용자에게 다음 역할을 부여합니다.
|
| 서비스 계정 | Managed Service for Apache Spark VM 서비스 계정에 Dataproc 작업자 역할을 부여합니다. |
다음에 유의하세요.
Cloud Storage, BigQuery, Cloud Logging 및 기타 Google Cloud 리소스에서 데이터를 읽고 쓰는 등의 다른 작업에 필요한 권한이 포함된 추가 사전 정의 역할 또는 맞춤 역할을 Managed Service for Apache Spark VM 서비스 계정에 부여해야 할 수 있습니다.
일부 프로젝트에서는 Managed Service for Apache Spark VM 서비스 계정에 Managed Service for Apache Spark 작업자 역할 권한과 Managed Service for Apache Spark 데이터 영역 작업에 필요하지 않은 추가 권한을 포함하는 프로젝트 편집자 역할이 자동으로 부여되었을 수 있습니다. 최소 권한의 보안 권장사항 원칙을 준수하려면 편집자 역할을 Managed Service for Apache Spark 작업자 역할로 대체합니다 (VM 서비스 계정 역할 보기 참고).
역할을 부여해야 하나요?
조직 정책에 따라 필수 역할이 이미 부여되었을 수 있습니다.
사용자에게 부여된 역할 확인
사용자에게 역할이 부여되었는지 확인하려면 프로젝트, 폴더, 조직에 대한 액세스 관리 > 현재 액세스 권한 보기의 안내를 따르세요.
서비스 계정에 부여된 역할 확인
서비스 계정에 역할이 부여되었는지 확인하려면 IAM 서비스 계정 역할 보기 및 관리를 참고하세요.
서비스 계정에 부여된 역할 확인
사용자에게 서비스 계정에 대한 역할이 부여되었는지 확인하려면 서비스 계정에 대한 액세스 관리 > 현재 액세스 보기의 안내를 따르세요.
Managed Service for Apache Spark 역할 및 권한 조회
다음 섹션을 사용하여 Managed Service for Apache Spark 역할 및 권한을 조회할 수 있습니다.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
참고:
compute권한은 Google Cloud 콘솔 또는 gcloud CLI Google Cloud CLI를 사용할 때 Managed Service for Apache Spark 클러스터를 만들고 확인하는 데 필요하거나 권장됩니다.- 사용자가 파일을 업로드할 수 있도록
Storage Object Creator역할을 부여합니다. 사용자가 작업 출력을 볼 수 있도록Storage Object Viewer역할을 부여합니다. - Google Cloud 콘솔→Managed Service for Apache Spark→클러스터 세부정보 개요 탭에서 그래프를 보려면
monitoring.timeSeries.list권한이 있어야 합니다. - Google Cloud 콘솔→Managed Service for Apache Spark→클러스터 세부정보 VM 인스턴스 탭에서 인스턴스 상태와 마스터 인스턴스 SSH 메뉴를 보려면
compute.instances.list권한이 있어야 합니다. Compute Engine 역할에 대한 자세한 내용은 Compute Engine→사용 가능한 IAM 역할을 참조하세요. - 사용자가 지정한 서비스 계정으로 클러스터를 만들려면 지정된 서비스 계정에
Managed Service for Apache Spark Worker역할에서 부여한 모든 권한이 있어야 하며, 여기에는 Managed Service for Apache Spark 스테이징 및 임시 버킷에 대한 액세스 권한이 포함됩니다. 구성된 기능에 따라 추가 역할이 필요할 수 있습니다. 자세한 내용은 커스텀 VM 서비스 계정으로 클러스터 만들기를 참조하세요.
프로젝트 역할
IAM 프로젝트 역할을 사용하여 프로젝트 수준에서 권한을 설정할 수도 있습니다. 다음 표에는 IAM 프로젝트 역할과 연결된 권한이 나와 있습니다.
| 프로젝트 역할 | 권한 |
|---|---|
| 프로젝트 뷰어 | 상태를 보존하는 읽기 전용 작업에 대한 모든 프로젝트 권한(가져오기, 표시) |
| 프로젝트 편집자 | 모든 프로젝트 뷰어 권한에 더해 상태를 수정하는 작업에 대한 모든 프로젝트 권한(만들기, 삭제, 업데이트, 사용, 취소, 중지, 시작) |
| 프로젝트 소유자 | 프로젝트에 대한 액세스 제어를 관리하고(IamPolicy 가져오기/설정) 프로젝트 결제를 설정할 수 있는 권한이 추가된 모든 프로젝트 편집자 권한 |
IAM 역할 및 Managed Service for Apache Spark 작업 요약
다음 표에는 프로젝트 및 Managed Service for Apache Spark 역할과 연결된 Managed Service for Apache Spark 작업이 나와 있습니다.
| 작업 | 프로젝트 편집자 | 프로젝트 뷰어 | Managed Service for Apache Spark 관리자 | Managed Service for Apache Spark 편집기 | Managed Service for Apache Spark 뷰어 |
|---|---|---|---|---|---|
| Managed Service for Apache Spark IAM 권한 가져오기/설정 | 아니요 | 아니요 | 예 | 아니요 | 아니요 |
| 클러스터 만들기 | 예 | 아니요 | 예 | 예 | 아니요 |
| 클러스터 나열 | 예 | 예 | 예 | 예 | 예 |
| 클러스터 세부정보 가져오기 | 예 | 예 | 예 1, 2 | 예 1, 2 | 예 1, 2 |
| 클러스터 업데이트 | 예 | 아니요 | 예 | 예 | 아니요 |
| 클러스터 삭제 | 예 | 아니요 | 예 | 예 | 아니요 |
| 클러스터 시작/중지 | 예 | 아니요 | 예 | 예 | 아니요 |
| 작업 제출 | 예 | 아니요 | 예 3 | 예 3 | 아니요 |
| 작업 표시 | 예 | 예 | 예 | 예 | 예 |
| 작업 세부정보 가져오기 | 예 | 예 | 예 4 | 예 4 | 예 4 |
| 작업 취소 | 예 | 아니요 | 예 | 예 | 아니요 |
| 작업 삭제 | 예 | 아니요 | 예 | 예 | 아니요 |
| 작업 나열 | 예 | 예 | 예 | 예 | 예 |
| 운영 세부정보 가져오기 | 예 | 예 | 예 | 예 | 예 |
| 작업 삭제 | 예 | 아니요 | 예 | 예 | 아니요 |
참고:
- 사용자에게
monitoring.timeSeries.list권한이 있는 역할이 없으면 성능 그래프를 이용할 수 없습니다. - 사용자에게
compute.instances.list권한이 있는 역할이 없으면 클러스터의 VM 목록에 마스터 인스턴스의 상태 정보 또는 SSH 링크가 포함되지 않습니다. - 파일 업로드 작업의 경우 사용자에게 Managed Service for Apache Spark 스테이징 버킷에 대한
Storage Object Creator역할 또는 쓰기 액세스 권한이 있어야 합니다. - 사용자에게 저장소 객체 뷰어 역할이 없거나 프로젝트의 스테이징 버킷에 대한 읽기 액세스 권한이 부여되지 않으면 작업 출력을 사용할 수 없습니다.
Managed Service for Apache Spark VM 액세스 범위
VM 액세스 범위와 IAM 역할은 함께 작동하여 VM 액세스를 Google CloudAPI로 제한합니다. 예를 들어 클러스터 VM에 https://www.googleapis.com/auth/storage-full 범위만 부여된 경우, 클러스터 VM에서 실행되는 애플리케이션은 Cloud Storage API를 호출할 수 있지만 광범위한 권한이 있는 BigQuery 역할이 부여된 VM 서비스 계정으로 실행 중인 경우에도 BigQuery에 요청할 수는 없습니다.
권장사항은 광범위한 cloud-platform 범위(https://www.googleapis.com/auth/cloud-platform)를 VM에 부여한 후 특정 IAM 역할을 VM 서비스 계정에 부여하여 VM 액세스를 제한하는 것입니다 (범위 권장사항 참고).
기본 Managed Service for Apache Spark VM 범위 클러스터를 만들 때 범위를 지정하지 않으면 (gcloud dataproc cluster create --scopes 참조) Managed Service for Apache Spark VM의 기본 범위 집합은 다음과 같습니다.
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
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
클러스터를 만들 때 범위를 지정하면 지정한 범위(및)와 (지정하지 않더라도) 다음과 같은 최소 필수 범위 집합이 클러스터 VM에 포함됩니다.
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
IAM 허용 정책 관리
허용 정책을 사용하여 주 구성원에게 IAM 역할을 부여합니다. Google Cloud 콘솔, IAM API 또는 Google Cloud CLI를 사용하여 허용 정책을 가져오고 설정할 수 있습니다.
- Google Cloud 콘솔의 경우 Google Cloud 콘솔을 사용하여 액세스 제어를 참조하세요.
- API는 API를 사용하여 액세스 제어를 참조하세요.
- Google Cloud CLI의 경우 Google Cloud CLI를 사용한 액세스 제어를 참고하세요.
다음 단계
- Managed Service for Apache Spark 주 구성원 및 역할 알아보기
- Managed Service for Apache Spark 상세 IAM 자세히 알아보기
- IAM 자세히 알아보기
- Managed Service for Apache Spark의 서비스 계정에 대해 알아보기