Akun layanan Dataproc

Halaman ini menjelaskan akun layanan dan cakupan akses VM serta cara penggunaannya dengan Dataproc.

Persyaratan keamanan mulai 3 Agustus 2020: Pengguna Dataproc harus memiliki izin ActAs akun layanan untuk men-deploy resource Dataproc, seperti membuat cluster dan mengirimkan tugas. Peran Pengguna Akun Layanan memiliki izin ini. Lihat Peran untuk autentikasi akun layanan untuk mengetahui informasi tentang peran Dataproc yang diperlukan.

Ikut serta untuk pengguna Dataproc lama: Pengguna Dataproc lama per 3 Agustus 2020 dapat memilih untuk ikut serta dalam persyaratan keamanan ini (lihat Mengamankan Dataproc, 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 mengotorisasi dirinya sendiri ke serangkaian API dan melakukan tindakan di VM dalam izin yang diberikan ke akun layanan.

Akun layanan cluster Dataproc

Akun layanan berikut harus memiliki izin yang diperlukan untuk melakukan tindakan Dataproc di project tempat cluster Anda berada.

Akun layanan VM Dataproc

VM di cluster Dataproc menggunakan akun layanan untuk operasi bidang data Dataproc. 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 Dataproc Worker, yang mencakup izin yang diperlukan untuk operasi bidang data Dataproc. Untuk mengetahui informasi selengkapnya, lihat Peran Dataproc.

Melihat peran akun layanan VM

Untuk melihat peran yang diberikan ke akun layanan VM Dataproc, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Klik Sertakan pemberian peran yang disediakan Google.

  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 Dataproc 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 Dataproc Service Agent

Dataproc membuat akun layanan Service Agent, service-project_number@dataproc-accounts.iam.gserviceaccount.com, dan memberikan peran Dataproc Service Agent kepada akun layanan di project Google Cloud . Akun layanan ini menjalankan operasi bidang kontrol Dataproc, 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 Dataproc menggunakan jaringan VPC Bersama, Admin VPC Bersama harus memberikan peran Pengguna Jaringan untuk project host VPC Bersama kepada akun layanan Agen Layanan Dataproc. 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 Dataproc, bukan akun layanan VM default (Anda tidak dapat mengubah akun layanan VM setelah cluster dibuat). Dengan menggunakan akun layanan VM yang diberi peran IAM, Anda dapat memberikan akses terperinci ke resource project untuk cluster Anda.

Langkah-langkah awal

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

  2. Berikan peran Dataproc Worker kepada akun layanan VM kustom di project dan peran tambahan yang diperlukan oleh tugas Anda, seperti peran Pembaca dan Penulis BigQuery (lihat Peran Dataproc).

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Dataproc Worker di tingkat 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 Pekerja Dataproc bawaan (roles/dataproc.worker) kepada akun layanan, Anda dapat memberikan peran khusus yang berisi izin peran Pekerja, tetapi membatasi izin storage.objects.*.
      • Peran kustom setidaknya harus memberikan izin storage.objects.create, storage.objects.get, dan storage.objects.update akun layanan VM pada objek di bucket sementara dan penyiapan Dataproc dan pada bucket tambahan yang diperlukan oleh tugas yang akan berjalan di cluster.

Membuat cluster

  • Buat cluster di project Anda.

Perintah gcloud

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 project. Nama harus diawali dengan huruf kecil, dan dapat berisi hingga 51 huruf kecil, angka, dan tanda hubung. 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 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:

Konsol

Menetapkan akun layanan VM Dataproc di konsol Google Cloud tidak didukung. Anda dapat menetapkan cloud-platform cakupan akses di VM cluster saat membuat cluster dengan mengklik "Enables the cloud-platform scope for this cluster" di bagian Project access pada panel Manage security di halaman Create a cluster Dataproc di konsol Google Cloud .

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 Dataproc, bukan menggunakan akun layanan VM default (Anda tidak dapat menentukan akun layanan VM kustom setelah cluster dibuat). Dengan menggunakan akun layanan VM kustom dengan peran IAM yang ditetapkan, Anda dapat memberikan akses yang lebih terperinci ke resource project untuk cluster Anda.

Langkah-langkah awal

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

    1. Mengaktifkan akun layanan untuk dilampirkan di seluruh project.

    2. Enable the Dataproc API.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

  2. Berikan peran Service Account User kepada 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 mengetahui informasi selengkapnya: Lihat Mengelola akses ke project, folder, dan organisasi untuk memberikan peran di tingkat project dan Mengelola akses ke akun layanan untuk memberikan peran di tingkat akun layanan.

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Service Account User kepada pengguna di tingkat 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 tingkat 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. Beri akun layanan VM kustom peran Dataproc Worker 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 Service Account User dan Service Account Token Creator kepada akun layanan Agen Layanan Dataproc di project cluster, baik di project akun layanan maupun, untuk kontrol yang lebih terperinci, di akun layanan VM kustom di project akun layanan. Dengan melakukannya, Anda mengizinkan akun layanan agen layanan Dataproc di project cluster untuk membuat token bagi akun layanan VM Dataproc kustom di project akun layanan.

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

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Service Account User dan Service Account Token Creator kepada akun layanan Dataproc Service Agent di project cluster pada tingkat project:
    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 Dataproc Service Agent di project cluster pada tingkat 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 melakukannya, Anda memberikan kemampuan kepada akun layanan Compute Agent Service Agent di project cluster untuk membuat token bagi akun layanan VM Dataproc kustom di project akun layanan.

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

    Contoh gcloud CLI:

    • Contoh perintah berikut memberikan peran Pembuat Token Akun Layanan kepada akun layanan Agen Layanan Compute Engine di project cluster pada tingkat project:
    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 tingkat 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