Kasus penggunaan: Kontrol akses untuk cluster Managed Service for Apache Spark di project lain

Halaman ini menjelaskan cara mengelola kontrol akses saat Anda men-deploy dan menjalankan pipeline yang menggunakan cluster Managed Service untuk Apache Spark di project lain Google Cloud .

Skenario

Secara default, saat instance Cloud Data Fusion diluncurkan di projectGoogle Cloud , instance tersebut men-deploy dan menjalankan pipeline menggunakan cluster Managed Service untuk Apache Spark 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 (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. Untuk alasan keamanan, organisasi mungkin mewajibkan Anda menggunakan jenis instance ini.
  • Sumber dan sink BigQuery.
  • Kontrol akses dengan IAM, bukan role-based access control (RBAC).

Solusi

Solusi ini membandingkan arsitektur dan konfigurasi dasar dan khusus 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) dan dalam project yang berbeda melalui VPC project tenant.

Arsitektur dasar

Diagram ini menunjukkan arsitektur dasar project:

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

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

  • Anda menggunakan salah satu profil komputasi bawaan
  • Sumber dan tujuan 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 di project lain:

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

Konfigurasi

Bagian berikut membandingkan konfigurasi dasar dengan konfigurasi khusus kasus penggunaan untuk menggunakan cluster Managed Service untuk Apache Spark 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 Managed Service untuk Apache Spark adalah tempat cluster Managed Service untuk Apache Spark diluncurkan.

VPC dan instance project tenant

Dasar pengukuran Kasus penggunaan
Dalam diagram arsitektur dasar 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 Managed Service untuk Apache Spark diluncurkan di project ini saat Anda menjalankan pipeline. Dalam kasus penggunaan ini, Anda mengelola dua project. Di halaman ini, project pelanggan merujuk ke tempat instance Cloud Data Fusion berjalan.
Project Managed Service untuk Apache Spark mengacu pada tempat cluster Managed Service untuk Apache Spark diluncurkan.

VPC Pelanggan

Dasar pengukuran Kasus penggunaan

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


Kesimpulan utama:
Anda dapat menemukan detail VPC Pelanggan di halaman jaringan VPC project Anda.

Buka VPC networks

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.


Kesimpulan utama:
Region subnet ini sama dengan lokasi instance Cloud Data Fusion di project tenant.
Tidak diperlukan konfigurasi tambahan untuk kasus penggunaan ini.

Subnet Managed Service untuk Apache Spark

Dasar pengukuran Kasus penggunaan

Subnet tempat cluster Managed Service untuk Apache Spark diluncurkan saat Anda menjalankan pipeline.


Poin-poin penting:
  • Untuk konfigurasi dasar ini, Managed Service untuk Apache Spark dijalankan di subnet yang sama dengan instance Cloud Data Fusion.
  • Cloud Data Fusion menemukan subnet di region yang sama dengan instance dan subnet Cloud Data Fusion. Jika hanya ada satu subnet di region ini, subnetnya sama.
  • Subnet Managed Service untuk Apache Spark harus memiliki Akses Google Pribadi.

Ini adalah subnet baru tempat cluster Managed Service untuk Apache Spark diluncurkan saat Anda menjalankan pipeline.


Poin-poin penting:
  • Untuk subnet baru ini, setel Akses Google Pribadi ke Aktif.
  • Subnet Managed Service untuk Apache Spark tidak harus berada di lokasi yang sama dengan instance Cloud Data Fusion.

Sumber dan sink

Dasar pengukuran Kasus penggunaan

Sumber tempat data diekstrak dan tujuan tempat data dimuat, seperti sumber dan tujuan 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 adalah untuk sumber dan tujuan BigQuery.

Cloud Storage

Dasar pengukuran Kasus penggunaan

Bucket penyimpanan di project pelanggan yang membantu mentransfer file antara Cloud Data Fusion dan Managed Service untuk Apache Spark.


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 dalam profil komputasi, Cloud Data Fusion akan membuat bucket dalam project yang sama dengan instance untuk tujuan ini.
  • Bahkan untuk cluster Managed Service untuk Apache Spark statis, dalam konfigurasi dasar ini, bucket dibuat oleh Cloud Data Fusion dan berbeda dari bucket sementara dan staging Managed Service untuk Apache Spark.
  • Agen Layanan Cloud Data Fusion API memiliki izin bawaan untuk membuat bucket ini di project yang berisi instance Cloud Data Fusion.
Tidak diperlukan konfigurasi tambahan untuk kasus penggunaan ini.

Bucket sementara yang digunakan oleh sumber dan tujuan

Dasar pengukuran Kasus penggunaan

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


