Akun layanan Managed Service for Apache Spark

Halaman ini menjelaskan akun layanan dan cakupan akses VM serta cara penggunaannya dengan Managed Service untuk Apache Spark.

Persyaratan keamanan mulai 3 Agustus 2020: Pengguna Managed Service untuk Apache Spark harus memiliki izin akun layanan ActAs untuk men-deploy resource Managed Service untuk Apache Spark, seperti membuat cluster dan mengirimkan tugas. Peran Service Account User berisi izin ini. Lihat Peran untuk autentikasi akun layanan untuk mengetahui informasi tentang peran Managed Service untuk Apache Spark yang diperlukan.

Keikutsertaan untuk pengguna Managed Service untuk Apache Spark yang sudah ada: Pengguna Managed Service untuk Apache Spark yang sudah ada per 3 Agustus 2020 dapat ikut serta dalam persyaratan keamanan ini (lihat Mengamankan Managed Service untuk Apache Spark, Dataflow, dan Cloud Data Fusion).

Apa yang dimaksud dengan akun layanan?

Akun layanan adalah akun khusus yang dapat digunakan oleh layanan dan aplikasi yang berjalan di instance virtual machine (VM) Compute Engine untuk berinteraksi dengan API Google Cloud lainnya. Aplikasi dapat menggunakan kredensial akun layanan untuk memberikan otorisasi pada dirinya sendiri ke serangkaian API dan melakukan tindakan pada VM dalam izin yang diberikan ke akun layanan.

Akun layanan cluster Managed Service untuk Apache Spark

Akun layanan berikut harus memiliki izin yang diperlukan untuk melakukan tindakan Managed Service untuk Apache Spark di project tempat cluster Anda berada.

Akun layanan VM Managed Service untuk Apache Spark

VM dalam cluster Managed Service untuk Apache Spark menggunakan akun layanan untuk operasi bidang data Managed Service untuk Apache Spark. Akun layanan default Compute Engine, project_number-compute@developer.gserviceaccount.com, digunakan sebagai akun layanan VM, kecuali jika Anda menentukan akun layanan kustom saat membuat cluster. Akun layanan VM harus memiliki peran Managed Service for Apache Spark Worker, yang mencakup izin yang diperlukan untuk operasi bidang data Managed Service untuk Apache Spark. Untuk mengetahui informasi selengkapnya, lihat peran Managed Service untuk Apache Spark.

Melihat peran akun layanan VM

Untuk melihat peran yang diberikan ke akun layanan VM Managed Service untuk Apache Spark, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Klik Include Google-provided role grants.

  3. Lihat peran yang tercantum untuk akun layanan VM. Gambar berikut menunjukkan peran Dataproc Worker yang diperlukan yang tercantum untuk akun layanan default Compute Engine (project_number-compute@developer.gserviceaccount.com) yang digunakan Managed Service untuk Apache Spark secara default sebagai akun layanan VM.

  4. Anda dapat mengklik ikon pensil yang ditampilkan di baris akun layanan untuk memberikan atau menghapus peran akun layanan.

Akun layanan agen layanan Managed Service untuk Apache Spark

Managed Service untuk Apache Spark membuat akun layanan Agen Layanan, service-project_number@dataproc-accounts.iam.gserviceaccount.com, dan memberikan peran Managed Service for Apache Spark Service Agent kepada akun layanan dalam project Google Cloud . Akun layanan ini menjalankan operasi bidang kontrol Managed Service untuk Apache Spark, seperti pembuatan, pembaruan, dan penghapusan VM cluster. Anda tidak dapat mengganti akun layanan ini dengan akun layanan VM kustom saat membuat cluster.

Pemberian peran ke akun layanan Agen Layanan di jaringan VPC Bersama

Jika cluster Managed Service untuk Apache Spark menggunakan jaringan VPC Bersama, Admin VPC Bersama harus memberikan peran Network User untuk project host VPC Bersama kepada akun layanan Managed Service untuk Apache Spark Service Agent. Untuk informasi selengkapnya, lihat referensi berikut:

Membuat cluster dengan akun layanan VM kustom

Saat membuat cluster, Anda dapat menentukan akun layanan VM kustom yang akan digunakan cluster untuk operasi bidang data Managed Service untuk Apache Spark, bukan akun layanan VM default (Anda tidak dapat mengubah akun layanan VM setelah cluster dibuat). Menggunakan akun layanan VM dengan peran IAM yang ditetapkan memungkinkan Anda memberikan akses terperinci ke resource project kepada cluster.

Langkah-langkah awal

  1. Buat akun layanan VM kustom dalam project tempat cluster akan dibuat.

  2. Berikan peran Managed Service for Apache Spark Worker pada project dan peran tambahan apa pun yang diperlukan oleh tugas Anda, seperti peran Reader dan Writer BigQuery (lihat Peran Managed Service untuk Apache Spark) ke akun layanan VM kustom.

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Dataproc Worker di level project kepada akun layanan VM kustom di project cluster:
    gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role="roles/dataproc.worker"
     
    • Pertimbangkan peran khusus: Daripada memberikan peran Dataproc Worker (roles/dataproc.worker) yang telah ditetapkan sebelumnya ke akun layanan, Anda dapat memberikan peran khusus yang berisi izin peran Worker, tetapi membatasi izin storage.objects.*.

Membuat cluster

  • Buat cluster di project Anda.

KonsolGoogle Cloud

