Lakehouse untuk Apache Iceberg mendukung kontrol akses tingkat tabel untuk tabel Apache Iceberg di Cloud Storage yang menggunakan katalog runtime Lakehouse.
Katalog runtime Lakehouse mengelola metadata tabel, sementara kebijakan Identity and Access Management (IAM) menentukan izin. CLI gcloud menyediakan perintah yang diperlukan untuk mendapatkan dan menyetel kebijakan IAM ini.
Sebelum memulai
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
-
Mengaktifkan BigLake API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. - Instal dan inisialisasi Google Cloud SDK.
- Pastikan Anda memiliki endpoint dan namespace katalog REST Apache Iceberg yang ada.
- Pastikan Anda memiliki tabel Iceberg Lakehouse yang ada dalam katalog dan namespace yang ditentukan.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola Daftar Kontrol Akses (ACL) untuk tabel Iceberg, minta administrator Anda untuk memberi Anda peran IAM berikut:
- Semua: Admin BigLake (roles/biglake.admin) di project
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 pokok yang memiliki peran dan izin tertentu untuk resource. Anda dapat mengelola akses ke resource dengan mendapatkan dan menetapkan kebijakan ini.
Peran IAM yang relevan
Anda dapat menerapkan peran IAM umum berikut ke resource Lakehouse:
roles/biglake.admin: memberikan kontrol penuh atas resource Lakehouse.roles/biglake.user: memungkinkan prinsipal 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: berikan hanya izin yang diperlukan kepada pengguna dan akun layanan.
- Gunakan ETag: selalu sertakan
etagdari panggilanget-iam-policyterbaru dalam file kebijakan Anda saat menggunakanset-iam-policyuntuk 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 tabel
Bagian berikut menunjukkan cara menerapkan ACL ke tabel.
Mendapatkan kebijakan IAM
Untuk melihat kebijakan IAM saat ini pada tabel Iceberg Lakehouse, gunakan perintah gcloud biglake iceberg tables
get-iam-policy.
Untuk mendapatkan kebijakan IAM, jalankan perintah berikut:
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDGanti kode berikut:
TABLE_NAME: nama tabel Iceberg Lakehouse target.CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.NAMESPACE_NAME: nama namespace dalam katalog.PROJECT_ID: Google Cloud Project ID Anda.
Perintah ini akan menampilkan kebijakan IAM dalam format YAML, yang menampilkan binding dan anggota peran saat ini.
Menetapkan kebijakan IAM
Untuk memperbarui kebijakan IAM pada 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.
Buat file kebijakan lokal dalam format JSON atau YAML. File kebijakan harus berisi binding dan
etag. Nilaietagmemberikan kontrol konkurensi yang optimis untuk mencegah perubahan ditimpa. Untuk mendapatkanetagsaat ini, jalankan perintahget-iam-policyterlebih 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 }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_IDGanti kode berikut:
TABLE_NAME: nama tabel Iceberg Lakehouse 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: Google Cloud Project ID Anda.
Langkah berikutnya
- Pelajari IAM lebih lanjut.
- Lihat daftar lengkap peran dan izin IAM Lakehouse.
- Pelajari konsep Lakehouse.