Kasus penggunaan: Kontrol akses untuk cluster Dataproc di project lain

Halaman ini menjelaskan cara mengelola kontrol akses saat Anda men-deploy dan menjalankan pipeline yang menggunakan cluster Dataproc dalam project Google Cloud lainnya.

Skenario

Secara default, saat diluncurkan di project Google Cloud, instance Cloud Data Fusion akan men-deploy dan menjalankan pipeline menggunakan cluster Dataproc dalam project yang sama. Namun, organisasi Anda mungkin mengharuskan Anda untuk menggunakan cluster dalam project lain. Untuk kasus penggunaan ini, Anda harus mengelola akses di antara project. Halaman berikut menjelaskan cara mengubah konfigurasi dasar pengukuran (default) dan menerapkan kontrol akses yang sesuai.

Sebelum memulai

Untuk memahami solusi dalam kasus penggunaan ini, Anda memerlukan konteks berikut:

Asumsi dan ruang lingkup

Kasus penggunaan ini memiliki persyaratan berikut:

  • Instance Cloud Data Fusion pribadi. Untuk alasan keamanan, organisasi mungkin mengharuskan Anda menggunakan jenis instance ini.
  • Sumber dan sink BigQuery.
  • Kontrol akses dengan IAM, bukan kontrol akses berbasis peran (RBAC).

Solusi

Solusi ini membandingkan arsitektur dan konfigurasi khusus dasar pengukuran serta kasus penggunaan.

Arsitektur

Diagram berikut membandingkan arsitektur project untuk membuat instance Cloud Data Fusion dan menjalankan pipeline saat Anda menggunakan cluster dalam project yang sama (dasar pengukuran) dan dalam project yang berbeda melalui VPC project tenant.

Arsitektur dasar

Diagram ini menunjukkan arsitektur dasar project:

Arsitektur project Tenant, pelanggan, dan Dataproc di Cloud Data Fusion.

Untuk konfigurasi dasar pengukuran, Anda membuat instance Cloud Data Fusion pribadi dan menjalankan pipeline tanpa penyesuaian tambahan:

  • Anda menggunakan salah satu profil komputasi bawaan
  • Sumber dan sink berada dalam project yang sama dengan instance
  • Tidak ada peran tambahan yang diberikan ke akun layanan mana pun

Untuk informasi selengkapnya tentang project tenant dan pelanggan, lihat Jaringan.

Arsitektur kasus penggunaan

Diagram ini menunjukkan arsitektur project saat Anda menggunakan cluster dalam project lain:

Arsitektur project Tenant, pelanggan, dan Dataproc di Cloud Data Fusion.

Konfigurasi

Bagian berikut membandingkan konfigurasi dasar pengukuran dengan konfigurasi khusus kasus penggunaan untuk menggunakan cluster Dataproc di project yang berbeda melalui VPC project tenant default.

Dalam deskripsi kasus penggunaan berikut, project pelanggan adalah tempat instance Cloud Data Fusion dijalankan, sedangkan project Dataproc adalah tempat cluster Dataproc diluncurkan.

VPC dan instance project tenant

Dasar pengukuran Kasus penggunaan
Dalam diagram arsitektur dasar pengukuran sebelumnya, project tenant berisi komponen berikut:
  • VPC default, yang dibuat secara otomatis.
  • Deployment fisik instance Cloud Data Fusion.
Tidak ada konfigurasi tambahan yang diperlukan untuk kasus penggunaan ini.

Project pelanggan

Dasar pengukuran Kasus penggunaan
Project Google Cloud adalah tempat Anda men-deploy dan menjalankan pipeline. Secara default, cluster Dataproc diluncurkan dalam project ini saat Anda menjalankan pipeline. Dalam kasus penggunaan ini, Anda mengelola dua project. Di halaman ini, project pelanggan mengacu ke tempat instance Cloud Data Fusion dijalankan.
Project Dataproc mengacu pada tempat cluster Dataproc diluncurkan.

VPC Pelanggan