Menetapkan akun layanan VM Managed Service untuk Apache Spark di konsol tidak didukung. Untuk menetapkan cakupan akses cloud-platform pada VM cluster saat Anda membuat cluster:

  1. Buka halaman Create cluster.
  2. Klik Additional configuration untuk meluaskan bagian tersebut.
  3. Edit Keamanan.
  4. Di panel yang terbuka, di bagian Project access, centang kotak Enables the cloud-platform scope for this cluster.

gcloud CLI

Gunakan perintah gcloud dataproc clusters create untuk membuat cluster dengan akun layanan VM kustom.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --scopes=SCOPE

Ganti kode berikut:

  • CLUSTER_NAME: Nama cluster, yang harus unik dalam sebuah project. Nama harus diawali dengan huruf kecil, dan dapat berisi hingga 51 huruf kecil, angka, dan tanda hubung. ID tidak boleh diakhiri dengan tanda hubung. Nama cluster yang dihapus dapat digunakan kembali.
  • REGION: Region tempat cluster akan berada.
  • SERVICE_ACCOUNT_NAME: Nama akun layanan.
  • PROJECT_ID: Google Cloud Project ID dari project yang berisi akun layanan VM Anda. Ini akan menjadi ID project tempat cluster Anda akan dibuat atau ID project lain jika Anda membuat cluster dengan akun layanan VM kustom di project lain.
  • SCOPE: Cakupan akses untuk instance VM cluster (misalnya, https://www.googleapis.com/auth/cloud-platform).

REST API

Saat menyelesaikan GceClusterConfig sebagai bagian dari permintaan API clusters.create, tetapkan kolom berikut:

Membuat cluster dengan akun layanan VM kustom dari project lain

Saat membuat cluster, Anda dapat menentukan akun layanan VM kustom yang akan digunakan cluster untuk operasi bidang data Managed Service untuk Apache Spark, alih-alih menggunakan akun layanan VM default (Anda tidak dapat menentukan akun layanan VM kustom setelah cluster dibuat). Menggunakan akun layanan VM kustom dengan peran IAM yang ditetapkan memungkinkan Anda memberikan akses terperinci ke resource project kepada cluster.

Langkah-langkah awal

  1. Dalam project akun layanan (project tempat akun layanan VM kustom berada):

    1. Mengaktifkan akun layanan untuk dilampirkan di seluruh project.

    2. Aktifkan Dataproc API, jika belum diaktifkan.

      Peran yang diperlukan untuk mengaktifkan API

      Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

      Mengaktifkan API

  2. Berikan peran Service Account User ke akun email Anda (pengguna yang membuat cluster) di project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan.

    Untuk informasi selengkapnya: Lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di level project dan Mengelola akses ke akun layanan untuk memberikan peran di level akun layanan.

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Service Account User kepada pengguna di level project:
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member=USER_EMAIL \
        --role="roles/iam.serviceAccountUser"
    

    Catatan: USER_EMAIL: Berikan alamat email akun pengguna Anda, dalam format: user:user-name@example.com.

    • Contoh perintah berikut memberikan peran Service Account User kepada pengguna di level akun layanan:
    gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \
        --member=USER_EMAIL \
        --role="roles/iam.serviceAccountUser"
    

    Catatan: USER_EMAIL: Berikan alamat email akun pengguna Anda, dalam format: user:user-name@example.com.

  3. Berikan peran Managed Service untuk Apache Spark Worker kepada akun layanan VM kustom di project cluster.

    Contoh gcloud CLI:

    gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \
        --role="roles/dataproc.worker"
     
  4. Berikan peran akun layanan Managed Service for Apache Spark Service Agent di project cluster, peran Service Account User dan Service Account Token Creator pada project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan. Dengan melakukan ini, Anda mengizinkan akun layanan agen layanan Dataproc di project cluster untuk membuat token bagi akun layanan VM Dataproc kustom di project akun layanan.

    Untuk informasi selengkapnya: Lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di level project dan Mengelola akses ke akun layanan untuk memberikan peran di level akun layanan.

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Service Account User dan Service Account Token Creator di level project kepada akun layanan Managed Service for Apache Spark Service Agent di project cluster:
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
        --role="roles/iam.serviceAccountUser"
     
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
        --role="roles/iam.serviceAccountTokenCreator"
    
    • Contoh perintah berikut memberikan peran Service Account User dan Service Account Token Creator kepada akun layanan Managed Service for Apache Spark Service Agent di project cluster pada level akun layanan VM:
    gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
        --role="roles/iam.serviceAccountUser"
     
    gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
        --role="roles/iam.serviceAccountTokenCreator"
    
  5. Berikan peran Service Account Token Creator kepada akun layanan Agen Layanan Compute Engine di project cluster pada project akun layanan atau, untuk kontrol yang lebih terperinci, akun layanan VM kustom di project akun layanan. Dengan melakukan ini, Anda memberi akun layanan Compute Agent Service Agent di project cluster kemampuan untuk membuat token untuk akun layanan VM Dataproc kustom di project akun layanan.

    Untuk informasi selengkapnya: Lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di level project dan Mengelola akses ke akun layanan untuk memberikan peran di level akun layanan.

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Service Account Token Creator di level project kepada akun layanan Agen Layanan Compute Engine di project cluster:
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role="roles/iam.serviceAccountTokenCreator"
     
    • Contoh perintah berikut memberikan peran Service Account Token Creator kepada akun layanan Agen Layanan Compute Engine di project cluster pada level akun layanan VM:
    gcloud iam service-accounts add-iam-policy-binding VM_SERVICE_ACCOUNT_EMAIL \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role="roles/iam.serviceAccountTokenCreator"
     

Membuat cluster

Langkah berikutnya