Cloud Dataflow 액세스 제어 가이드

개요

Dataflow IAM 역할을 사용하여 프로젝트 또는 조직 내에서 사용자의 액세스 권한을 제한할 수 있습니다. 전체 Google Cloud 프로젝트에 대한 뷰어, 편집자 또는 소유자 액세스 권한을 사용자에게 부여하는 대신 Dataflow 관련 리소스만으로 액세스 권한을 제한할 수 있습니다.

이 페이지에서는 Dataflow의 IAM 역할을 사용하는 방법을 주로 설명합니다. IAM 및 IAM 기능에 대한 자세한 설명은 Google Cloud Identity and Access Management 개발자 가이드를 참조하세요.

모든 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 IAM 역할과 각 역할에 포함된 모든 권한 목록이 나열되어 있습니다. 모든 권한은 특정 리소스 유형에 적용할 수 있습니다.

역할 이름 설명 권한 최하위 리소스
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 파이프라인의 작업 단위를 실행하는 데 필요한 권한을 제공합니다.
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • logging.logEntries.create
  • storage.objects.create
  • storage.objects.get
프로젝트

Dataflow 작업자 역할(roles/dataflow.worker)은 Compute Engine 서비스 계정에서 Apache Beam 파이프라인의 작업 단위를 실행하는 데 필요한 권한 (dataflow.workItems.lease, dataflow.workItems.update, dataflow.workItems.sendMessage)을 제공합니다. 일반적으로는 이러한 계정에만 역할이 할당되어야 하고, Dataflow 서비스에서 작업을 요청하고 업데이트할 수 있는 기능만 포함해야 합니다.

Dataflow 서비스 에이전트 역할(roles/dataflow.serviceAgent)은 Dataflow 서비스 계정에 관리형 리소스에 대한 액세스 권한을 부여합니다. 이 서비스 에이전트 역할은 Dataflow 프로젝트를 만들 때 Dataflow 서비스 계정에 할당됩니다. 사용자는 이 역할을 할당할 수 없습니다.

작업 만들기

작업을 만들려면 작업을 실행하고 조사하는 데 필요한 최소한의 권한 집합이 포함된 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을 사용하여 조직 액세스 제어를 참조하세요.

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