Dokumen ini menunjukkan cara menggunakan Workload Identity Federation dengan Google Cloud library autentikasi, yang dikenal sebagai library auth, 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 mengaktifkan hal ini dengan menukarkan kredensial eksternal dengan token akses Google Cloud yang berumur pendek.
Untuk autentikasi, Anda dapat memperoleh kredensial eksternal menggunakan metode berikut:
- Mekanisme standar untuk penyiapan umum.
- Penyedia kredensial kustom untuk alur kerja kompleks yang mengharuskan Anda menulis kode sendiri.
Sebelum memulai
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Konfigurasi Workload Identity Federation dengan penyedia identitas Anda.
Melakukan autentikasi menggunakan mekanisme kredensial standar
Untuk penyedia identitas pihak ketiga yang umum didukung, Anda dapat menggunakan kemampuan bawaanGoogle Cloud library auth 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 file yang dapat dieksekusi yang dikonfigurasi. Output standar yang dapat dieksekusi diharapkan berisi token subjek.
Buat file konfigurasi kredensial untuk penyedia spesifik Anda:
- AWS
- Azure
Penyedia identitas OIDC atau SAML
Halaman ini berisi petunjuk untuk hal-hal berikut:
Gunakan file konfigurasi kredensial untuk mengautentikasi.
Agar library klien Google Cloud dapat otomatis menemukan dan menggunakan file konfigurasi kredensial Anda, tetapkan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALSke jalur file JSON yang dihasilkan.Ekspor 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 terautentikasi ke API Google Cloud :
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 penyedia 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 penyedia kredensial kustom untuk mengautentikasi workload Anda.
Mengakses resource dari AWS
Saat Anda menginisialisasi klien autentikasi, berikan penerapan kustom pemasok kredensial. Instance klien tunduk pada supplier untuk mengambil kredensial keamanan AWS untuk ditukar 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 supplier untuk mencegah permintaan berulang untuk resource yang sama.
Contoh kode berikut menunjukkan cara menyiapkan akses ke resource Google Cloud dari AWS dengan penyedia 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 penyedia token kustom untuk menyediakan token subjek yang ditukarkan dengan token akses Google Cloud . 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 supplier 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 penyedia 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.