Ringkasan pengambilan kredensial

Pemberian kredensial untuk katalog runtime Lakehouse memungkinkan Anda mendelegasikan akses penyimpanan dan menerapkan izin presisi ke file data Anda. Sebagai bagian dari Lakehouse untuk Apache Iceberg, kemampuan ini memungkinkan Anda mengelola kebijakan Identity and Access Management (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 penjualan kredensial, urutan pemrosesan kueri akan sedikit berubah untuk menerapkan kebijakan sebelum data dibaca:

  1. Permintaan: Pengguna mengirimkan kueri SQL ke mesin yang didukung (misalnya, Apache Spark atau BigQuery).
  2. Pencarian metadata: Mesin mengirimkan permintaan ke katalog runtime Lakehouse untuk menyelesaikan tabel.
  3. Autentikasi dan kebijakan: Katalog mengautentikasi pengguna dan memeriksa izin IAM mereka pada resource Lakehouse Google Cloud.
  4. Respons: Karena penjualan kredensial diaktifkan, katalog menampilkan metadata dan token penyimpanan berumur pendek (kredensial penyimpanan yang diperkecil cakupannya) ke mesin.
  5. Baca: Mesin menggunakan token ini untuk membaca file resmi tertentu langsung dari Cloud Storage.
  6. Compute: Mesin memproses data 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: Harus diberi peran Storage Object User (roles/storage.objectUser) secara eksplisit di bucket Cloud Storage target. Secara default, akun layanan ini dibuat dengan akses hanya lihat. Tanpa akses admin objek, kredensial yang disediakan tidak dapat melakukan penulisan penyimpanan. (Catatan: Jika mengonfigurasi melalui UI konsol, mengklik Setel izin bucket akan memverifikasi peran ini. Untuk penyiapan gcloud, Terraform, atau API, peran ini harus diberikan 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) di tingkat project untuk mendapatkan kredensial yang disediakan dengan cakupan tulis.

Langkah berikutnya