Dasar pengukuran Kasus penggunaan

Dari perspektif Anda (pelanggan), VPC pelanggan adalah tempat Cloud Data Fusion berada secara logis.


Poin-poin penting:
Anda dapat menemukan detail VPC Pelanggan di halaman jaringan VPC pada project Anda.

Buka jaringan VPC

Tidak ada konfigurasi tambahan yang diperlukan untuk kasus penggunaan ini.

Subnet Cloud Data Fusion

Dasar pengukuran Kasus penggunaan

Dari perspektif Anda (pelanggan), subnet ini adalah tempat Cloud Data Fusion berada secara logis.


Poin-poin penting:
Region subnet ini sama dengan lokasi instance Cloud Data Fusion di project tenant.
Tidak ada konfigurasi tambahan yang diperlukan untuk kasus penggunaan ini.

Subnet Dataproc

Dasar pengukuran Kasus penggunaan

Subnet tempat cluster Dataproc diluncurkan saat Anda menjalankan pipeline.


Poin-poin penting:
  • Untuk konfigurasi dasar pengukuran ini, Dataproc dijalankan di subnet yang sama dengan instance Cloud Data Fusion.
  • Cloud Data Fusion mencari subnet di region yang sama dengan instance dan subnet Cloud Data Fusion. Jika hanya ada satu subnet di region ini, subnetnya sama.
  • Subnet Dataproc harus memiliki Akses Google Pribadi.

Ini adalah subnet baru tempat cluster Dataproc diluncurkan saat Anda menjalankan pipeline.


Poin-poin penting:
  • Untuk subnet baru ini, tetapkan Akses Google Pribadi ke On.
  • Subnet Dataproc tidak harus berada di lokasi yang sama dengan instance Cloud Data Fusion.

Sumber dan sink

Dasar pengukuran Kasus penggunaan

Sumber tempat data diekstrak dan sink di tempat data dimuat, seperti sumber dan sink BigQuery.


Poin-poin penting:
  • Tugas yang mengambil dan memuat data harus diproses di lokasi yang sama dengan set data, atau hasil error.
Konfigurasi kontrol akses khusus kasus penggunaan di halaman ini adalah untuk sumber dan sink BigQuery.

Cloud Storage

Dasar pengukuran Kasus penggunaan

Bucket penyimpanan dalam project pelanggan yang membantu mentransfer file antara Cloud Data Fusion dan Dataproc.


Poin-poin penting:
  • Anda dapat menentukan bucket ini melalui antarmuka web Cloud Data Fusion di setelan Compute Profile untuk cluster efemeral.
  • Untuk pipeline batch dan real-time, atau tugas replikasi: jika Anda tidak menentukan bucket di profil komputasi, Cloud Data Fusion akan membuat bucket dalam project yang sama dengan instance untuk tujuan ini.
  • Bahkan untuk cluster Dataproc statis, dalam konfigurasi dasar ini, bucket dibuat oleh Cloud Data Fusion dan berbeda dengan staging Dataproc dan bucket sementara.
  • Agen Layanan Cloud Data Fusion API memiliki izin bawaan untuk membuat bucket ini dalam project yang berisi instance Cloud Data Fusion.
Tidak ada konfigurasi tambahan yang diperlukan untuk kasus penggunaan ini.

Bucket sementara yang digunakan oleh source dan sink

Dasar pengukuran Kasus penggunaan

Bucket sementara yang dibuat oleh plugin untuk sumber dan sink, seperti tugas pemuatan yang dimulai oleh plugin Sink BigQuery.


Poin-poin penting:
  • Anda dapat menentukan bucket ini saat mengonfigurasi properti plugin sumber dan sink.
  • Jika Anda tidak menentukan bucket, bucket akan dibuat dalam project yang sama tempat Dataproc dijalankan.
  • Jika set data bersifat multi-regional, bucket akan dibuat dalam cakupan yang sama.
  • Jika Anda menentukan bucket dalam konfigurasi plugin, region bucket harus cocok dengan region set data.
  • Jika Anda tidak menentukan bucket dalam konfigurasi plugin, bucket yang dibuat untuk Anda akan dihapus saat pipeline selesai.
