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 di project Google Cloud lain.

Skenario

Secara default, saat instance Cloud Data Fusion diluncurkan di project Google Cloud, instance tersebut akan men-deploy dan menjalankan pipeline menggunakan cluster Dataproc dalam project yang sama. Namun, organisasi Anda mungkin mengharuskan Anda menggunakan cluster di project lain. Untuk kasus penggunaan ini, Anda harus mengelola akses antar-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 cakupan

Kasus penggunaan ini memiliki persyaratan berikut:

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

Solusi

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

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 pengukuran

Diagram ini menunjukkan arsitektur dasar pengukuran 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 mengetahui informasi selengkapnya tentang project pelanggan dan tenant, 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 berjalan dan 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 diperlukan konfigurasi tambahan 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 di project ini saat Anda menjalankan pipeline. Dalam kasus penggunaan ini, Anda mengelola dua project. Di halaman ini, project pelanggan mengacu pada tempat instance Cloud Data Fusion berjalan.
Project Dataproc mengacu pada tempat peluncuran cluster Dataproc.

VPC Pelanggan

Dasar pengukuran Kasus penggunaan

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


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

Buka jaringan VPC

Tidak diperlukan konfigurasi tambahan 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 penting:
Region subnet ini sama dengan lokasi instance Cloud Data Fusion di project tenant.
Tidak diperlukan konfigurasi tambahan 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 menempatkan subnet di region yang sama dengan instance dan subnet Cloud Data Fusion. Jika hanya ada satu subnet di region ini, subnet tersebut 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, setel Akses Google Pribadi ke Aktif.
  • Subnet Dataproc tidak perlu berada di lokasi yang sama dengan instance Cloud Data Fusion.

Sumber dan sink

Dasar pengukuran Kasus penggunaan

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


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

Cloud Storage

Dasar pengukuran Kasus penggunaan

Bucket penyimpanan di 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 sementara.
  • Untuk pipeline batch dan real-time, atau tugas replikasi: jika Anda tidak menentukan bucket di profil komputasi, Cloud Data Fusion akan membuat bucket di project yang sama dengan instance untuk tujuan ini.
  • Bahkan untuk cluster Dataproc statis, dalam konfigurasi dasar pengukuran ini, bucket dibuat oleh Cloud Data Fusion dan berbeda dengan bucket sementara dan staging Dataproc.
  • Agen Layanan Cloud Data Fusion API memiliki izin bawaan untuk membuat bucket ini dalam project yang berisi instance Cloud Data Fusion.
Tidak diperlukan konfigurasi tambahan untuk kasus penggunaan ini.

Bucket sementara yang digunakan oleh sumber dan sink

Dasar pengukuran Kasus penggunaan

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


Poin-poin penting:
  • Anda dapat menentukan bucket ini saat mengonfigurasi properti plugin sumber dan sink.
  • Jika Anda tidak menentukan bucket, bucket akan dibuat di project yang sama tempat Dataproc berjalan.
  • 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 mana pun.

Bucket yang merupakan sumber atau sink data untuk plugin

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

IAM: Cloud Data Fusion API Service Agent

Dasar pengukuran Kasus penggunaan

Saat Cloud Data Fusion API diaktifkan, peran Agen Layanan Cloud Data Fusion API (roles/datafusion.serviceAgent) secara 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 dan eksekusi pipeline) 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 di project tempat tugas terjadi. Halaman ini tidak membahas kasus penggunaan replika.

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

  • Peran Compute Network User
  • Peran Editor Dataproc

IAM: Akun layanan Dataproc

Dasar pengukuran Kasus penggunaan

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


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

  • Peran Cloud Data Fusion Runner. Peran ini memungkinkan Dataproc berkomunikasi dengan Cloud Data Fusion API.
  • Peran Pekerja Dataproc. Peran ini memungkinkan tugas berjalan di cluster Dataproc.
Poin-poin penting:
  • Akun layanan Agen API untuk layanan baru harus diberi peran Pengguna Akun Layanan di akun layanan Dataproc sehingga Agen API Layanan 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 Pekerja Dataproc
  • Peran Storage Admin (atau, minimal, izin `storage.buckets.create`) untuk mengizinkan Dataproc 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 saat memuat data.

Berikan peran Pengguna Akun Layanan ke Akun Layanan Cloud Data Fusion di akun layanan Compute Engine default project Dataproc. Tindakan ini harus dilakukan di 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 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 API & layanan di project Anda.

Buka API & layanan

  • Cloud Autoscaling API
  • Dataproc API
  • Cloud Dataproc Control API
  • Cloud DNS API
  • Cloud OS Login API
  • Pub/Sub API
  • Compute Engine API
  • Container Filesystem API
  • Container Registry API
  • Service Account Credentials API
  • Identity and Access Management API
  • Google Kubernetes Engine API

Saat Anda 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
  • Google Cloud Dataproc Service Agent
  • Cloud KMS Service Agent
  • Akun Layanan Cloud Pub/Sub
Untuk kasus penggunaan ini, aktifkan API berikut di project yang berisi project Dataproc:
  • Compute Engine API
  • Dataproc API (kemungkinan sudah diaktifkan dalam project ini). Dataproc Control API otomatis diaktifkan saat Anda mengaktifkan Dataproc API.
  • Resource Manager API.

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 Cloud KMS CryptoKey Encrypter/Decrypter ke akun layanan berikut di level kunci (bukan di halaman IAM pada konsol Google Cloud) di project tempat akun tersebut 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 Pengenkripsi/Pendekripsi CryptoKey Cloud KMS:

  • 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 Anda tidak menggunakan CMEK, tidak diperlukan perubahan tambahan untuk kasus penggunaan ini.

Jika Anda menggunakan CMEK, peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS harus diberikan ke akun layanan berikut di tingkat kunci dalam project tempat akun tersebut 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 Pengenkripsi/Pendekripsi CryptoKey Cloud KMS di tingkat 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 di cluster dalam project lain.

Langkah selanjutnya