Mengakses endpoint gRPC untuk Dataproc Metastore

Halaman ini menjelaskan cara memberikan akses akun pengguna Google Cloud atau akun layanan ke layanan Dataproc Metastore yang menggunakan protokol endpoint gRPC.

Tentang memberikan peran metadata gRPC

Saat memberikan akses akun ke metadata Anda, pertimbangkan konsep berikut:

  • Tingkat akses yang akan diberikan. Tingkat akses yang Anda berikan mengontrol jumlah metadata yang dapat diakses akun. Misalnya, Anda dapat memilih untuk memberikan akses ke metadata yang disimpan di database tertentu, tabel tertentu, atau memberikan akses ke seluruh project.
  • Prinsipal yang memerlukan akses. Anda menggunakan akun utama (identitas) IAM untuk menjalankan tugas. Misalnya, Anda dapat menjalankan tugas cluster Dataproc dengan akun pengguna atau akun layanan (biasanya akun layanan VM Dataproc).

    Untuk informasi selengkapnya tentang akun yang dapat Anda gunakan dengan Dataproc Metastore, lihat Akun layanan Dataproc.

Bergantung pada cakupan kontrol yang diperlukan, berikan salah satu peran IAM bawaan berikut kepada akun utama Anda:

  • Untuk memberikan akses penuh ke resource metadata. Peran Pemilik Metadata (roles/metastore.metadataOwner)
  • Untuk memberikan akses baca-tulis ke metadata: Peran Editor Metadata roles/metastore.metadataEditor)
  • Untuk memberikan akses baca ke metadata: Peran Pelihat Metadata (roles/metastore.metadataViewer)

Sebelum memulai

  • Aktifkan Dataproc Metastore di project Anda.
  • Buat layanan metastore yang menggunakan protokol gRPC.
  • Pahami persyaratan jaringan khusus untuk project Anda.

    • Persyaratan gRPC dan Virtual Private Cloud (VPC). Jika menggunakan gRPC, Anda tidak perlu mengonfigurasi VPC Bersama atau menetapkan konfigurasi jaringan tambahan. Secara default, endpoint gRPC dapat dijangkau dari VPC mana pun.

    Namun, ada satu pengecualian. Jika project Anda menggunakan perimeter layanan VPC-SC, endpoint gRPC hanya dapat dijangkau dari VPC yang dimiliki project dalam perimeter. Untuk mengetahui informasi selengkapnya, lihat Kontrol Layanan VPC dengan Dataproc Metastore.

Peran yang Diperlukan

Untuk mendapatkan izin yang Anda perlukan guna memberikan akses akun utama ke metadata Dataproc Metastore, minta administrator untuk memberi Anda peran IAM berikut di project Anda, dengan mengikuti prinsip hak istimewa minimum:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk memberikan akses akun utama ke metadata Metastore Dataproc. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk memberikan akses akun utama ke metadata Dataproc Metastore:

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Untuk mengetahui informasi selengkapnya tentang peran dan izin Dataproc Metastore tertentu, lihat Ringkasan IAM Dataproc Metastore.

Memberikan akses metadata ke akun utama

Anda dapat memberikan akses metadata ke akun utama di tingkat project, tingkat layanan, tingkat database, atau tingkat tabel.

Memberikan akses di tingkat project

Untuk memberikan akses ke semua metadata Dataproc Metastore di tingkat project, Anda harus memberikan peran metadata ke akun utama.

gcloud CLI

Untuk memberikan peran metadata ke semua layanan Dataproc Metastore di project yang ditentukan, jalankan perintah gcloud projects add-iam-policy-binding berikut:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=PRINCIPAL \
    --role=METASTORE_ROLE

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud yang ingin Anda beri akses metadata.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama.
    • Untuk akun pengguna: user:EMAIL_ID
    • Untuk akun layanan: serviceAccount:EMAIL_ID
    • Untuk Google Grup: group:EMAIL_ID
    • Untuk jenis akun utama lainnya: Konsep yang terkait dengan identitas
  • METASTORE_ROLE: Salah satu peran berikut, bergantung pada cakupan akses yang ingin Anda berikan kepada akun utama: roles/metastore.metadataViewer, roles/metastore.metadataEditor, atau roles/metastore.metadataOwner.

Memberikan akses di tingkat layanan

Untuk memberikan akses ke semua metadata Dataproc Metastore di tingkat layanan, Anda harus memberikan peran metadata ke akun utama.

gcloud CLI

