Dokumen ini menunjukkan cara menggunakan Workload Identity Federation dengan Google Cloud library autentikasi, yang dikenal sebagai library autentikasi, untuk mengautentikasi workload dari penyedia identitas pihak ketiga seperti AWS, Microsoft Azure, dan penyedia yang mendukung OpenID Connect (OIDC) atau SAML 2.0.
Workload Identity Federation memungkinkan aplikasi yang berjalan di luar Google Cloud mengakses Google Cloud resource tanpa menggunakan kunci akun layanan. Library autentikasi Google memungkinkan hal ini dengan menukarkan kredensial eksternal dengan berjangka pendek Google Cloud token akses.
Untuk autentikasi, Anda dapat memperoleh kredensial eksternal menggunakan metode berikut:
- Mekanisme standar untuk penyiapan umum.
- Pemasok kredensial kustom untuk alur kerja kompleks yang mengharuskan Anda menulis kode sendiri.
Sebelum memulai
Mengaktifkan API yang diperlukan.
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 Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.Konfigurasikan Workload Identity Federation dengan penyedia identitas Anda.
Mengautentikasi menggunakan mekanisme kredensial standar
Untuk penyedia identitas pihak ketiga yang umumnya didukung, Anda dapat menggunakan Google Cloud kemampuan bawaan library autentikasi untuk mengautentikasi workload dengan membuat file konfigurasi kredensial. File ini memberikan informasi yang diperlukan agar library autentikasi dapat menggabungkan identitas dari penyedia eksternal.
File konfigurasi kredensial, yang biasanya dimuat menggunakan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS, dapat menginstruksikan library autentikasi untuk mendapatkan token subjek pihak ketiga menggunakan salah satu metode berikut:
- Dari file: Library membaca token subjek dari file lokal. Proses terpisah harus memastikan file ini berisi token yang valid dan belum habis masa berlakunya.
- Dari URL: Library mengambil token subjek dengan membuat permintaan ke endpoint URL lokal yang ditentukan.
- Dari file yang dapat dieksekusi: Library menjalankan perintah yang dapat dieksekusi yang dikonfigurasi. Output standar dari file yang dapat dieksekusi diharapkan berisi token subjek.
Buat file konfigurasi kredensial untuk penyedia tertentu:
- AWS
- Azure
Penyedia identitas OIDC atau SAML
Halaman ini menyertakan petunjuk untuk hal berikut:
Gunakan file konfigurasi kredensial untuk melakukan autentikasi.
Agar library klien dapat otomatis menemukan dan menggunakan file konfigurasi kredensial Anda, tetapkan variabel lingkungan ke jalur file JSON yang dihasilkan. Google Cloud
GOOGLE_APPLICATION_CREDENTIALSEkspor variabel lingkungan di shell Anda:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.jsonSetelah Anda menetapkan variabel lingkungan, library klien akan menangani alur autentikasi.
Contoh kode berikut menunjukkan cara melakukan panggilan yang diautentikasi ke Google Cloud API:
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Mengautentikasi menggunakan pemasok kredensial kustom
Jika lingkungan Anda tidak mendukung kemampuan bawaan library autentikasi Google atau jika Anda ingin menerapkan logika kustom untuk menyediakan kredensial ke library autentikasi Google, gunakan pemasok kredensial kustom untuk mengautentikasi workload Anda.
Mengakses resource dari AWS
Saat Anda menginisialisasi klien autentikasi, berikan implementasi kustom pemasok kredensial. Instance klien akan merujuk ke pemasok untuk mengambil kredensial keamanan AWS yang akan ditukarkan dengan Google Cloud token akses. Pemasok harus menampilkan kredensial yang valid dan belum habis masa berlakunya saat klien memanggilnya.
Klien autentikasi tidak menyimpan kredensial keamanan atau region AWS yang ditampilkan dalam cache, jadi terapkan penyimpanan dalam cache di pemasok untuk mencegah permintaan berulang untuk resource yang sama.
Contoh kode berikut menunjukkan cara menyiapkan akses ke Google Cloud resource dari AWS dengan pemasok kredensial kustom.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Mengakses resource dari OIDC dan SAML
Saat Anda menginisialisasi klien autentikasi, berikan pemasok token kustom untuk menyediakan token subjek yang ditukarkan dengan Google Cloud token akses. Pemasok harus menampilkan token subjek yang valid dan belum habis masa berlakunya saat klien memanggilnya.
Klien autentikasi tidak menyimpan token yang ditampilkan dalam cache, jadi terapkan penyimpanan dalam cache di pemasok untuk mencegah permintaan berulang untuk token subjek yang sama.
Contoh kode berikut menunjukkan cara menyiapkan akses ke Google Cloud resource dari penyedia yang mendukung OpenID Connect (OIDC) atau SAML 2.0 dengan pemasok kredensial kustom.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Node.js IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Langkah berikutnya
- Pelajari Workload Identity Federation lebih lanjut.