프로젝트 또는 조직 내 사용자의 액세스를 제한하려면 Dataflow의 ID 및 액세스 관리(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을 사용하여 조직 액세스 제어를 참조하세요.
프로젝트 수준 역할을 설정하려면 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.