Untuk kasus penggunaan ini, bucket dapat dibuat di project apa pun.

Bucket yang merupakan sumber atau sink data untuk plugin

Dasar pengukuran Kasus penggunaan
Bucket pelanggan, yang Anda tetapkan dalam konfigurasi untuk plugin, seperti plugin Cloud Storage dan plugin FTP ke Cloud Storage. Tidak ada konfigurasi tambahan yang diperlukan untuk kasus penggunaan ini.

IAM: Agen Layanan Cloud Data Fusion API

Dasar pengukuran Kasus penggunaan

Saat Cloud Data Fusion API diaktifkan, peran Agen Layanan Cloud Data Fusion API (roles/datafusion.serviceAgent) akan otomatis diberikan ke akun layanan Cloud Data Fusion, agen layanan utama.


Poin-poin penting:
  • Peran ini berisi izin untuk layanan dalam project yang sama dengan instance, seperti BigQuery dan Dataproc. Untuk semua layanan yang didukung, lihat detail peran.
  • Akun layanan Cloud Data Fusion melakukan hal berikut:
    • Komunikasi bidang data (desain pipeline dan eksekusi) dengan layanan lain (misalnya—berkomunikasi dengan Cloud Storage, BigQuery, dan Datastream pada waktu desain).
    • Menyediakan cluster Dataproc.
  • Jika Anda mereplikasi dari sumber Oracle, akun layanan ini juga harus diberi peran Datastream Admin dan Storage Admin dalam project tempat tugas tersebut terjadi. Halaman ini tidak membahas kasus penggunaan replikasi.

Untuk kasus penggunaan ini, berikan peran Agen Layanan Cloud Data Fusion API ke akun layanan di project Dataproc. Kemudian, berikan peran berikut dalam project tersebut:

  • Peran Pengguna Jaringan Compute
  • Peran Dataproc Editor

IAM: Akun layanan Dataproc

Dasar pengukuran Kasus penggunaan

Akun layanan yang digunakan untuk menjalankan pipeline sebagai tugas di dalam cluster Dataproc. Secara default, akun ini adalah akun layanan Compute Engine.


Opsional: pada konfigurasi dasar pengukuran, Anda dapat mengubah akun layanan default ke akun layanan lain dari project yang sama. Berikan peran IAM berikut ke akun layanan yang baru:

  • Peran Cloud Data Fusion Runner. Peran ini memungkinkan Dataproc berkomunikasi dengan Cloud Data Fusion API.
  • Peran Dataproc Worker. Peran ini memungkinkan tugas berjalan di cluster Dataproc.
Poin-poin penting:
  • Akun layanan Agen API untuk layanan baru harus diberi peran Service Account User pada akun layanan Dataproc, sehingga Agen Service API dapat menggunakannya untuk meluncurkan cluster Dataproc.

Contoh kasus penggunaan ini mengasumsikan bahwa Anda menggunakan akun layanan Compute Engine default (PROJECT_NUMBER-compute@developer.gserviceaccount.com) dari project Dataproc.


Berikan peran berikut ke akun layanan Compute Engine default di project Dataproc.

  • Peran Dataproc Worker
  • Peran Storage Admin (atau, minimal, izin `storage.buckets.create`) agar Dataproc dapat membuat bucket sementara untuk BigQuery.
  • Peran BigQuery Job User. Peran ini memungkinkan Dataproc membuat tugas pemuatan. Tugas dibuat di project Dataproc secara default.
  • Peran BigQuery Dataset Editor. Peran ini memungkinkan Dataproc membuat set data selagi memuat data.

Berikan peran Service Account User ke Akun Layanan Cloud Data Fusion di akun layanan Compute Engine default dari project Dataproc. Tindakan ini harus dilakukan dalam project Dataproc.

