Mengelola ACL REST Iceberg Lakehouse

Lakehouse untuk Apache Iceberg mendukung kontrol akses tingkat katalog, tingkat namespace, dan tingkat tabel untuk tabel Apache Iceberg di Cloud Storage yang menggunakan katalog runtime Lakehouse.

Katalog runtime Lakehouse mengelola metadata, sedangkan kebijakan Identity and Access Management (IAM) menentukan izin. Anda dapat menggunakan Google Cloud konsol atau gcloud CLI untuk mendapatkan dan menetapkan kebijakan IAM ini.

Sebelum memulai

  1. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  2. Aktifkan BigLake API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan API

  3. Instal dan inisialisasi Google Cloud SDK.
  4. Pastikan Anda memiliki endpoint dan namespace katalog REST Apache Iceberg yang ada.
  5. Pastikan Anda memiliki tabel Lakehouse Iceberg yang ada dalam katalog dan namespace yang ditentukan.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk mengelola Daftar Kontrol Akses (ACL) untuk katalog, namespace, dan tabel Iceberg, minta administrator Anda untuk memberikan peran IAM berikut:

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

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Cara kerjanya

Kebijakan IAM menentukan akun utama mana yang memiliki peran dan izin tertentu untuk resource. Anda dapat mengelola akses ke resource dengan mendapatkan dan menetapkan kebijakan ini.

Cakupan peran IAM

Anda dapat memberikan peran IAM di berbagai tingkat hierarki resource:

  • Tingkat project: Memberikan akses ke semua resource Lakehouse dalam project.
  • Tingkat katalog: Memberikan akses ke resource yang termasuk dalam katalog yang ditentukan.
  • Tingkat namespace: Memberikan akses ke resource yang termasuk dalam namespace yang ditentukan.
  • Tingkat tabel: Memberikan akses hanya ke tabel yang ditentukan.

Peran IAM yang relevan

Daftar berikut menunjukkan beberapa peran IAM umum yang dapat Anda terapkan ke resource Lakehouse. Untuk daftar lengkap peran yang tersedia dan izin terkaitnya, lihat Peran IAM Lakehouse.

  • roles/biglake.admin: memberikan kontrol penuh atas resource Lakehouse.
  • roles/biglake.user: memungkinkan akun utama menggunakan resource Lakehouse, termasuk membaca dan menulis data tabel.
  • roles/biglake.viewer: memungkinkan akun utama melihat resource Lakehouse dan membaca data tabel.

Praktik terbaik

  • Hak Istimewa Terendah: hanya berikan izin yang diperlukan kepada pengguna dan akun layanan.
  • Gunakan Etag: selalu sertakan etag dari panggilan get-iam-policy terbaru dalam file kebijakan Anda saat menggunakan set-iam-policy untuk menghindari penimpaan yang tidak diinginkan.
  • Logging Audit: pastikan Cloud Audit Logs diaktifkan untuk melacak perubahan pada kebijakan IAM.
  • Kontrol Versi: simpan file kebijakan Anda dalam sistem kontrol versi.

Menerapkan peran ACL ke katalog

Bagian berikut menunjukkan cara menerapkan ACL ke katalog.

gcloud

Mendapatkan kebijakan IAM

Untuk melihat kebijakan IAM saat ini di katalog Lakehouse Iceberg, gunakan gcloud alpha biglake iceberg catalogs get-iam-policy perintah.

  1. Untuk mendapatkan kebijakan IAM, jalankan perintah berikut:

    gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.
    • PROJECT_ID: project ID Anda. Google Cloud
  2. Perintah ini akan menampilkan kebijakan IAM dalam format YAML, yang menunjukkan binding dan anggota peran saat ini.

Menetapkan kebijakan IAM