Untuk memberikan peran metadata pada tingkat perincian satu layanan metastore Dataproc Metastore, jalankan perintah gcloud metastore services add-iam-policy-binding berikut:

gcloud metastore services add-iam-policy-binding SERVICE_ID \
  --location=LOCATION \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Ganti kode berikut:

  • SERVICE_ID: ID atau ID yang sepenuhnya memenuhi syarat untuk layanan Dataproc Metastore Anda.
  • LOCATION: Region Metastore Dataproc yang aksesnya Anda berikan.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama:
    • Untuk akun pengguna: user:EMAIL_ID
    • Untuk akun layanan: serviceAccount:EMAIL_ID
    • Untuk Google Grup: group:EMAIL_ID
    • Untuk jenis akun utama lainnya: Konsep yang terkait dengan identitas
  • METASTORE_ROLE: Salah satu peran berikut, bergantung pada cakupan akses yang ingin Anda berikan kepada akun utama: roles/metastore.metadataViewer,roles/metastore.metadataEditor, atau roles/metastore.metadataOwner.

Memberikan akses di tingkat database

Untuk memberikan akses ke semua metadata Dataproc Metastore di database tertentu, Anda harus menambahkan peran metadata ke akun utama.

gcloud CLI

Untuk memberikan peran metadata pada tingkat perincian database tertentu, jalankan perintah gcloud metastore services databases add-iam-policy-binding berikut:

gcloud metastore services databases add-iam-policy-binding DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Ganti kode berikut:

  • DATABASE_ID: ID database yang akses metadata-nya Anda berikan. Anda mendapatkan ID ini dari skema database.
  • PROJECT: Project ID Google Cloud yang berisi layanan Metastore Dataproc yang Anda beri akses metadata.
  • LOCATION: Region layanan Dataproc Metastore yang aksesnya Anda berikan.
  • SERVICE_ID: ID atau ID yang sepenuhnya memenuhi syarat untuk layanan Dataproc Metastore Anda.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama:
    • Untuk akun pengguna: user:EMAIL_ID
    • Untuk akun layanan: serviceAccount:EMAIL_ID
    • Untuk Google Grup: group:EMAIL_ID
    • Untuk jenis akun utama lainnya: Konsep yang terkait dengan identitas
  • METASTORE_ROLE: Salah satu peran berikut, bergantung pada cakupan akses yang ingin Anda berikan kepada akun utama: roles/metastore.metadataViewer, roles/metastore.metadataEditor, atau roles/metastore.metadataOwner.

Memberikan akses di tingkat tabel

Untuk memberikan akses ke semua metadata Dataproc Metastore dalam tabel tertentu, Anda harus memberikan peran metadata ke akun utama.

gcloud CLI

Untuk memberikan peran metadata pada tingkat perincian tabel, jalankan perintah gcloud metastore services databases tables add-iam-policy-binding berikut:

gcloud metastore services databases tables add-iam-policy-binding TABLE_ID \
  --database=DATABASE_ID \
  --project=PROJECT \
  --location=LOCATION \
  --service=SERVICE_ID \
  --member=PRINCIPAL \
  --role=METASTORE_ROLE

Ganti kode berikut:

  • TABLE_ID: ID tabel yang aksesnya Anda berikan. Anda mendapatkan ID ini dari skema database.
  • DATABASE_ID: ID database yang berisi tabel yang akses metadata-nya Anda berikan. Anda mendapatkan ID ini dari skema database.
  • PROJECT: Project ID Google Cloud yang berisi layanan Dataproc Metastore yang Anda izinkan akses metadatanya.
  • LOCATION: Region layanan Dataproc Metastore yang Anda izinkan untuk mengakses metadata.
  • SERVICE_ID: ID atau ID yang sepenuhnya memenuhi syarat untuk layanan Dataproc Metastore Anda.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama:
    • Untuk akun pengguna: user:EMAIL_ID
    • Untuk akun layanan: serviceAccount:EMAIL_ID
    • Untuk Google Grup: group:EMAIL_ID
  • METASTORE_ROLE: Salah satu peran berikut, bergantung pada cakupan akses yang ingin Anda berikan kepada akun utama: roles/metastore.metadataViewer, roles/metastore.metadataEditor, atau roles/metastore.metadataOwner.

Setelah Anda memberikan akses ke metadata

Setelah memberikan peran yang diperlukan ke akun layanan, Anda dapat menghubungkan Dataproc Metastore ke cluster Dataproc. Cluster Anda kemudian akan menggunakan layanan Dataproc Metastore sebagai Metastore Hive-nya.

Langkah selanjutnya