프로젝트 또는 조직 내 사용자의 액세스를 제한하려면 Dataflow의 Identity and Access Management(IAM) 역할을 사용하면 됩니다. 사용자에게 전체 Google Cloud 프로젝트에 대한 뷰어, 편집자 또는 소유자 역할을 부여하는 대신 Dataflow 관련 리소스에 대한 액세스 권한을 제어할 수 있습니다.
이 페이지에서는 Dataflow의 IAM 역할을 사용하는 방법을 주로 설명합니다. IAM과 그 기능에 대한 자세한 설명은 IAM 문서를 참조하세요.
모든 Dataflow 메서드는 호출자에게 필요 권한을 요구합니다. Dataflow가 지원하는 권한과 역할 목록은 다음 섹션을 참조하세요.
권한 및 역할
이 섹션에는 Dataflow IAM이 지원하는 권한과 역할이 요약되어 있습니다.
필수 권한
다음 표에는 호출자가 각 메서드를 호출하는 데 필요한 권한이 있습니다.
메서드 | 필수 권한 |
---|---|
dataflow.jobs.create |
dataflow.jobs.create |
dataflow.jobs.cancel |
dataflow.jobs.cancel |
dataflow.jobs.updateContents |
dataflow.jobs.updateContents |
dataflow.jobs.list |
dataflow.jobs.list |
dataflow.jobs.get |
dataflow.jobs.get |
dataflow.messages.list |
dataflow.messages.list |
dataflow.metrics.get |
dataflow.metrics.get |
dataflow.jobs.snapshot |
dataflow.jobs.snapshot |
역할
다음 표에는 Dataflow IAM 역할과 각 역할에 포함된 Dataflow 관련 권한 목록이 나열되어 있습니다. 모든 권한은 특정 리소스 유형에 적용할 수 있습니다. 권한 목록은 Google Cloud Console의 역할 페이지를 참조하세요.
Role | Permissions |
---|---|
Dataflow Admin( Minimal role for creating and managing dataflow jobs. |
|
Dataflow Developer( Provides the permissions necessary to execute and manipulate Dataflow jobs. Lowest-level resources where you can grant this role:
|
|
Dataflow Viewer( Provides read-only access to all Dataflow-related resources. Lowest-level resources where you can grant this role:
|
|
Dataflow Worker( Provides the permissions necessary for a Compute Engine service account to execute work units for a Dataflow pipeline. Lowest-level resources where you can grant this role:
|
|
Dataflow 작업자 역할(roles/dataflow.worker
)은 Compute Engine 서비스 계정에서 Apache Beam 파이프라인의 작업 단위를 실행하는 데 필요한 권한을 제공합니다. Dataflow 작업자 역할을 Dataflow 서비스에서 작업을 요청하고 업데이트할 수 있는 서비스 계정에 할당해야 합니다.
Dataflow 서비스 에이전트 역할(roles/dataflow.serviceAgent
)은 Dataflow 서비스 계정에서만 사용됩니다. Dataflow 작업을 실행하도록 Google Cloud 프로젝트의 관리형 리소스에 액세스할 수 있는 권한을 서비스 계정에 제공합니다. Google Cloud Console의 API 페이지에서 프로젝트에 Dataflow API를 사용 설정하면 서비스 계정에 자동으로 할당됩니다.
작업 만들기
작업을 만들려면 작업을 실행하고 조사하는 데 필요한 최소한의 권한 집합이 포함된 roles/dataflow.admin
역할이 필요합니다.
또는 다음 권한이 필요합니다.
- 작업 자체를 인스턴스화할 수 있는
roles/dataflow.developer
역할 - 머신 유형 정보에 액세스하고 다른 설정을 볼 수 있는
roles/compute.viewer
역할 - Cloud Storage에서 파일 스테이징 권한을 제공할 수 있는
roles/storage.objectAdmin
역할
역할 할당의 예시
다양한 Dataflow 역할의 유용성을 파악하려면 다음 분석을 살펴보세요.
- 작업을 만들고 검사하는 개발자에게는
roles/iam.serviceAccountUser
역할이 필요합니다. - 권한을 더 정교하게 관리하려면 Dataflow 작업과 상호작용하는 개발자에게
roles/dataflow.developer
역할이 필요합니다.- 필수 파일을 스테이징하려면
roles/storage.objectAdmin
또는 관련 역할이 필요합니다. - 디버깅 및 할당량을 확인하려면 프로젝트
roles/compute.viewer
역할이 필요합니다. - 다른 역할 할당이 없으면 개발자는 이 역할을 통해 Dataflow 작업을 만들고 취소할 수 있지만 개별 VM과 상호작용하거나 다른 Cloud 서비스에 액세스할 수 없습니다.
- 필수 파일을 스테이징하려면
- Dataflow 서비스의 데이터를 처리하려면 작업자 서비스 계정에
roles/dataflow.worker
및roles/dataflow.admin
역할이 필요합니다.- 작업 데이터에 액세스하려면 작업자 서비스 계정에 다른 역할(예:
roles/storage.objectAdmin
)이 필요합니다. - BigQuery 테이블에 쓰려면 작업자 서비스 계정에
roles/bigquery.dataEditor
역할이 필요합니다. - Pub/Sub 주제 또는 구독을 읽으려면 작업자 서비스 계정에
roles/pubsub.editor
역할이 필요합니다.
- 작업 데이터에 액세스하려면 작업자 서비스 계정에 다른 역할(예:
- 공유 VPC를 사용하는 경우 공유 VPC 서브네트워크를 Dataflow 서비스 계정과 공유해야 하고 지정된 서브넷에 Compute Network 사용자 역할을 할당해야 합니다.
- 공유 VPC 서브네트워크가 Dataflow 서비스 계정과 공유되었는지 확인하려면 Google Cloud 콘솔에서 공유 VPC 페이지로 이동하고 서브넷을 검색합니다. 공유 대상 열에서 VPC 서브네트워크가 Dataflow 서비스 계정과 공유되었는지 여부를 확인할 수 있습니다. 자세한 내용은 공유 VPC의 서브네트워크 매개변수 지정 가이드라인을 참조하세요.
- 호스트 프로젝트의 Compute Engine 서비스 계정, 서비스 프로젝트의 Dataflow 작업자 서비스 계정, 작업 제출에 사용되는 서비스 계정에 다음 역할이 있어야 합니다.
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
Dataflow 역할 할당
현재 조직과 프로젝트에만 Dataflow 역할을 설정할 수 있습니다.
조직 수준에서 역할을 관리하려면 IAM을 사용하여 조직 액세스 제어를 참조하세요.
프로젝트 수준 역할을 설정하려면 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.