Dataflow 액세스 제어

프로젝트 또는 조직 내 사용자의 액세스를 제한하려면 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역할 페이지를 참조하세요.

역할 이름 설명 권한 최하위 리소스
roles/dataflow.admin Dataflow 관리자 Dataflow 작업을 만들고 관리하기 위한 최소한의 역할입니다.
  • compute.machineTypes.get
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
  • storage.objects.list
roles/dataflow.developer Dataflow 개발자 Dataflow 작업을 실행 및 조작하는 데 필요한 권한을 제공합니다.
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
프로젝트
roles/dataflow.viewer Dataflow 뷰어 모든 Dataflow 관련 리소스에 대한 읽기 전용 액세스 권한을 제공합니다.
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.messages.*
  • dataflow.metrics.*
  • dataflow.snapshots.get
  • dataflow.snapshots.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
프로젝트
roles/dataflow.worker Dataflow 작업자 Compute Engine 서비스 계정에서 Dataflow 파이프라인의 작업 단위를 실행하는 데 필요한 권한을 제공합니다.
  • autoscaling.sites.readRecommendations
  • autoscaling.sites.writeMetrics
  • autoscaling.sites.writeState
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • logging.logEntries.create
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
프로젝트

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 역할이 필요합니다.

또는 다음 권한이 필요합니다.

역할 할당의 예시

다양한 Dataflow 역할의 유용성을 파악하려면 다음 분석을 살펴보세요.

  • 작업을 만들고 검사하는 개발자에게는 roles/dataflow.admin 역할이 필요합니다.
  • 권한을 더 정교하게 관리하려면 Dataflow 작업과 상호작용하는 개발자에게 roles/dataflow.developer 역할이 필요합니다.
    • 필수 파일을 스테이징하려면 roles/storage.objectAdmin 또는 관련 역할이 필요합니다.
    • 디버깅 및 할당량을 확인하려면 프로젝트 roles/compute.viewer 역할이 필요합니다.
    • 다른 역할 할당이 없으면 개발자는 이 역할을 통해 Dataflow 작업을 만들고 취소할 수 있지만 개별 VM과 상호작용하거나 다른 Cloud 서비스에 액세스할 수 없습니다.
  • Dataflow 서비스의 데이터를 처리하려면 작업자 서비스 계정roles/dataflow.worker 역할이 필요합니다. 작업 데이터에 액세스하려면 서비스 계정에 다른 역할(예: roles/storage.objectAdmin)이 필요합니다.

Dataflow 역할 할당

현재 조직과 프로젝트에만 Dataflow 역할을 설정할 수 있습니다.

조직 수준에서 역할을 관리하려면 IAM을 사용하여 조직 액세스 제어를 참조하세요.

프로젝트 수준 역할을 설정하려면 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.