Komponen Ranger opsional Managed Service untuk Apache Spark

Komponen opsional Apache Ranger memungkinkan Anda mengelola izin dan audit untuk ekosistem Hadoop di cluster Managed Service untuk Apache Spark. Saat Anda menginstal komponen ini selama pembuatan cluster, server Ranger admin dan UI Web tersedia di port 6080 pada node master pertama cluster.

Untuk tugas dan panduan terkait, lihat cara menggunakan Ranger dengan Kerberos, mencadangkan dan memulihkan skema Ranger, serta meninjau praktik terbaik untuk menggunakan Apache Ranger di Managed Service untuk Apache Spark.

Menginstal komponen

Instal komponen saat Anda membuat cluster Managed Service untuk Apache Spark. Komponen dapat ditambahkan ke cluster yang dibuat dengan Managed Service untuk Apache Spark versi 1.3 dan yang lebih baru. Komponen Ranger memerlukan penginstalan komponen Solr.

Lihat Versi Managed Service untuk Apache Spark yang didukung untuk mengetahui versi komponen yang disertakan dalam setiap rilis image Managed Service untuk Apache Spark.

Langkah-langkah penginstalan:

  1. Siapkan sandi admin Ranger Anda:

    1. Berikan peran Cloud Key Management Service CryptoKey Encrypter/Decrypter ke akun layanan cluster. Secara default, akun layanan cluster ditetapkan sebagai akun layanan default Compute Engine, yang memiliki bentuk berikut:
      project-number-compute@
      
      Anda dapat menentukan akun layanan cluster yang berbeda saat membuat cluster.
      1. Contoh: Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter ke akun layanan default Compute Engine:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@ \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Enkripsi sandi admin Ranger Anda menggunakan kunci Key Management Service (KMS). Untuk cluster versi image sebelum 2.2, sandi harus terdiri dari minimal 8 karakter, dengan minimal satu karakter alfabet dan satu karakter numerik. Untuk cluster versi image 2.2 dan yang lebih baru, sandi harus terdiri dari minimal 8 karakter, dengan minimal satu huruf besar, satu huruf kecil, dan satu karakter numerik.
      1. Contoh:
        1. Buat key ring:
          gcloud kms keyrings create my-keyring --location=global
          
        2. Buat kunci:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Enkripsi sandi pengguna admin Ranger Anda:
          echo 'my-ranger-admin-password' | \
            gcloud kms encrypt \
              --location=global \
              --keyring=my-keyring \
              --key=my-key \
              --plaintext-file=- \
              --ciphertext-file=admin-password.encrypted
          
    3. Upload sandi terenkripsi ke bucket Cloud Storage di project Anda.
      1. Contoh:
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. Buat cluster Anda:

    1. Saat menginstal komponen Ranger, komponen Solr juga harus diinstal.
      1. Komponen Ranger mengandalkan komponen Solr untuk menyimpan dan membuat kueri log auditnya, yang secara default menggunakan HDFS sebagai penyimpanan. Data HDFS ini akan dihapus saat cluster dihapus. Untuk mengonfigurasi komponen Solr agar menyimpan data, termasuk log audit Ranger, di Cloud Storage, gunakan properti cluster dataproc:solr.gcs.path=gs://<bucket> saat Anda membuat cluster. Data Cloud Storage tetap ada setelah cluster dihapus.
    2. Teruskan URI Cloud Storage kunci KMS dan sandi ke perintah pembuatan cluster dengan menetapkan properti cluster dataproc:ranger.kms.key.uri dan dataproc:ranger.admin.password.uri.
    3. Secara opsional, Anda dapat meneruskan sandi pengguna admin database Ranger melalui URI file Cloud Storage yang dienkripsi dengan menetapkan properti cluster dataproc:ranger.db.admin.password.uri.
    4. Secara default, komponen Ranger menggunakan instance database MySql yang berjalan di node master pertama cluster. Untuk mempertahankan database Ranger setelah penghapusan cluster, Anda dapat mengonfigurasi cluster untuk menggunakan instance Cloud SQL eksternal. Untuk menggunakan instance Cloud SQL eksternal, lakukan hal berikut:

      1. Sebelum membuat cluster, Anda harus mengonfigurasi instance Cloud SQL untuk mengaktifkan flag database log_bin_trust_function_creators dengan menetapkannya ke on. Hal ini memungkinkan skrip penyiapan skema Ranger berjalan selama pembuatan cluster. Setelah pembuatan cluster berhasil, Anda dapat mereset flag ini ke off.
      2. Tetapkan properti cluster dataproc:ranger.cloud-sql.instance.connection.name ke instance Cloud SQL.
      3. Tetapkan properti cluster dataproc:ranger.cloud-sql.root.password.uri ke URI Cloud Storage dari sandi root yang dienkripsi kunci KMS dari instance Cloud SQL.
      4. Tetapkan properti cluster dataproc:ranger.cloud-sql.use-private-ip untuk menunjukkan apakah koneksi ke instance Cloud SQL menggunakan IP pribadi.

      Saat menggunakan instance Cloud SQL eksternal, komponen Ranger menggunakan Proxy Auth Cloud SQL untuk terhubung ke instance Cloud SQL. Untuk menggunakan proxy:

      1. Tetapkan cakupan API sqlservice.admin saat Anda membuat cluster (lihat Mengizinkan permintaan dengan OAuth 2.0). Jika menggunakan perintah gcloud dataproc cluster create, tambahkan parameter --scopes=default,sql-admin.
      2. Aktifkan SQL Admin API di project Anda.
      3. Pastikan akun layanan cluster memiliki peran Cloud SQL Editor.
      4. Karena Cloud SQL Auth Proxy pada node master membuat koneksi egress ke instance Cloud SQL melalui port 3307, pastikan koneksi TCP egress dari node master ke instance Cloud SQL melalui port 3307 diizinkan. Untuk mengetahui informasi selengkapnya, lihat Cara kerja Cloud SQL Auth Proxy.

    KonsolGoogle Cloud

    1. Di konsol Google Cloud , buka halaman Create cluster.
    2. Klik Additional configuration untuk meluaskan bagian tersebut.
    3. Edit Optional components.
    4. Di panel yang terbuka, centang kotak untuk Ranger dan Solr, lalu klik Save.

    gcloud CLI

    Untuk membuat cluster Managed Service untuk Apache Spark yang menyertakan komponen Ranger, gunakan perintah gcloud dataproc clusters create cluster-name dengan flag --optional-components.

    gcloud dataproc clusters create cluster-name \
        --optional-components=SOLR,RANGER \
        --region=region \
        --enable-component-gateway \
        --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \
        ... other flags
    

    REST API

    Tentukan komponen Ranger dan Solr di kolom SoftwareConfig.Component sebagai bagian dari permintaan clusters.create Dataproc API. Anda juga harus menetapkan properti cluster berikut di kolom SoftwareConfig.Component.properties:

    1. dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"
    2. dataproc:ranger.admin.password.uri : "gs://my-bucket/admin-password.encrypted"

Klik tab Antarmuka web. Di bagian Component gateway, klik Ranger untuk membuka antarmuka web Ranger. Login dengan nama pengguna admin Ranger (misalnya, "admin") dan sandi.

Log Ranger Admin

Log admin Ranger tersedia di Logging sebagai log ranger-admin-root.