Kontrol akses dengan IAM

Untuk membatasi akses bagi pengguna dalam project atau organisasi, Anda dapat menggunakan peran Pengelolaan Akses dan Identitas (IAM) untuk Dataflow. Anda dapat mengontrol akses ke resource terkait Dataflow, bukan memberikan peran Viewer, Editor, atau Pemilik kepada pengguna untuk seluruh project Google Cloud.

Halaman ini berfokus pada cara menggunakan peran IAM Dataflow. Untuk mengetahui deskripsi mendetail tentang IAM dan fitur-fiturnya, lihat dokumentasi IAM.

Setiap metode Dataflow mengharuskan pemanggil memiliki izin yang diperlukan. Untuk mengetahui daftar izin dan peran yang didukung Dataflow, lihat bagian berikut.

Izin dan peran

Bagian ini merangkum izin dan peran yang didukung IAM Dataflow.

Izin yang diperlukan

Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap metode:

Metode Izin yang Diperlukan
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

Peran

Tabel berikut mencantumkan peran IAM Dataflow dengan daftar terkait izin terkait Dataflow yang disertakan dalam setiap peran. Setiap izin berlaku untuk jenis resource tertentu. Untuk mengetahui daftar izin, lihat halaman Roles di konsol Google Cloud.

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

Peran Pekerja Dataflow (roles/dataflow.worker) memberikan izin yang diperlukan bagi akun layanan Compute Engine untuk menjalankan unit kerja untuk pipeline Apache Beam. Peran Pekerja Dataflow harus ditetapkan ke akun layanan yang dapat meminta dan memperbarui pekerjaan dari layanan Dataflow.

Peran Agen Layanan Dataflow (roles/dataflow.serviceAgent) digunakan secara eksklusif oleh akun layanan Dataflow. Peran ini memberi akun layanan akses ke resource terkelola di project Google Cloud Anda untuk menjalankan tugas Dataflow. Akun ini ditetapkan secara otomatis ke akun layanan saat Anda mengaktifkan Dataflow API untuk project dari halaman API di Konsol Google Cloud.

Membuat tugas

Untuk membuat tugas, peran roles/dataflow.admin mencakup kumpulan izin minimum yang diperlukan untuk menjalankan dan memeriksa tugas.

Atau, izin berikut diperlukan:

Contoh penetapan peran

Untuk mengilustrasikan kegunaan berbagai peran Dataflow, pertimbangkan perincian berikut:

Menetapkan peran Dataflow

Peran Dataflow saat ini hanya dapat ditetapkan di organisasi dan project.

Untuk mengelola peran di tingkat organisasi, lihat Kontrol akses untuk organisasi yang menggunakan IAM.

Untuk menetapkan peran tingkat project, lihat Memberikan, mengubah, dan mencabut akses ke resource.