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 for 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 for 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. Demi 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 pelanggan, tenant, dan Dataproc 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 compute 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 di project lain:

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

Konfigurasi

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


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

Subnet Managed Service for Apache Spark

Dasar pengukuran Kasus penggunaan

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


Poin-poin penting:
  • Untuk konfigurasi dasar ini, Managed Service for 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 for Apache Spark harus memiliki Akses Google Pribadi.

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


Poin-poin penting:
  • Untuk subnet baru ini, setel Akses Google Pribadi ke Aktif.
  • Subnet Managed Service for 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 for 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 for Apache Spark statis, dalam konfigurasi dasar ini, bucket dibuat oleh Cloud Data Fusion dan berbeda dengan bucket penyiapan dan sementara Managed Service for Apache Spark.
  • Agen Layanan Cloud Data Fusion API memiliki izin bawaan untuk membuat bucket ini di project yang berisi instance Cloud Data Fusion.
Tidak ada konfigurasi tambahan yang diperlukan 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 tujuan Anda, seperti tugas pemuatan yang dimulai oleh plugin Tujuan BigQuery.


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 for 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 ada konfigurasi tambahan yang diperlukan 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) 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 for 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 Agen Layanan Cloud Data Fusion API ke akun layanan di project Managed Service for Apache Spark. Kemudian, berikan peran berikut dalam project tersebut:

  • Peran Compute Network User
  • Peran Editor Dataproc

IAM: Akun layanan Managed Service for Apache Spark

Dasar pengukuran Kasus penggunaan

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


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

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


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

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

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

Tambahkan akun layanan Compute Engine default dari project Managed Service for 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 for 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
  • 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 Managed Service for Apache Spark:
  • Compute Engine API
  • Dataproc API (kemungkinan sudah diaktifkan di project ini). Dataproc Control API akan otomatis diaktifkan saat Anda mengaktifkan Dataproc API.
  • 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 for 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 Pengenkripsi/Pendekripsi CryptoKey Cloud KMS harus diberikan ke akun layanan berikut di tingkat kunci dalam project tempat CMEK 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