Mengakses endpoint gRPC untuk Dataproc Metastore

Halaman ini menjelaskan cara memberi akun pengguna Google Cloud atau akun layanan akses 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 akan mengontrol jumlah metadata yang dapat diakses oleh akun. Misalnya, Anda dapat memilih untuk memberikan akses ke metadata yang tersimpan dalam database tertentu, tabel tertentu, atau Anda dapat memberikan akses ke seluruh project Anda.
  • Akun utama yang memerlukan akses. Anda menggunakan akun utama 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 yang telah ditetapkan 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 Metadata Viewer (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 termasuk dalam project dalam perimeter. Untuk informasi lebih lanjut, lihat Kontrol Layanan VPC dengan Dataproc Metastore.

Peran yang Diperlukan

Untuk mendapatkan izin yang diperlukan untuk memberikan akses utama ke metadata Dataproc Metastore, minta administrator untuk memberi Anda peran IAM berikut pada project, sambil tetap mengikuti prinsip hak istimewa terendah:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk memberikan akses utama ke metadata Dataproc Metastore. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

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

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

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

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

Memberi akun utama akses ke metadata

Anda dapat memberikan akses ke metadata kepada akun utama pada level project, level layanan, level database, atau level tabel.

Memberikan akses di level project

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

gcloud CLI

Untuk memberikan peran metadata ke semua layanan Dataproc Metastore dalam project tertentu, 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: Project ID Google Cloud yang ingin Anda beri akses metadata.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama.
  • 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 pada tingkat layanan

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

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 Anda beri akses.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama:
  • 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 pada tingkat database

Untuk memberikan akses ke semua metadata Dataproc Metastore dalam 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 Anda beri akses metadata. Anda mendapatkan ID ini dari skema database Anda.
  • PROJECT: Project ID Google Cloud yang berisi layanan Dataproc Metastore yang Anda berikan akses metadata.
  • LOCATION: Region dari layanan Dataproc Metastore yang Anda beri akses.
  • SERVICE_ID: ID atau ID yang sepenuhnya memenuhi syarat untuk layanan Dataproc Metastore Anda.
  • PRINCIPAL: Jenis dan ID email (alamat email) akun utama:
  • 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 pada tingkat tabel

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

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 Anda beri akses. Anda mendapatkan ID ini dari skema database Anda.
  • DATABASE_ID: ID database yang berisi tabel yang Anda berikan akses metadata. Anda mendapatkan ID ini dari skema database Anda.
  • PROJECT: Project ID Google Cloud yang berisi layanan Dataproc Metastore yang Anda berikan akses metadata.
  • LOCATION: Region dari layanan Dataproc Metastore yang Anda beri akses 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 menggunakan layanan Dataproc Metastore sebagai Hive Metastore-nya.

Langkah selanjutnya