IAM으로 액세스 제어

프로젝트 또는 조직 내 사용자의 액세스를 제한하려면 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

(roles/dataflow.admin)

Minimal role for creating and managing dataflow jobs.

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.operations.*

  • cloudbuild.operations.get
  • cloudbuild.operations.list

compute.machineTypes.get

compute.projects.get

compute.regions.list

compute.zones.list

dataflow.jobs.*

  • dataflow.jobs.cancel
  • dataflow.jobs.create
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.jobs.snapshot
  • dataflow.jobs.updateContents

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.*

  • dataflow.snapshots.delete
  • dataflow.snapshots.get
  • dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.*

  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • recommender.dataflowDiagnosticsInsights.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.create

storage.objects.get

storage.objects.list

(roles/dataflow.developer)

Provides the permissions necessary to execute and manipulate Dataflow jobs.

Lowest-level resources where you can grant this role:

  • Project

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.operations.*

  • cloudbuild.operations.get
  • cloudbuild.operations.list

compute.projects.get

compute.regions.list

compute.zones.list

dataflow.jobs.*

  • dataflow.jobs.cancel
  • dataflow.jobs.create
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.jobs.snapshot
  • dataflow.jobs.updateContents

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.*

  • dataflow.snapshots.delete
  • dataflow.snapshots.get
  • dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.*

  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • recommender.dataflowDiagnosticsInsights.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataflow.viewer)

Provides read-only access to all Dataflow-related resources.

Lowest-level resources where you can grant this role:

  • Project

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

(roles/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:

  • Project

autoscaling.sites.readRecommendations

autoscaling.sites.writeMetrics

autoscaling.sites.writeState

compute.instanceGroupManagers.update

compute.instances.delete

compute.instances.setDiskAutoDelete

dataflow.jobs.get

dataflow.shuffle.*

  • dataflow.shuffle.read
  • dataflow.shuffle.write

dataflow.streamingWorkItems.*

  • dataflow.streamingWorkItems.ImportState
  • dataflow.streamingWorkItems.commitWork
  • dataflow.streamingWorkItems.getData
  • dataflow.streamingWorkItems.getWork
  • dataflow.streamingWorkItems.getWorkerMetadata

dataflow.workItems.*

  • dataflow.workItems.lease
  • dataflow.workItems.sendMessage
  • dataflow.workItems.update

logging.logEntries.create

logging.logEntries.route

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 역할의 유용성을 파악하려면 다음 분석을 살펴보세요.

Dataflow 역할 할당

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

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

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