Tambahkan akun layanan Compute Engine default dari project Dataproc ke project Cloud Data Fusion. Berikan juga peran berikut:

  • Peran Storage Object Viewer untuk mengambil artefak terkait tugas pipeline dari bucket Cloud Data Fusion Consumer.
  • Peran Cloud Data Fusion Runner, sehingga cluster Dataproc dapat berkomunikasi dengan Cloud Data Fusion saat sedang berjalan.

API

Dasar pengukuran Kasus penggunaan
Saat Anda mengaktifkan Cloud Data Fusion API, API berikut juga akan diaktifkan. Untuk informasi selengkapnya tentang API ini, buka halaman APIs & services di project Anda.

Buka API & layanan

  • API Penskalaan Otomatis Cloud
  • Dataproc API
  • API Kontrol Cloud Dataproc
  • Cloud DNS API
  • Cloud OS Login API
  • Pub/Sub API
  • Compute Engine API
  • API Sistem File Container
  • Container Registry API
  • Service Account Credentials API
  • Identity and Access Management API
  • Google Kubernetes Engine API

Saat mengaktifkan Cloud Data Fusion API, akun layanan berikut akan otomatis ditambahkan ke project Anda:

  • Agent Layanan Google API
  • Agen Layanan Compute Engine
  • Kubernetes Engine Service Agent
  • Agen Layanan Google Container Registry
  • Agen Layanan Google Cloud Dataproc
  • Cloud KMS Service Agent
  • Akun Layanan Cloud Pub/Sub
Untuk kasus penggunaan ini, aktifkan API berikut dalam project yang berisi project Dataproc:
  • Compute Engine API
  • Dataproc API (kemungkinan sudah diaktifkan di project ini). Dataproc Control API diaktifkan secara otomatis saat Anda mengaktifkan Dataproc API.
  • API Resource Manager.

Kunci enkripsi

Dasar pengukuran Kasus penggunaan

Dalam konfigurasi dasar pengukuran, kunci enkripsi dapat dikelola Google atau CMEK


Poin-poin penting:

Jika Anda menggunakan CMEK, konfigurasi dasar pengukuran Anda memerlukan hal berikut:

  • Kunci harus bersifat regional, dibuat di region yang sama dengan instance Cloud Data Fusion.
  • Berikan peran Encrypter/Decrypter Cloud KMS ke akun layanan berikut di level kunci (bukan di halaman IAM pada Konsol Google Cloud) dalam project tempatnya dibuat:
    • Akun layanan Cloud Data Fusion API
    • Akun layanan Dataproc, yang merupakan Agen Layanan Compute Engine (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com) secara default
    • Agen Layanan Google Cloud Dataproc (service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com)
    • Agen Layanan Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

Bergantung pada layanan yang digunakan dalam pipeline Anda, seperti BigQuery atau Cloud Storage, akun layanan juga harus diberi peran Cloud KMS CryptoKey Encrypter/Decrypter:

  • Akun layanan BigQuery (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • Akun layanan Pub/Sub (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • Akun layanan Spanner (service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com)

Jika tidak menggunakan CMEK, Anda tidak perlu melakukan perubahan tambahan untuk kasus penggunaan ini.

Jika Anda menggunakan CMEK, peran Encrypter/Decrypter Cloud KMS CryptoKey harus diberikan ke akun layanan berikut di level kunci dalam project tempatnya dibuat:

  • Agen Layanan Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

Bergantung pada layanan yang digunakan dalam pipeline Anda, seperti BigQuery atau Cloud Storage, akun layanan lainnya juga harus diberi peran Cloud KMS CryptoKey Encrypter/Decrypter pada level kunci. Contoh:

  • Akun layanan BigQuery (bq-PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com)
  • Akun layanan Pub/Sub (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com)
  • Akun layanan Spanner (service-PROJECT_NUMBER@gcp-sa-spanner.iam.gserviceaccount.com)

Setelah Anda membuat konfigurasi khusus kasus penggunaan ini, pipeline data Anda dapat mulai berjalan pada cluster dalam project lain.

Langkah selanjutnya