Identity and Access Management (IAM)를 사용하면 프로젝트 리소스에 대한 액세스를 제어할 수 있습니다. 이 문서에서는 Apache Spark용 서버리스와 관련된 IAM 권한과 해당 권한이 부여된 IAM 역할 에 대해 집중적으로 다룹니다.
Apache Spark용 서버리스의 Dataproc 권한
Dataproc 권한을 사용하면 사용자와
서비스 계정,
Apache Spark용 서버리스
리소스에서 작업을 수행할 수 있습니다. 예를 들어 dataproc.batches.create
권한을 사용하면 프로젝트에서 일괄 작업 워크로드를 만들 수 있습니다.
사용자에게 권한을 직접 부여하는 대신 하나 이상의 권한이 번들로 포함된 IAM 역할을 부여합니다. 권한 목록이 포함된 사전 정의된 역할을 부여하거나 커스텀 역할에 포함할 하나 이상의 권한이 포함된 커스텀 역할을 만들고 부여할 수 있습니다.
다음 표에는 Apache Spark용 서버리스 리소스를 만들거나 액세스하는 Dataproc API (메서드)를 호출하는 데 필요한 기본 권한이 나와 있습니다. 표는 각
Apache Spark용 서버리스 리소스와 연결된 API에 따라 구성됩니다. 여기에는 batches, sessions,
sessionTemplates, operations가 포함됩니다.
예:
dataproc.batches.create는 포함된 프로젝트에서 배치를 만들도록 허용합니다.dataproc.sessions.create는 포함된 프로젝트에서 대화형 세션을 만들도록 허용합니다.
배치 권한
| 메서드 | 필수 권한 |
|---|---|
| projects.locations.batches.create | dataproc.batches.create 1 |
| projects.locations.batches.delete | dataproc.batches.delete |
| projects.locations.batches.get | dataproc.batches.get |
| projects.locations.batches.list | dataproc.batches.list |
1 dataproc.batches.create는 또한 dataproc.batches.get 및
dataproc.operations.get 권한이 gcloud 명령줄 도구에서 상태 업데이트를 가져오도록 허용하기 위해 필요합니다.
세션 권한
| 메서드 | 필수 권한 |
|---|---|
| projects.locations.sessions.create | dataproc.sessions.create 1 |
| projects.locations.sessions.delete | dataproc.sessions.delete |
| projects.locations.sessions.get | dataproc.sessions.get |
| projects.locations.sessions.list | dataproc.sessions.list |
| projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 dataproc.sessions.create에는 또한 dataproc.sessions.get 및
dataproc.operations.get 권한이 필요하여 gcloud 명령줄 도구에서 상태 업데이트를 가져올 수 있습니다.
세션 템플릿 권한
| 메서드 | 필수 권한 |
|---|---|
| projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
| projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
| projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
| projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
| projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 dataproc.sessionTemplates.create는 또한 dataproc.sessionTemplates.get 및
dataproc.operations.get 권한이 필요합니다. 이를 통해 gcloud 명령줄 도구에서 상태 업데이트를 가져올 수 있습니다.
작업 권한
| 메서드 | 필수 권한 |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel 1 | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 배치 작업을 취소하려면 dataproc.operations.cancel 권한도 필요합니다.dataproc.batches.cancel
Apache Spark용 서버리스 3.0+ 런타임 권한
다음 권한은 Apache Spark용 서버리스 3.0 및
이상 런타임에 적용됩니다.
워크로드 권한
| 메서드 | 필수 권한 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
NodePools 권한
| 메서드 | 필수 권한 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
노드 권한
| 메서드 | 필수 권한 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
작업 권한
| 메서드 | 필수 권한 |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Apache Spark용 서버리스 역할 요구사항
다음 표에는 일괄 작업 워크로드 및 세션을 관리하는 데 필요한 권한이 포함된 역할이 나와 있습니다. 요구사항은 일괄 작업 또는 세션 런타임 버전 과 일괄 작업 또는 세션이 서비스 계정 또는 최종 사용자 사용자 인증 정보 (EUC)로 실행되는지 여부에 따라 다를 수 있습니다.
| 런타임 버전 | IAM 역할 |
|---|---|
pre-3.0 |
사용자에게 다음 역할을 부여합니다:
|
3.0+ |
사용자에게 다음 역할을 부여합니다:
|
참고:
3.0+런타임 및 최종 사용자 사용자 인증 정보 (3.0+ 기본값)로 일괄 작업 워크로드 또는 대화형 세션을 만들 때 데이터 영역 시스템 작업은 Dataproc 리소스 관리자 노드 서비스 에이전트에서 실행됩니다. 자세한 내용은 3.0+ 런타임 서비스 에이전트 서비스 계정을 참조하세요.이전 버전과의 호환성을 위해 레거시 Dataproc 편집자 및 Dataproc 뷰어 역할 대신 Dataproc 서버리스 편집자 및 Dataproc 서버리스 뷰어 역할을
3.0+런타임으로 부여할 수 있습니다. 또한 Dataproc 서버리스 노드 역할 대신 Dataproc 작업자 역할을 부여할 수 있습니다.서비스 계정에 프로젝트 편집자 역할이 부여된 경우 **Dataproc 작업자** 역할에 포함된 권한이 포함됩니다.
자세한 내용은 Apache Spark용 서버리스 서비스 계정을 참조하세요.
역할을 부여해야 하나요?
조직 정책에 따라 필요한 역할이 이미 부여되었을 수 있습니다.
사용자에게 부여된 역할 확인
사용자에게 역할이 부여되었는지 확인하려면 프로젝트, 폴더, 조직에 대한 액세스 관리 > 현재 액세스 보기에 있는 안내를 따르세요.
서비스 계정에 부여된 역할 확인
서비스 계정에 역할이 부여되었는지 확인하려면 IAM 서비스 계정 역할 보기 및 관리를 참조하세요.
최소 권한의 보안 권장사항 원칙을 준수하려면 서비스 계정 편집자 역할을 Dataproc 작업자 역할로 대체하거나 런타임 버전3.0+의 경우 Dataproc 서버리스 노드 역할로 대체합니다.
서비스 계정에 부여된 역할 확인
사용자에게 서비스 계정에 대한 역할이 부여되었는지 확인하려면 다음 안내를 따르세요. 서비스 계정에 대한 액세스 관리 > 현재 액세스 보기
Dataproc 역할 및 권한 조회
다음 섹션을 사용하여 Dataproc 역할 및 권한을 조회할 수 있습니다.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. 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 Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
프로젝트 역할
IAM 프로젝트 역할을 사용하여 프로젝트 수준에서 권한을 설정할 수도 있습니다. 다음 표에는 IAM 프로젝트 역할과 연결된 권한이 요약되어 있습니다.
| 프로젝트 역할 | 권한 |
|---|---|
| 프로젝트 뷰어 | 상태를 보존하는 읽기 전용 작업에 대한 모든 프로젝트 권한(가져오기, 표시) |
| 프로젝트 편집자 | 모든 프로젝트 뷰어 권한에 더해 상태를 수정하는 작업에 대한 모든 프로젝트 권한(만들기, 삭제, 업데이트, 사용, 취소, 중지, 시작) |
| 프로젝트 소유자 | 모든 프로젝트 편집자 권한에 더해 프로젝트에 대한 액세스 제어를 관리하고 (IamPolicy 가져오기/설정) 프로젝트 결제를 설정하는 권한 |
다음 단계
- 프로젝트, 폴더, 조직에 대한 액세스 관리 방법 알아보기