IAM으로 액세스 제어

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

역할 권한

Dataflow 관리자
(roles/dataflow.admin)

Dataflow 작업을 만들고 관리하기 위한 최소한의 역할입니다.

  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • compute.machineTypes.get
  • compute.projects.get
  • compute.regions.list
  • compute.zones.list
  • dataflow.jobs.*
  • dataflow.messages.list
  • dataflow.metrics.get
  • dataflow.snapshots.*
  • recommender.dataflowDiagnosticsInsights.*
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
  • storage.objects.list

Dataflow 개발자
(roles/dataflow.developer)

Dataflow 작업을 실행 및 조작하는 데 필요한 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 프로젝트
  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • compute.projects.get
  • compute.regions.list
  • compute.zones.list
  • dataflow.jobs.*
  • dataflow.messages.list
  • dataflow.metrics.get
  • dataflow.snapshots.*
  • recommender.dataflowDiagnosticsInsights.*
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Dataflow 뷰어
(roles/dataflow.viewer)

모든 Dataflow 관련 리소스에 대한 읽기 전용 액세스 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 프로젝트
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.messages.list
  • dataflow.metrics.get
  • dataflow.snapshots.get
  • dataflow.snapshots.list
  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Dataflow 작업자
(roles/dataflow.worker)

Compute Engine 서비스 계정에서 Dataflow 파이프라인의 작업 단위를 실행하는 데 필요한 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 프로젝트
  • autoscaling.sites.readRecommendations
  • autoscaling.sites.writeMetrics
  • autoscaling.sites.writeState
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • dataflow.shuffle.*
  • dataflow.streamingWorkItems.*
  • dataflow.workItems.*
  • logging.logEntries.create
  • monitoring.timeSeries.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을 사용하여 조직 액세스 제어를 참조하세요.

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