Lakehouse Tanpa Batas mendukung kontrol akses level katalog, level namespace, dan level 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 konsolGoogle Cloud atau gcloud CLI untuk mendapatkan dan menetapkan kebijakan IAM ini.
Sebelum memulai
-
Pastikan penagihan diaktifkan untuk project Google Cloud Anda.
-
Aktifkan BigLake API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran. - Instal dan lakukan inisialisasi Google Cloud CLI.
- Pastikan Anda memiliki endpoint dan namespace katalog REST Apache Iceberg yang sudah ada.
- Pastikan Anda memiliki tabel Apache Iceberg yang sudah ada dan dikelola oleh Lakehouse dalam katalog dan namespace yang ditentukan.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna mengelola Daftar Kontrol Akses (ACL) untuk katalog, namespace, dan tabel Iceberg, minta administrator untuk memberi Anda peran IAM berikut:
-
Semua:
BigLake Admin (
roles/biglake.admin) untuk 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 akun utama mana yang memiliki peran dan izin tertentu untuk suatu resource. Anda dapat mengelola akses ke resource dengan mendapatkan dan menetapkan kebijakan ini.
Cakupan peran IAM
Anda dapat memberikan peran IAM di berbagai level hierarki resource:
- Level 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 mengetahui daftar lengkap peran yang tersedia dan izin terkaitnya, lihat peran IAM Lakehouse.
roles/biglake.admin: memberikan akses penuh ke semua resource Lakehouse.roles/biglake.editor: memberikan akses baca dan tulis ke semua resource Lakehouse.roles/biglake.viewer: memberikan akses hanya baca ke semua resource Lakehouse.roles/biglake.metadataViewer: memberikan akses metadata hanya baca ke semua resource Lakehouse.
Praktik terbaik
- Hak Istimewa Terendah: hanya memberikan 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 di 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 Iceberg Lakehouse, gunakan perintah gcloud biglake iceberg catalogs
get-iam-policy.
Untuk mendapatkan kebijakan IAM, jalankan perintah berikut:
gcloud biglake iceberg catalogs get-iam-policy CATALOG_NAME \ --project=PROJECT_IDGanti kode berikut:
CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.PROJECT_ID: project ID Google Cloud Anda.
Output perintah menghasilkan kebijakan IAM dalam format YAML, yang menunjukkan binding peran dan anggota saat ini.
Menetapkan kebijakan IAM
Untuk memperbarui kebijakan IAM pada katalog Lakehouse Iceberg, gunakan perintah gcloud biglake iceberg catalogs 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 optimis untuk mencegah penimpaan perubahan. 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.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Untuk menetapkan kebijakan IAM, jalankan perintah berikut:
gcloud biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \ --project=PROJECT_IDGanti kode berikut:
CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.POLICY_FILE: jalur ke file kebijakan lokal Anda.PROJECT_ID: project ID Google Cloud Anda.
Menerapkan peran ACL ke namespace
Bagian berikut menunjukkan cara menerapkan ACL ke namespace.
Konsol Google Cloud tidak menampilkan atau mengelola kebijakan IAM yang diwariskan.
Konsol
Di konsol Google Cloud , buka halaman Lakehouse.
Pilih katalog yang ada atau buat katalog jika Anda belum memilikinya.
Di tabel Namespace details, pilih namespace dan luaskan opsi menu ().
Klik Kelola izin.
Dialog Share permissions akan muncul.
Klik Add principal.
Untuk kolom New Principals, masukkan akun utama yang ingin Anda tetapkan peran.
Untuk Select a role, pilih peran yang akan ditetapkan ke akun utama.
Klik Simpan.
Klik Close.
gcloud
Mendapatkan kebijakan IAM
Untuk melihat kebijakan IAM saat ini pada namespace Iceberg Lakehouse, gunakan perintah gcloud biglake iceberg namespaces
get-iam-policy.
Untuk mendapatkan kebijakan IAM, jalankan perintah berikut:
gcloud biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \ --catalog=CATALOG_NAME \ --project=PROJECT_IDGanti kode berikut:
NAMESPACE_NAME: nama namespace target dalam katalog.CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.PROJECT_ID: project ID Google Cloud Anda.
Output perintah menghasilkan kebijakan IAM dalam format YAML, yang menunjukkan binding peran dan anggota saat ini.
Menetapkan kebijakan IAM
Untuk memperbarui kebijakan IAM pada namespace Lakehouse Iceberg, gunakan perintah gcloud biglake iceberg namespaces 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 optimis untuk mencegah penimpaan perubahan. 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.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Untuk menetapkan kebijakan IAM, jalankan perintah berikut:
gcloud biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --project=PROJECT_IDGanti 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: Google Cloud project ID Anda.
Menerapkan peran ACL ke tabel
Bagian berikut menunjukkan cara menerapkan ACL ke tabel.
Konsol Google Cloud tidak menampilkan atau mengelola kebijakan IAM yang diwariskan.
Konsol
Di konsol Google Cloud , buka halaman Lakehouse.
Pilih katalog yang ada atau buat katalog jika Anda belum memilikinya.
Di tabel Namespace details, klik nama namespace yang berisi tabel Anda.
Di halaman Table details, pilih tabel dan luaskan opsi menu ().
Klik Kelola izin.
Dialog Share permissions akan muncul.
Klik Add principal.
Untuk kolom New Principals, masukkan akun utama yang ingin Anda tetapkan peran.
Untuk Select a role, pilih peran yang akan ditetapkan ke akun utama.
Klik Simpan.
Klik Close.
gcloud
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 Apache Iceberg target.CATALOG_NAME: nama endpoint katalog REST Apache Iceberg.NAMESPACE_NAME: nama namespace dalam katalog.PROJECT_ID: project ID Google Cloud Anda.
Output perintah menghasilkan kebijakan IAM dalam format YAML, yang menunjukkan binding peran dan anggota saat ini.
Menetapkan kebijakan IAM
Untuk memperbarui kebijakan IAM pada tabel Apache Iceberg yang dikelola oleh Lakehouse, 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 optimis untuk mencegah penimpaan perubahan. 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.editor", "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 Apache 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 ID Google Cloud Anda.
Langkah berikutnya
- Pelajari IAM lebih lanjut.
- Lihat daftar lengkap peran dan izin IAM Lakehouse.
- Pelajari konsep Lakehouse.