Dokumen ini menunjukkan cara menggunakan Workload Identity Federation dengan Cloud de Confiance 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 Cloud de Confiance mengakses Cloud de Confiance resource tanpa menggunakan kunci akun layanan. Library autentikasi Google memungkinkan hal ini dengan menukarkan kredensial eksternal dengan berjangka pendek Cloud de Confiance 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 Cloud de Confiance 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. Cloud de Confiance by S3NS
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 Cloud de Confiance by S3NS 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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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 Cloud de Confiance 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 Cloud de Confiance 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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
Mengakses resource dari OIDC dan SAML
Saat Anda menginisialisasi klien autentikasi, berikan pemasok token kustom untuk menyediakan token subjek yang ditukarkan dengan Cloud de Confiance 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 Cloud de Confiance 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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
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.
Sebelum menjalankan contoh kode, tetapkan variabel
lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke s3nsapis.fr.
Langkah berikutnya
- Pelajari Workload Identity Federation lebih lanjut.