Pemberian kredensial untuk katalog runtime Lakehouse memungkinkan Anda mendelegasikan akses penyimpanan dan menerapkan izin terperinci ke file data Anda. Sebagai bagian dari Lakehouse tanpa batas, kemampuan ini memungkinkan Anda mengelola kebijakan Pengelolaan Akses dan Identitas (IAM) di tingkat tabel untuk tabel yang disimpan di Cloud Storage.
Anda dapat menggunakan gcloud CLI untuk mendapatkan dan menetapkan kebijakan ini guna mengontrol akses ke
resource Anda.
Cara kerja penyediaan kredensial
Saat Anda menggunakan penyediaan kredensial, urutan operasi akan sedikit berubah untuk menerapkan kebijakan sebelum penyimpanan diakses. Diagram berikut menggambarkan cara mesin kueri mendapatkan token penyimpanan yang cakupannya dikecilkan dari katalog untuk membaca dan menulis data secara langsung di Cloud Storage dengan aman:
Urutan operasi yang ditampilkan dalam diagram sebelumnya adalah sebagai berikut:
- Permintaan: Pengguna mengirimkan pernyataan SQL, seperti kueri, DML, atau operasi DDL, ke mesin yang didukung. Misalnya, Apache Spark atau BigQuery.
- Pencarian metadata: Mesin mengirim permintaan ke katalog runtime Lakehouse untuk menyelesaikan tabel.
- Autentikasi dan kebijakan: Katalog mengautentikasi pengguna dan memeriksa izin IAM mereka pada resource Lakehouse Google Cloud.
- Respons: Karena penyediaan kredensial diaktifkan, katalog menampilkan metadata dan token penyimpanan berumur pendek (kredensial penyimpanan yang cakupannya dipersempit) ke mesin. Token diberi cakupan ke jalur yang terkait dengan tabel dan diperkecil cakupannya ke izin minimum yang diperlukan (misalnya, akses hanya baca untuk kueri yang tidak perlu menulis file).
- Akses: Mesin menggunakan token ini untuk membaca atau menulis file resmi tertentu langsung dari Cloud Storage.
- Compute: Mesin memproses data atau menjalankan operasi, dan menampilkan hasilnya.
Mesin yang didukung
Untuk menggunakan penyediaan kredensial dengan mesin kueri, katalog REST Iceberg Lakehouse Anda harus dikonfigurasi untuk mendukung penyediaan kredensial.
- Mesin open source: Mesin yang didukung seperti Apache Spark dan Trino menggunakan token penyimpanan berumur pendek yang disediakan oleh katalog. Aplikasi
klien Anda harus menentukan dukungan untuk penyediaan kredensial di header
X-Iceberg-Access-Delegation. - BigQuery: BigQuery menggunakan kredensial yang disediakan untuk akses Cloud Storage, bukan kredensial pengguna akhir.
Izin akun layanan yang diperlukan
Jika credential vending diaktifkan, pastikan akun layanan berikut memiliki peran yang diperlukan:
- Akun layanan katalog runtime Lakehouse yang disediakan otomatis: Anda harus memberikan peran Storage Object User (
roles/storage.objectUser) ke akun ini di semua bucket Cloud Storage terkait. Tanpa akses ini, kredensial yang disediakan tidak dapat membaca atau menulis ke penyimpanan. Jika Anda menggunakan Google Cloud konsol, mengklik Setel izin bucket akan memverifikasi peran ini. Untuk gcloud CLI, Terraform, atau API, Anda harus memberikan peran ini secara manual. - Akun layanan mesin kueri: Akun layanan yang menjalankan tugas mesin kueri (seperti Managed Service untuk Apache Spark, Managed Service untuk Apache Spark, atau Dataflow) memerlukan peran Editor BigLake (
roles/biglake.editor) untuk mendapatkan kredensial yang disediakan dengan cakupan tulis.
Langkah berikutnya
- Pelajari cara membuat katalog dalam mode penjualan kredensial.
- Pelajari cara mengaktifkan penyediaan kredensial untuk katalog yang ada menggunakan
Google Cloud konsol.
- Pelajari cara mengonfigurasi aplikasi klien untuk penyediaan kredensial.