Poin-poin penting:
  • Anda dapat menentukan bucket ini saat mengonfigurasi properti plugin sumber dan tujuan.
  • Jika Anda tidak menentukan bucket, bucket akan dibuat di project yang sama tempat Managed Service untuk Apache Spark berjalan.
  • Jika set data bersifat multi-regional, bucket 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 tujuan 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 Cloud Data Fusion API Service Agent (roles/datafusion.serviceAgent) akan otomatis diberikan kepada 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 Managed Service untuk Apache Spark. 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 Managed Service untuk Apache Spark.
  • Jika Anda mereplikasi dari sumber Oracle, akun layanan ini juga harus diberi peran Admin Datastream dan Admin Storage di project tempat tugas terjadi. Halaman ini tidak membahas kasus penggunaan replikasi.

Untuk kasus penggunaan ini, berikan peran Cloud Data Fusion API Service Agent ke akun layanan di project Managed Service untuk Apache Spark. Kemudian, berikan peran berikut dalam project tersebut:

  • Peran Compute Network User
  • Peran Editor Dataproc

IAM: Akun layanan Managed Service untuk Apache Spark

Dasar pengukuran Kasus penggunaan

Akun layanan yang digunakan untuk menjalankan pipeline sebagai tugas dalam cluster Managed Service untuk Apache Spark. Secara default, akun layanan Compute Engine akan digunakan.


Opsional: dalam konfigurasi dasar, 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 Managed Service untuk Apache Spark berkomunikasi dengan Cloud Data Fusion API.
  • Peran Pekerja Dataproc. Peran ini memungkinkan tugas berjalan di cluster Managed Service untuk Apache Spark.
Poin-poin penting:
  • Akun layanan Agen API untuk layanan baru harus diberi peran Service Account User di akun layanan Managed Service untuk Apache Spark agar Agen API Layanan dapat menggunakannya untuk meluncurkan cluster Managed Service untuk Apache Spark.

Contoh kasus penggunaan ini mengasumsikan Anda menggunakan akun layanan Compute Engine default (PROJECT_NUMBER-compute@developer.gserviceaccount.com) project Managed Service untuk Apache Spark.


Berikan peran berikut ke akun layanan Compute Engine default di project Managed Service untuk Apache Spark.

  • Peran Pekerja Dataproc
  • Peran Storage Admin (atau, minimal, izin `storage.buckets.create`) agar Managed Service untuk Apache Spark dapat membuat bucket sementara untuk BigQuery.
  • Peran BigQuery Job User. Peran ini memungkinkan Managed Service untuk Apache Spark membuat tugas pemuatan. Secara default, tugas dibuat di project Managed Service untuk Apache Spark.
  • Peran Editor Set Data BigQuery. Peran ini memungkinkan Managed Service untuk Apache Spark membuat set data saat memuat data.

Berikan peran Service Account User ke Akun Layanan Cloud Data Fusion di akun layanan Compute Engine default project Managed Service untuk Apache Spark. Tindakan ini harus dilakukan di project Managed Service untuk Apache Spark.

Tambahkan akun layanan Compute Engine default dari project Managed Service untuk Apache Spark ke project Cloud Data Fusion. Berikan juga peran berikut:

  • Peran Storage Object Viewer untuk mengambil artefak terkait tugas pipeline dari bucket Konsumen Cloud Data Fusion.
  • Peran Cloud Data Fusion Runner, sehingga cluster Managed Service untuk Apache Spark 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 mengetahui informasi selengkapnya tentang API ini, buka halaman API & layanan di project Anda.

Buka APIs & services

  • 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
  • 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
  • Agen Layanan Google Cloud Dataproc
  • Cloud KMS Service Agent
  • Akun Layanan Cloud Pub/Sub
Untuk kasus penggunaan ini, aktifkan API berikut di project yang berisi project Managed Service untuk Apache Spark, jika belum diaktifkan:
  • Compute Engine API
  • Dataproc API
  • Cloud Resource Manager API

Kunci enkripsi

Dasar pengukuran Kasus penggunaan

Dalam konfigurasi dasar, kunci enkripsi dapat dikelola Google atau CMEK


Poin-poin penting:

Jika Anda menggunakan CMEK, konfigurasi dasar 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 tingkat kunci (bukan di halaman IAM konsol Google Cloud ) di project tempat kunci dibuat:
    • Akun layanan Cloud Data Fusion API
    • Akun layanan Managed Service untuk Apache Spark, 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 ada perubahan tambahan yang diperlukan untuk kasus penggunaan ini.

Jika Anda menggunakan CMEK, peran Cloud KMS CryptoKey Encrypter/Decrypter harus diberikan kepada akun layanan berikut di tingkat kunci dalam project tempat kunci 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 lain 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 berikutnya