Untuk memperbarui kebijakan IAM di katalog Lakehouse Iceberg, gunakan perintah gcloud alpha biglake iceberg catalogs set-iam-policy. Perintah ini menggunakan file JSON atau YAML lokal yang berisi kebijakan yang ingin Anda terapkan.

  1. Buat file kebijakan lokal dalam format JSON atau YAML. File kebijakan harus berisi binding dan etag. Nilai etag memberikan kontrol konkurensi yang optimis untuk mencegah perubahan yang ditimpa. Untuk mendapatkan etag saat ini, jalankan perintah get-iam-policy terlebih dahulu.

    Contoh berikut menunjukkan file kebijakan bernama policy.json:

    {
      "bindings": [
        {
          "role": "roles/biglake.viewer",
          "members": [
            "user:test-user@example.com"
          ]
        },
        {
          "role": "roles/biglake.user",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Untuk menetapkan kebijakan IAM, jalankan perintah berikut:

    gcloud alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.
    • POLICY_FILE: jalur ke file kebijakan lokal Anda.
    • PROJECT_ID: project Google Cloud ID Anda.

Menerapkan peran ACL ke namespace

Bagian berikut menunjukkan cara menerapkan ACL ke namespace.

Konsol tidak menampilkan atau mengelola kebijakan IAM yang diwarisi. Google Cloud

Konsol

  1. Di Google Cloud konsol, buka halaman Lakehouse.

    Buka Lakehouse

  2. Pilih katalog yang ada atau buat katalog jika Anda belum memilikinya.

  3. Di tabel Namespace details, pilih namespace dan luaskan opsi menu ().

  4. Klik Manage permissions.

    Dialog Share permissions akan muncul.

  5. Klik Add principal.

  6. Untuk kolom New Principals, masukkan akun utama yang ingin Anda tetapkan perannya.

  7. Untuk Select a role, pilih peran yang akan ditetapkan ke akun utama.

  8. Klik Save.

  9. Klik Close.

gcloud

Mendapatkan kebijakan IAM

Untuk melihat kebijakan IAM saat ini di namespace Lakehouse Iceberg, gunakan gcloud alpha biglake iceberg namespaces get-iam-policy perintah.

  1. Untuk mendapatkan kebijakan IAM, jalankan perintah berikut:

    gcloud alpha biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • NAMESPACE_NAME: nama namespace target dalam katalog.
    • CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.
    • PROJECT_ID: project ID Anda. Google Cloud
  2. Perintah ini akan menampilkan kebijakan IAM dalam format YAML, yang menunjukkan binding dan anggota peran saat ini.

Menetapkan kebijakan IAM

Untuk memperbarui kebijakan IAM di namespace Lakehouse Iceberg, gunakan perintah gcloud alpha biglake iceberg namespaces set-iam-policy. Perintah ini menggunakan file JSON atau YAML lokal yang berisi kebijakan yang ingin Anda terapkan.

  1. Buat file kebijakan lokal dalam format JSON atau YAML. File kebijakan harus berisi binding dan etag. Nilai etag memberikan kontrol konkurensi yang optimis untuk mencegah perubahan yang ditimpa. Untuk mendapatkan etag saat ini, jalankan perintah get-iam-policy terlebih dahulu.

    Contoh berikut menunjukkan file kebijakan bernama policy.json:

    {
      "bindings": [
        {
          "role": "roles/biglake.viewer",
          "members": [
            "user:test-user@example.com"
          ]
        },
        {
          "role": "roles/biglake.user",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Untuk menetapkan kebijakan IAM, jalankan perintah berikut:

    gcloud alpha biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • NAMESPACE_NAME: nama namespace target dalam katalog.
    • POLICY_FILE: jalur ke file kebijakan lokal Anda.
    • CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.
    • PROJECT_ID: project Google Cloud ID Anda.

Menerapkan peran ACL ke tabel

Bagian berikut menunjukkan cara menerapkan ACL ke tabel.

Konsol tidak menampilkan atau mengelola kebijakan IAM yang diwarisi. Google Cloud

Konsol

  1. Di Google Cloud konsol, buka halaman Lakehouse.

    Buka Lakehouse

  2. Pilih katalog yang ada atau buat katalog jika Anda belum memilikinya.

  3. Di tabel Namespace details, klik nama namespace yang berisi tabel Anda.

  4. Di halaman Table details, pilih tabel dan luaskan opsi menu ().

  5. Klik Manage permissions.

    Dialog Share permissions akan muncul.

  6. Klik Add principal.

  7. Untuk kolom New Principals, masukkan akun utama yang ingin Anda tetapkan perannya.

  8. Untuk Select a role, pilih peran yang akan ditetapkan ke akun utama.

  9. Klik Save.

  10. Klik Close.

gcloud

Mendapatkan kebijakan IAM

Untuk melihat kebijakan IAM saat ini di tabel Lakehouse Iceberg, gunakan gcloud biglake iceberg tables get-iam-policy perintah.

  1. Untuk mendapatkan kebijakan IAM, jalankan perintah berikut:

    gcloud biglake iceberg tables get-iam-policy TABLE_NAME \
        --catalog=CATALOG_NAME \
        --namespace=NAMESPACE_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • TABLE_NAME: nama tabel Lakehouse Iceberg target.
    • CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.
    • NAMESPACE_NAME: nama namespace dalam katalog.
    • PROJECT_ID: project ID Anda. Google Cloud
  2. Perintah ini akan menampilkan kebijakan IAM dalam format YAML, yang menunjukkan binding dan anggota peran saat ini.

Menetapkan kebijakan IAM

Untuk memperbarui kebijakan IAM di tabel Lakehouse Iceberg, gunakan perintah gcloud biglake iceberg tables set-iam-policy. Perintah ini menggunakan file JSON atau YAML lokal yang berisi kebijakan yang ingin Anda terapkan.

  1. Buat file kebijakan lokal dalam format JSON atau YAML. File kebijakan harus berisi binding dan etag. Nilai etag memberikan kontrol konkurensi yang optimis untuk mencegah perubahan yang ditimpa. Untuk mendapatkan etag saat ini, jalankan perintah get-iam-policy terlebih dahulu.

    Contoh berikut menunjukkan file kebijakan bernama policy.json:

    {
      "bindings": [
        {
          "role": "roles/biglake.viewer",
          "members": [
            "user:test-user@example.com"
          ]
        },
        {
          "role": "roles/biglake.user",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Untuk menetapkan kebijakan IAM, jalankan perintah berikut:

    gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \
        --catalog=CATALOG_NAME \
        --namespace=NAMESPACE_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • TABLE_NAME: nama tabel Lakehouse Iceberg target.
    • POLICY_FILE: jalur ke file kebijakan lokal Anda.
    • CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.
    • NAMESPACE_NAME: nama namespace dalam katalog.
    • PROJECT_ID: project Google Cloud ID Anda.

Langkah berikutnya