Panduan ini menjelaskan cara menggunakan Workload Identity Federation dengan penyedia identitas (IdP) lain.
Workload yang berjalan di luar Google Cloud mungkin memiliki akses di kredensial khusus lingkungan yang ada—misalnya:
Workload mungkin dapat memperoleh pernyataan SAML atau token OpenID Connect (OIDC) dari penyedia identitas (IdP) yang berjalan di lingkungan yang sama.
Untuk mengautentikasi ke Google Cloud, Anda dapat mengizinkan workload menukar kredensial khusus lingkungannya dengan kredensial Google Cloud yang memiliki jangka waktu pendek menggunakan Workload Identity Federation.
Workload mungkin memiliki sertifikat X.509. Lihat Mengonfigurasi Workload Identity Federation dengan Sertifikat X.509 (Pratinjau) untuk mengetahui detail selengkapnya. Persyaratan kunci penandatanganan SAML X.509 mencakup hal berikut:
Kunci publik RSA yang digabungkan dalam sertifikat X.509 v3.
Persyaratan validitas sertifikat:
notBefore
: stempel waktu yang tidak lebih dari 7 hari ke depannotAfter
: stempel waktu yang tidak lebih dari 20 tahun ke depan
Algoritma yang direkomendasikan:
- RSAwithSHA256 (ukuran kunci yang didukung (bit): 2048, 3072, 4096)
- ECDSAwithSHA256
Penyedia workload identity pool dapat dikonfigurasi dengan maksimal tiga kunci penandatanganan secara bersamaan. Jika ada beberapa kunci, Google Cloud akan melakukan iterasi dan mencoba menggunakan setiap kunci yang belum habis masa berlakunya untuk memenuhi permintaan pertukaran token.
Praktik terbaiknya, sebaiknya Anda tidak menggunakan kembali pasangan kunci yang sama dengan layanan lain.
Workload mungkin memiliki jenis kredensial lain.
Dengan menggabungkan Workload Identity Federation dengan broker token kustom, Anda dapat mengizinkan workload menggunakan jenis kredensial lain untuk mendapatkan kredensial Google Cloud yang memiliki jangka waktu pendek.
Menggunakan Workload Identity Federation dapat membantu Anda mengurangi jumlah kredensial yang memerlukan rotasi.
Bagian berikut menjelaskan cara menggunakan Workload Identity Federation dengan IdP yang mendukung protokol autentikasi OpenID Connect (OIDC) atau SAML.
Menyiapkan IdP eksternal Anda
Langkah ini hanya perlu dilakukan satu kali untuk setiap IdP.
Sebelum memulai, verifikasi IdP eksternal Anda memenuhi persyaratan berikut:
OIDC
IdP mendukung OpenID Connect 1.0.
IdP memiliki URI penerbit.
Metadata OIDC IdP disediakan dengan salah satu cara berikut:
Endpoint JWKS yang diamankan dengan SSL dan TLS. URL endpoint harus diawali dengan
https://
, dan endpoint dapat diakses secara publik melalui internet.Google Cloud menggunakan endpoint ini untuk mendownload serangkaian kunci IdP Anda dan menggunakan serangkaian kunci ini untuk memvalidasi token.
Endpoints yang diamankan dengan sertifikat yang ditandatangani sendiri tidak didukung oleh Google Cloud. Secara khusus, kolom
x5c
danx5t
tidak didukung dan harus dihapus dari JWK OIDC.File JWKS OIDC yang diupload ke Google Cloud. Dengan menggunakan metode ini, endpoint tidak perlu bersifat publik.
SAML
IdP mendukung SAML 2.0.
IdP menyediakan dokumen metadata SP SAML yang menjelaskan konfigurasi penyedia layanan SAML dan berisi sertifikat penandatanganan IdP.
Google Cloud menggunakan sertifikat ini untuk memvalidasi pernyataan dan respons SAML.
Jika IdP Anda memenuhi kriteria ini, lakukan hal berikut:
OIDC
Konfigurasikan IdP Anda sehingga beban kerja Anda dapat memperoleh token ID yang memenuhi kriteria berikut:
- Token ditandatangani menggunakan algoritme
RS256
atauES256
. Token berisi klaim
aud
dengan nilai berikut:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
Ganti kode berikut:
PROJECT_NUMBER
: nomor project pada project Google Cloud yang Anda gunakan untuk membuat workload identity pool.POOL_ID
: ID pilihan Anda yang mengidentifikasi workload identity pool. Anda harus menggunakan ID yang sama saat nanti membuat workload identity pool.WORKLOAD_PROVIDER_ID
: ID pilihan Anda yang mengidentifikasi penyedia workload identity pool. Anda harus menggunakan ID yang sama saat membuat penyedia workload identity pool nantinya.
Atau, Anda dapat mengonfigurasi penyedia workload identity pool yang diharapkan audiens kustom.
Token berisi klaim
exp
untuk masa mendatang dan klaimiat
yang sudah lalu.Nilai
exp
harus lebih besar dari nilaiiat
maksimal 24 jam.
Biasanya, sebaiknya gunakan token ID saat melakukan pertukaran token, karena token ID mencerminkan identitas pengguna. Jika Anda memutuskan untuk menggunakan token akses, pastikan token akses memenuhi persyaratan tambahan berikut:
- Token akses berformat Token Web JSON
Token akses bersi klaim
ISSUER
sehingga URL poinISSUER/.well-known/openid-configuration
yang mengarah ke endpoint metadata OIDC IdP.Untuk mengupload kunci JWK lokal, lihat Mengelola JWK OIDC.
SAML
Konfigurasikan IdP Anda agar pernyataan SAML berisi elemen yang memenuhi kriteria berikut:
- elemen
Issuer
yang ditetapkan ke ID Entitas yang dikonfigurasi di penyedia workload identity pool. Format penerbit harus dihapus atau ditetapkan keurn:oasis:names:tc:SAML:2.0:nameid-format:entity
. - elemen
Subject
dengan:- elemen
NameID
. - tepat satu elemen
SubjectConfirmation
denganMethod
yang ditetapkan keurn:oasis:names:tc:SAML:2.0:cm:bearer
. - elemen
SubjectConfirmationData
denganNotOnOrAfter
yang ditetapkan ke stempel waktu yang terjadi di masa mendatang dan tanpa nilaiNotBefore
.
- elemen
elemen
Conditions
dengan:NotBefore
dihapus atau sudah berlalu.NotOnOrAfter
dihapus atau di masa mendatang.Audience
yang diformat sebagai berikut:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
Ganti kode berikut:
PROJECT_NUMBER
: nomor project pada project Google Cloud yang Anda gunakan untuk membuat workload identity pool.POOL_ID
: ID pilihan Anda yang mengidentifikasi workload identity pool. Anda harus menggunakan ID yang sama saat nanti membuat workload identity pool.WORKLOAD_PROVIDER_ID
: ID pilihan Anda yang mengidentifikasi penyedia workload identity pool. Anda harus menggunakan ID yang sama saat membuat penyedia workload identity pool nantinya.
setidaknya satu elemen
AuthnStatement
.elemen
SessionNotOnOrAfter
dengan stempel waktu yang terjadi di masa mendatang. Atau, hapus elemen tersebut.
Untuk pernyataan SAML yang disertakan dalam respons SAML, respons SAML harus berisi:
- hanya satu pernyataan yang memenuhi kriteria pernyataan SAML yang dijelaskan sebelumnya di bagian ini.
- atribut
IssueInstant
dengan nilai kurang dari 1 jam yang lalu. - StatusCode
urn:oasis:names:tc:SAML:2.0:status:Success
.
Salah satu pernyataan SAML, respons, atau keduanya harus ditandatangani.
Mengonfigurasi Workload Identity Federation
Langkah ini hanya perlu dilakukan satu kali untuk setiap IdP. Anda kemudian dapat menggunakan workload identity pool dan penyedia workload yang sama untuk beberapa workload serta di beberapa project Google Cloud.
Untuk mulai mengonfigurasi Workload Identity Federation, lakukan langkah berikut:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Sebaiknya,
gunakan project khusus untuk mengelola workload identity pool dan penyedia workload identity.
-
Make sure that billing is enabled for your Google Cloud project.
Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.
Mengelola JWK OIDC (Opsional)
Bagian ini menunjukkan cara mengelola JWK OIDC yang diupload sendiri di penyedia oidc workload identity pool.
Membuat penyedia dan mengupload JWK OIDC
Untuk membuat JWK OIDC, lihat Implementasi JWT, JWS, JWE, JWK, dan JWA.
Untung mengupload file JWK OIDC saat Anda membuat penyedia workload identity pool,
jalankan dengan perintah gcloud iam workload-identity-pools providers create-oidc
dengan --jwk-json-path="JWK_JSON_PATH"
.
Ganti JWK_JSON_PATH
dengan jalur ke file JSON JWK.
Operasi ini membuat kunci yang diupload dengan kunci yang ada dalam file.
Perbarui JWK OIDC
Untuk mengupdate JWK OIDC, jalankan perintah
gcloud iam workload-identity-pools providers update-oidc
dengan --jwk-json-path="JWK_JSON_PATH"
.
Ganti JWK_JSON_PATH
dengan jalur ke file JSON JWK.
Operasi ini mengganti kunci apa pun yang sudah diupload dengan kunci yang ada dalam file. Anda tidak dapat memulihkan kunci yang diganti.
Hapus semua JWK OIDC yang diupload
Untuk menghapus semua JWK OIDC yang diupload dan kembali menggunakan URI penerbit
untuk mengambil kunci, jalankan perintah gcloud iam workload-identity-pools providers update-oidc
dengan --jwk-json-path="JWK_JSON_PATH"
.
Ganti JWK_JSON_PATH
dengan jalur ke file kosong.
Gunakan tanda --issuer-uri
untuk menetapkan URI penerbit.
Operasi ini menghapus semua kunci yang sudah diupload dengan kunci yang ada di file. Anda tidak dapat memulihkan kunci yang dihapus.
Menentukan pemetaan dan kondisi atribut
Token OIDC atau pernyataan SAML yang dikeluarkan oleh IdP Anda mungkin berisi beberapa atribut,
dan Anda harus menentukan atribut yang ingin digunakan sebagai ID subjek
(google.subject
) di Google Cloud.
Secara opsional, Anda dapat memetakan atribut tambahan. Selanjutnya, Anda dapat merujuk ke atribut ini saat memberikan akses ke resource.
OIDC
Pemetaan atribut Anda dapat menggunakan klaim yang tersemat pada token ID atau token akses yang dikeluarkan oleh IdP eksternal.
Anda harus memetakan salah satu klaim ini ke google.subject
untuk mengidentifikasi
pengguna secara unik. Untuk melindungi dari ancaman proofing, pilih klaim dengan nilai unik
yang tidak dapat diganti.
Banyak IdP mengisi klaim sub
dengan ID unik dan
tidak dapat diubah. Untuk IdP ini, pertimbangkan untuk memetakan klaim sub
ke
google.subject
:
google.subject=assertion.sub
Hindari penggunaan klaim seperti email
untuk tujuan ini. Alamat email
biasanya dapat ditetapkan ulang atau diubah, sehingga tidak secara unik dan permanen
mengidentifikasi pengguna.
SAML
Pemetaan atribut Anda dapat menggunakan elemen <Subject>
dan <Attribute>
yang disematkan dalam pernyataan yang dikeluarkan oleh IdP eksternal. Atribut SAML
dapat dirujuk menggunakan kata kunci berikut:
assertion.subject
berisiNameID
dari pengguna yang diautentikasi yang ditemukan pada elemen<Subject>
.assertion.attributes['ATTRIBUTE_NAME']
berisi daftar nilai untuk<Attribute>
yang serupa.
Anda harus memetakan salah satu klaim ini ke google.subject
untuk
mengidentifikasi pengguna secara unik. Untuk melindungi dari ancaman spoofing, pilih klaim dengan
nilai unik yang tidak dapat diubah.
Banyak IdP mengisi NameId
dengan ID yang unik dan
tidak dapat diubah. Untuk IdP ini, pertimbangkan untuk memetakan
atribut NameId
ke google.subject
:
google.subject=assertion.subject
Hindari penggunaan atribut seperti
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
untuk tujuan ini. Alamat email biasanya dapat ditetapkan ulang atau diubah, sehingga
sehingga tidak mengidentifikasi pengguna secara unik dan permanen.
Tentukan kondisi atribut (opsional).
Kondisi atribut adalah ekspresi CEL yang dapat memeriksa atribut pernyataan dan
atribut target. Jika kondisi atribut dievaluasi ke true
untuk kredensial
tertentu, kredensial tersebut akan diterima. Jika tidak, kredensial akan ditolak.
OIDC
Anda dapat menggunakan kondisi atribut untuk membatasi pengguna yang dapat menggunakan Workload Identity Federation untuk mendapatkan token Google Cloud dengan masa berlaku pendek.
Misalnya, kondisi berikut membatasi akses ke token yang
berisi klain service_account
kustom dengan nilai true
:
assertion.service_account==true
SAML
Anda dapat menggunakan kondisi atribut untuk membatasi pengguna yang dapat menggunakan Workload Identity Federation untuk mendapatkan token Google Cloud dengan masa berlaku pendek.
Misalnya, kondisi berikut membatasi akses ke pernyataan yang
berisi atribut https://example.com/SAML/Attributes/AllowGcpFederation
kustom dengan nilai true
:
assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'
Membuat workload identity pool dan penyedia workload
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi Workload Identity Federation, minta administrator untuk memberi Anda peran IAM berikut pada project:
-
Admin Workload Identity Pool (
roles/iam.workloadIdentityPoolAdmin
) -
Service Account Admin (
roles/iam.serviceAccountAdmin
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Atau, peran dasar Pemilik IAM (roles/owner
) juga
mencakup izin untuk mengonfigurasi penggabungan identitas.
Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam
lingkungan pengembangan atau pengujian.
Sekarang Anda telah mengumpulkan semua informasi yang diperlukan untuk membuat workload identity pool dan penyedia workload.
Konsol
Di konsol Google Cloud, buka halaman Penyedia workload dan workload pool baru .
Di bagian Buat identity pool, masukkan informasi berikut:
- Nama: Nama untuk pool. Nama ini juga digunakan sebagai ID pool. Anda tidak dapat mengubah ID pool nanti.
- Deskripsi: Teks yang menjelaskan tujuan pool.
Klik Lanjutkan.
Konfigurasikan setelan penyedia sebagai berikut:
OIDC
- Pada Pilih penyedia, pilih OpenID Connect (OIDC).
- Pada Nama penyedia, masukkan nama penyedia. Nama ini juga digunakan sebagai ID penyedia. Anda tidak dapat mengubah ID penyedia setelah penyedia dibuat.
- Pada URL Penerbit, masukkan URL penerbit IdP Anda. URL
harus dimulai dengan
https://
- Opsional: Di file JWK (JSON), pilih file JWK yang akan diupload. Jika kolom ini tidak tersedia, Google Cloud akan mencoba mengambil JWK dari penerbit.
- Audiens yang diizinkan: Audiens token ID yang diharapkan.
SAML
- Pada Pilih penyedia, pilih SAML.
- Pada Nama penyedia, masukkan nama penyedia. Nama ini juga digunakan sebagai ID penyedia. Anda tidak dapat mengubah ID penyedia setelah penyedia dibuat.
- Pada file Metadata IDP (XML), upload dokumen XML metadata SAML yang disediakan oleh penyedia identitas Anda.
Klik Lanjutkan.
Pada bagian Konfirgurasi atribut penyedia, tambahkan pemetaan atribut yang Anda identifikasi sebelumnya dalam panduan ini.
Pada bagian Kondisi atribut, masukkan kondisi atribut yang Anda identifikasi sebelumnya dalam panduan ini. Biarkan kolom ini kosong jika Anda tidak memiliki kondisi atribut.
Untuk membuat workload identity pool dan penyedia workload klik Simpan.
gcloud
Untuk membuat workload identity pool baru, jalankan perintah berikut:
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Ganti kode berikut:
POOL_ID
: ID unik untuk pool.DISPLAY_NAME
: nama pool.DESCRIPTION
: deskripsi pool yang Anda pilih. Deskripsi ini muncul saat Anda memberikan akses ke identitas pool.
Untuk menambahkan penyedia workload identity pool, lakukan hal berikut:
OIDC
Untuk menambahkan penyedia workload identity pool OIDC, jalankan perintah berikut:
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --allowed-audiences="AUDIENCE" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS" --jwk-json-path="JWK_JSON_PATH"
Ganti kode berikut:
WORKLOAD_PROVIDER_ID
: ID penyedia workload identity pool unik yang Anda pilih.POOL_ID
: ID workload identity pool yang telah Anda buat sebelumnya.ISSUER
: URI penerbit seperti yang didefinisikan dalam metadata OIDC.AUDIENCE
: Audiens yang diharapkan dari token ID, yang bagi banyak penyedia, cocok dengan client ID.MAPPINGS
: Daftar yang dipisahkan koma untuk pemetaan atribut yang telah Anda buat sebelumnya dalam panduan ini.CONDITIONS
: Kondisi atribut opsional yang telah Anda buat sebelumnya dalam panduan ini. Hapus parameter jika Anda tidak memiliki kondisi atribut.JWK_JSON_PATH
: Jalur opsional ke JWK OIDC yang diupload secara lokal. Jika parameter ini tidak tersedia, Google Cloud akan menggunakan jalur/.well-known/openid-configuration
IdP Anda untuk source JWK yang berisi kunci publik.
SAML
Untuk menambahkan penyedia workload identity pool SAML, jalankan perintah berikut:
gcloud iam workload-identity-pools providers create-saml WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --idp-metadata-path="IDP_METADATA_PATH" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Ganti kode berikut:
POOL_ID
: ID poolIDP_METADATA_PATH
: jalur lokal ke dokumen metadata IdP SAMLMAPPINGS
: daftar yang dipisahkan koma untuk pemetaan atribut yang Anda buat sebelumnya dalam panduan iniCONDITIONS
: Opsional: the kondisi atribut yang Anda buat sebelumnya dalam panduan ini
Awalan
gcp-
dicadangkan dan tidak dapat digunakan di workforce identity pool atau ID penyedia workforce identity pool.Opsional: Menerima pernyataan SAML terenkripsi dari IdP
Untuk mengaktifkan IdP SAML 2.0 guna menghasilkan pernyataan SAML terenkripsi yang dapat diterima oleh workload identity federation, lakukan hal berikut:
- Dalam workload identity federation, lakukan hal berikut:
- Buat pasangan kunci asimetris untuk penyedia workload identity pool Anda.
- Download file sertifikat yang berisi kunci publik.
- Konfigurasikan IdP SAML untuk menggunakan kunci publik guna mengenkripsi pernyataan SAML yang dikeluarkan.
- Di IdP Anda, lakukan hal berikut:
- Mengaktifkan enkripsi pernyataan, yang juga dikenal sebagai enkripsi token.
- Upload kunci publik yang Anda buat di workload identity federation.
- Pastikan IdP Anda menghasilkan pernyataan SAML terenkripsi.
Membuat kunci enkripsi pernyataan SAML workload identity federation
Bagian ini memandu Anda untuk membuat pasangan kunci asimetris yang memungkinkan workload identity federation untuk menerima pernyataan SAML yang terenkripsi.
Google Cloud menggunakan kunci pribadi untuk mendeskripsi pernyataan SAML yang menjadi masalah IdP Anda. Untuk membuat pasangan kunci asimetris yang akan digunakan dengan enkripsi SAML, jalankan perintah berikut. Untuk mempelajari lebih lanjut, lihat Algoritma enkripsi SAML yang didukung.
gcloud iam workload-identity-pools providers keys create KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Ganti kode berikut:
KEY_ID
: nama kunci yang Anda pilihWORKLOAD_POOL_ID
: ID poolWORKLOAD_PROVIDER_ID
: ID penyedia workforce identity pool-
KEY_SPECIFICATION
: spesifikasi kunci, yang dapat berupa salah satu darirsa-2048
,rsa-3072
, danrsa-4096
.
Setelah membuat pasangan kunci, untuk mendownload kunci publik ke dalam file sertifikat, jalankan perintah berikut. Hanya workload identity federation yang memiliki akses ke kunci pribadi.
gcloud iam workload-identity-pools providers keys describe KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Ganti kode berikut:
KEY_ID
: adalah nama kunciWORKLOAD_POOL_ID
: ID poolWORKLOAD_PROVIDER_ID
: ID penyedia workforce identity poolCERTIFICATE_PATH
: jalur untuk menulis sertifikat misalnya,saml-certificate.cer
atausaml-certificate.pem
Mengonfigurasi IdP yang sesuai dengan SAML 2.0 untuk mengeluarkan pernyataan SAML terenkripsi
Konfigurasikan IdP SAML untuk menggunakan sertifikat publik yang didownload dari langkah terakhir untuk mengenkripsi pernyataan SAML yang dikeluarkan. Konsultasikan dengan tim IdP Anda untuk mendapatkan petunjuk khusus.
Setelah mengonfigurasi IdP untuk mengenkripsi pernyataan SAML, sebaiknya Anda memeriksa untuk memastikan bahwa pernyataan yang dihasilkan benar-benar dienkripsi. Bahkan dengan enkripsi pernyataan SAML yang dikonfigurasi, workload identity federation masih dapat memproses pernyataan teks biasa.
Menghapus kunci enkripsi workload identity federation
Untuk menghapus kunci enkripsi SAML, jalankan perintah berikut:gcloud iam workload-identity-pools providers keys delete KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global
Ganti kode berikut:
KEY_ID
: adalah nama kunciWORKLOAD_POOL_ID
: ID poolWORKLOAD_PROVIDER_ID
: ID penyedia workforce identity pool
Algoritma enkripsi SAML yang didukung
Workload identity federation mendukung algoritma transpor utama berikut:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
Workload identity federation mendukung algoritma enkripsi blok berikut:
Mengautentikasi workload
Langkah ini harus dilakukan satu kali untuk setiap workload.
Mengizinkan workload eksternal Anda mengakses resource Google Cloud
Untuk memberi beban kerja Anda akses ke resource Google Cloud, sebaiknya Anda memberikan akses resource langsung ke akun utama. Dalam hal ini, prinsipal adalah pengguna gabungan. Beberapa produk Google Cloud memiliki batasan Google Cloud API. Jika beban kerja Anda memanggil endpoint API yang memiliki batasan, Anda dapat menggunakan peniruan identitas akun layanan. Dalam hal ini, akun utama adalah akun layanan Google Cloud, yang bertindak sebagai identitas. Anda memberikan akses ke akun layanan di resource.
Akses resource langsung
Anda dapat memberikan akses ke identitas gabungan langsung di resource menggunakan konsol Google Cloud atau gcloud CLI.
Konsol
Untuk menggunakan konsol Google Cloud guna memberikan peran IAM
langsung di resource, Anda harus membuka halaman resource, lalu
memberikan peran. Contoh berikut menunjukkan cara membuka
halaman Cloud Storage dan memberikan peran Storage Object Viewer
(roles/storage.objectViewer
) ke identitas gabungan langsung di
bucket Cloud Storage.
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Pada daftar bucket, klik nama bucket tempat Anda ingin memberi peran.
Pilih tab Permissions di dekat bagian atas halaman.
Klik tombol add_box Berikan akses.
Dialog Add principals akan muncul.
Di kolom Akun utama baru, masukkan satu atau beberapa identitas yang memerlukan akses ke bucket Anda.
Menurut subjek
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectPOOL_ID
: ID workload poolSUBJECT
: subjek individu yang dipetakan dari IdP Anda—misalnya,administrator@example.com
Menurut grup
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectWORKLOAD_POOL_ID
: ID workload poolGROUP
: grup yang dipetakan dari IdP Anda—misalnya:administrator-group@example.com
Menurut atribut
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectWORKLOAD_POOL_ID
: ID workload poolATTRIBUTE_NAME
: salah satu atribut yang dipetakan dari IdP AndaATTRIBUTE_VALUE
: nilai atribut
Pilih satu (atau beberapa) peran dari menu drop-down Pilih peran. Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.
Klik Simpan.
gcloud
Untuk menggunakan gcloud CLI guna memberikan peran IAM pada resource dalam project, lakukan tindakan berikut:
Dapatkan nomor project dari project tempat resource ditentukan.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
Berikan akses ke resource.
Untuk menggunakan gcloud CLI guna memberikan peran Storage Object Viewer (
roles/storage.objectViewer
) ke identitas eksternal yang memenuhi kriteria tertentu, jalankan perintah berikut.Menurut subjek
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Menurut grup
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Menurut atribut
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Ganti kode berikut:
BUCKET_ID
: bucket tempat akses akan diberikanPROJECT_NUMBER
: nomor project dari project yang berisi workload identity poolPOOL_ID
: ID pool dari workload identity poolSUBJECT
: nilai yang diharapkan untuk atribut yang Anda petakan kegoogle.subject
GROUP
: nilai yang diharapkan untuk atribut yang Anda petakan kegoogle.groups
ATTRIBUTE_NAME
: nama atribut khusus dalam pemetaan atribut AndaATTRIBUTE_VALUE
: nilai atribut kustom dalam pemetaan atribut Anda
Anda dapat memberikan peran di resource Google Cloud mana pun yang mendukung kebijakan izin IAM.
Peniruan akun layanan
Untuk membuat akun layanan bagi beban kerja eksternal, lakukan langkah-langkah berikut:
Enable the IAM, Security Token Service, and Service Account Credentials APIs.
Buat akun layanan yang merepresentasikan workload. Sebaiknya Anda menggunakan akun layanan khusus untuk setiap workload. Akun layanan tidak perlu berada dalam project yang sama dengan workload identity pool, tetapi Anda harus merujuk ke project yang berisi akun layanan.
Berikan akses akun layanan untuk resource yang ingin diakses oleh identitas eksternal.
Berikan peran Workload Identity User (
roles/iam.workloadIdentityUser
) ke akun layanan.
Untuk memberikan akses ke identitas gabungan menggunakan peniruan identitas akun layanan menggunakan Konsol Google Cloud atau gcloud CLI:
Konsol
Untuk menggunakan konsol Google Cloud guna memberikan peran IAM ke identitas gabungan dengan akun layanan, lakukan tindakan berikut:
Akun Layanan dalam project yang sama
Untuk memberikan akses menggunakan peniruan identitas akun layanan untuk akun layanan di project yang sama, lakukan hal berikut:
Buka halaman Workload Identity Pool.
Pilih Berikan akses.
Pada dialog Grant access to service account, pilih Grant access using Service Account impersonation.
Dalam daftar Akun layanan, pilih akun layanan untuk ditiru oleh identitas eksternal, lalu lakukan hal berikut:
Untuk memilih identitas dalam kumpulan yang dapat meniru identitas akun layanan, lakukan salah satu tindakan berikut:
Untuk mengizinkan hanya identitas tertentu dari workload identity pool untuk meniru identitas akun layanan, pilih Hanya identitas yang cocok dengan filter.
Di daftar Nama atribut, pilih atribut yang ingin Anda filter.
Di kolom Nilai atribut, masukkan nilai atribut yang diharapkan; misalnya, jika Anda menggunakan pemetaan atribut
google.subject=assertion.sub
, tetapkan nama Atribut menjadisubject
dan Nilai atribut menjadi nilai klaimsub
dalam token yang dikeluarkan oleh penyedia identitas eksternal Anda.
Untuk menyimpan konfigurasi, klik Simpan, lalu Tutup.
Akun layanan di project lain
Untuk memberikan akses menggunakan peniruan akun layanan untuk akun layanan di project lain, lakukan hal berikut:
Buka halaman Akun Layanan.
Pilih akun layanan yang ingin Anda tirukan identitasnya.
Klik Kelola akses.
Klik Tambahkan akun utama.
Di kolom New principal, masukkan salah satu ID akun utama berikut untuk identitas dalam kumpulan Anda yang akan meniru identitas akun layanan.
Menurut subjek
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectPOOL_ID
: ID workload poolSUBJECT
: subjek individu yang dipetakan dari IdP Anda—misalnya,administrator@example.com
Menurut grup
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectWORKLOAD_POOL_ID
: ID workload poolGROUP
: grup yang dipetakan dari IdP Anda—misalnya:administrator-group@example.com
Menurut atribut
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectWORKLOAD_POOL_ID
: ID workload poolATTRIBUTE_NAME
: salah satu atribut yang dipetakan dari IdP AndaATTRIBUTE_VALUE
: nilai atribut
Menurut kolam renang
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
Ganti kode berikut:
PROJECT_NUMBER
: nomor projectWORKLOAD_POOL_ID
: ID workload pool
Di Select a role, pilih peran Workload Identity User (
roles/iam.workloadIdentityUser
).Untuk menyimpan konfigurasi, klik Simpan.
gcloud
Untuk menggunakan gcloud CLI guna memberikan peran Pemilik Workload Identity (roles/iam.workloadIdentityUser
)
ke identitas eksternal yang memenuhi kriteria tertentu, jalankan perintah
berikut.
Menurut subjek
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Menurut grup
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Menurut atribut
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Ganti kode berikut:
SERVICE_ACCOUNT_EMAIL
: alamat email akun layananPROJECT_NUMBER
: nomor project dari project yang berisi workload identity poolPOOL_ID
: ID pool dari workload identity poolSUBJECT
: nilai yang diharapkan untuk atribut yang Anda petakan kegoogle.subject
GROUP
: nilai yang diharapkan untuk atribut yang Anda petakan kegoogle.groups
ATTRIBUTE_NAME
: nama atribut khusus dalam pemetaan atribut AndaATTRIBUTE_VALUE
: nilai atribut kustom dalam pemetaan atribut Anda
Mendownload konfigurasi kredensial
Bagian ini menjelaskan cara mendownload konfigurasi kredensial menggunakan konsol Google Cloud.
Agar workload dapat mengakses library klien, Anda harus mendownload dan mengonfigurasi kredensial default aplikasi (ADC) terlebih dahulu dengan melakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Workload Identity Pool.
Buka Workload Identity Pool -
Di tabel, pilih pool Anda untuk membuka halaman detail pool.
-
Klik Grant access.
-
Pilih Berikan akses menggunakan identitas gabungan (Direkomendasikan).
-
Untuk mendownload Kredensial Default Aplikasi (ADC) agar workload Anda dapat mengakses library klien, lakukan hal berikut:
-
Klik Download config.
-
Pada dialog Configure your application, lakukan hal berikut:
-
Di menu drop-down Penyedia, pilih penyedia Anda.
-
Di Jalur token OIDC atau Jalur pernyataan SAML, masukkan jalur tempat token atau pernyataan berada.
Di menu drop-down Format type, pilih format.
-
-
Klik Download configuration, dan catat jalur tempat Anda menyimpan file.
-
Membuat konfigurasi kredensial
Library Klien Cloud, gcloud CLI, dan Terraform dapat otomatis memperoleh kredensial eksternal, dan menggunakan kredensial ini untuk mengakses Google Cloud. Agar library dan alat dapat menyelesaikan proses ini, Anda harus menyediakan file konfigurasi kredensial. File ini menentukan hal berikut:
- Tempat Anda bisa memperoleh kredensial eksternal
- Workload identity pool dan penyedia workload identity yang akan digunakan
- Akun layanan yang akan ditiru identitasnya, jika Anda menggunakan peniruan akun layanan
Library Klien Cloud mendapatkan kredensial eksternal dari file local, yaitu HTTP URL, dengan menjalankan file lokal yang dapat dieksekusi:
Kredensial dari file yang dapat dieksekusi: Library akan meluncurkan file yang dapat dieksekusi setiap kali mereka membutuhkan kredensial baru. Jika file yang dapat dieksekusi berhasilkan mendapatkan kredensial eksternal baru, file tersebut harus menulis dokumen JSON ke
STDOUT
yang terlihat sebagai berikut:OIDC
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:id_token", "id_token": "HEADER.PAYLOAD.SIGNATURE", "expiration_time": 1620499962 }
Jika file yang dapat dieksekusi gagal mendapatkan kredensial baru, file tersebut harus menulis dokumen JSON ke
STDOUT
yang terlihat seperti berikut:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }
Dokumen JSON menggunakan kolom berikut:
version
: Versi output JSON. Hanya versi 1 yang didukung.success
: Status respons.Saat
true
, respons harus berisi kolomid_token
dantoken_type
. File yang dapat dieksekusi harus keluar dengan kode keluar 0.Saat
false
, respons harus berisi kolomcode
danmessage
serta keluar dengan nilai bukan nol.token_type
: Jenis token kredensial eksternal. Nilai yang didukung adalah:urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:oauth:token-type:jwt
id_token
: Kredensial eksternal.expiration_time
: Akhir masa berlaku token OIDC dalam detik (waktu epoch unix). Kolom ini hanya diperlukan jika file output telah ditentukan dalam konfigurasi kredensial.code
: String kode error.message
: Pesan error.
SAML
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:saml2", "saml_response": "...", "expiration_time": 1620499962 }
Jika file yang dapat dieksekusi gagal mendapatkan kredensial baru, file tersebut harus menulis dokumen JSON ke
STDOUT
yang terlihat seperti berikut:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }
Dokumen JSON menggunakan kolom berikut:
version
: Versi output JSON. Hanya versi 1 yang didukung.success
: Status respons.Saat
true
, respons harus berisi kolomid_token
dantoken_type
. File yang dapat dieksekusi harus keluar dengan kode keluar 0.Saat
false
, respons harus berisi kolomcode
danmessage
serta keluar dengan nilai bukan nol.token_type
: Jenis token kredensial eksternal. Harus berupaurn:ietf:params:oauth:token-type:saml2
.saml_response
: Respons SAML atau pernyataan SAML berenkode base64.expiration_time
: Akhir masa berlaku pernyataan dalam detik (waktu epoch unix). Kolom ini hanya diperlukan jika file output telah ditentukan dalam konfigurasi kredensial.code
: String kode error.message
: Pesan error.
Saat meluncurkan file yang dapat dieksekusi, library klien menetapkan variabel lingkungan berikut:
GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE
: Audiens dari konfigurasi kredensial. Selalu adaGOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE
: Jenis token subjek yang diharapkan. Selalu adaGOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL
: Email akun layanan. Hanya ada jika peniruan akun layanan digunakan.GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE
: Lokasi file output dari konfigurasi kredensial. Hanya ada jika ditetapkan pada konfigurasi kredensial.
Untuk menggunakan kredensial dari file yang dapat dieksekusi, Anda harus menetapkan variabel lingkungan
GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
ke1
.Kredensial dari file: Library ini membaca kredensial eksternal dari teks biasa atau file JSON lokal. Contoh:
JSON
{ "mytoken": "ey... }
Teks
ey...
Kredensial eksternal dapat berupa:
- token OIDC
- respons SAML
- pertanyaan SAML berenkode base64
Anda harus mengupdate file secara berkala agar selalu berisi kredensial yang valid. Misalnya, jika token OIDC atau pernyataan SAML valid selama satu jam, Anda harus me-refresh file setidaknya sekali setiap jam.
Kredensial dari URL: Setiap kali memerlukan kredensial baru, library melakukan permintaan
GET
ke endpoint HTTP. Endpoint harus menampilkan teks biasa atau respons JSON yang setara dengan format yang digunakan oleh kredensial dari file.
Untuk membuat file konfigurasi kredensial, laukan hal berikut:
Kredensial dari file yang dapat dieksekusi
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --executable-command=EXECUTABLE_COMMAND \ --executable-timeout-millis=EXECUTABLE_TIMEOUT \ --executable-output-file=EXECUTABLE_OUTPUT_FILE
Ganti kode berikut:
PROJECT_NUMBER
: Nomor project dari project yang berisi workload identity pool.POOL_ID
: ID workload identity pool.WORKLOAD_PROVIDER_ID
: ID penyedia workload identity pool.SERVICE_ACCOUNT_EMAIL
: Jika Anda menggunakan peniruan identitas akun layanan, ganti dengan alamat email akun layanan. Hapus tanda ini jika Anda tidak menggunakan peniruan identitas akun layanan.SERVICE_ACCOUNT_TOKEN_LIFETIME
: Jika Anda menggunakan peniruan akun layanan, ganti dengan masa aktif token akses akun layanan, dalam hitungan detik. Jika masa aktif tidak diberikan, default-nya adalah satu jam. Hapus tanda ini jika Anda tidak menggunakan peniruan akun layanan. Untuk menentukan masa berlaku lebih lama satu jam, Anda harus mengonfigurasiconstraints/iam.allowServiceAccountCredentialLifetimeExtension
batasan kebijakan organisasi.FILEPATH
: File untuk menyimpan konfigurasi.EXECUTABLE_COMMAND
: Perintah lengkap, termasuk argumen, yang akan dijalankan untuk mengambil token ID OIDC—misalnya,--executable-command="/path/to/command --foo=bar"
.EXECUTABLE_TIMEOUT
: Durasi opsional dalam milidetik untuk menunggu file yang dapat dieksekusi dijalankan (defaultnya adalah 30 detik).EXECUTABLE_OUTPUT_FILE
: Jalur yang mengarah ke kredensial 3PI yang dihasilkan oleh file yang dapat dieksekusi. Hal ini berguna untuk menyimpan kredensial dalam cache. Dengan menentukan jalur ini, library Auth akan memeriksa keberadaannya terlebih dahulu sebelum menjalankan file yang dapat dieksekusi.
Kredensial dari file
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --credential-source-file=TOKEN_FILEPATH \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
Ganti kode berikut:
PROJECT_NUMBER
: Nomor project dari project yang berisi workload identity pool.POOL_ID
: ID workload identity pool.WORKLOAD_PROVIDER_ID
: ID penyedia workload identity pool.SERVICE_ACCOUNT_EMAIL
: Jika Anda menggunakan peniruan identitas akun layanan, ganti dengan alamat email akun layanan. Hapus tanda ini jika Anda tidak menggunakan peniruan akun layanan.SERVICE_ACCOUNT_TOKEN_LIFETIME
: Jika Anda menggunakan peniruan akun layanan, ganti dengan masa aktif token akses akun layanan, dalam hitungan detik. Jika masa aktif tidak diberikan, default-nya adalah satu jam. Hapus tanda ini jika Anda tidak menggunakan peniruan akun layanan. Untuk menentukan masa berlaku lebih lama satu jam, Anda harus mengonfigurasiconstraints/iam.allowServiceAccountCredentialLifetimeExtension
batasan kebijakan organisasi.FILEPATH
: File untuk menyimpan konfigurasi.TOKEN_FILEPATH
: Jalur tempat token ID OIDC disimpan.SOURCE_TYPE
: Format file token ID OIDC, ditetapkan ketext
(default) ataujson
.FIELD_NAME
: Kolom dalam file teks yang berisi token (jikaSOURCE_TYPE
adalahjson
).
Kredensial dari URL
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --credential-source-url="TOKEN_URL" \ --credential-source-headers="KEY_1=VALUE_1,KEY_2=VALUE_2" \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
Ganti kode berikut:
PROJECT_NUMBER
: Nomor project dari project yang berisi workload identity pool.POOL_ID
: ID workload identity pool.WORKLOAD_PROVIDER_ID
: ID penyedia workload identity poolSERVICE_ACCOUNT_EMAIL
: Jika Anda menggunakan peniruan akun layanan, ganti dengan alamat email akun layanan. Hapus tanda ini jika Anda tidak menggunakan peniruan akun layanan.SERVICE_ACCOUNT_TOKEN_LIFETIME
: Jika Anda menggunakan peniruan akun layanan, ganti dengan masa aktif token akses akun layanan, dalam hitungan detik. Jika masa aktif tidak diberikan, default-nya adalah satu jam. Hapus tanda ini jika Anda tidak menggunakan peniruan akun layanan. Untuk menentukan masa berlaku lebih lama satu jam, Anda harus mengonfigurasiconstraints/iam.allowServiceAccountCredentialLifetimeExtension
batasan kebijakan organisasi.FILEPATH
: File untuk menyimpan konfigurasi.TOKEN_URL
: URL untuk mengambil token ID OIDC dariKEY_n
,VALUE_n
: Header kustom yang disertakan ke permintaan HTTPS keTOKEN_URL
SOURCE_TYPE
: Format file token ID OIDC, ditetapkan ketext
(default) ataujson
FIELD_NAME
: Kolom pada file teks berisi token (jikaSOURCE_TYPE
merupakanjson
)
Menggunakan konfigurasi kredensial untuk mengakses Google Cloud
Untuk mengizinkan alat dan library klien menggunakan konfigurasi kredensial Anda, lakukan hal berikut:
Lakukan inisialisasi variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
dan arahkan ke file konfigurasi kredensial:Bash
denganexport GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
FILEPATH
adalah jalur relatif ke file konfigurasi kredensial.PowerShell
dengan$env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
FILEPATH
adalah jalur relatif ke file konfigurasi kredensial.Gunakan library klien atau alat yang mendukung Workload Identity Federation dan dapat menemukan kredensial secara otomatis:
C++
Library Klien Google Cloud untuk C++ mendukung Workload Identity Federation sejak versi v2.6.0. Untuk menggunakan Workload Identity Federation, Anda harus mem-build library klien dengan gRPC versi 1.36.0 atau yang lebih baru.
Go
Library klien untuk Go mendukung Workload Identity Federation jika menggunakan modul
golang.org/x/oauth2
versi v0.0.0-20210218202405-ba52d332ba99 atau yang lebih baru.Untuk memeriksa versi modul yang digunakan library klien Anda, jalankan perintah berikut:
cd $GOPATH/src/cloud.google.com/go go list -m golang.org/x/oauth2
Java
Library klien untuk Java mendukung Workload Identity Federation jika menggunakan artefak
com.google.auth:google-auth-library-oauth2-http
versi 0.24.0 atau yang lebih baru.Untuk memeriksa versi artefak yang digunakan library klien Anda, jalankan perintah Maven berikut di direktori aplikasi Anda:
mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
Node.js
Library klien untuk Node.js mendukung Workload Identity Federation jika menggunakan paket
google-auth-library
versi 7.0.2 atau yang lebih baru.Untuk memeriksa versi paket yang digunakan library klien Anda, jalankan perintah berikut di direktori aplikasi Anda:
npm list google-auth-library
Saat membuat objek
GoogleAuth
, Anda dapat menentukan project ID atau mengizinkanGoogleAuth
untuk otomatis menemukan project ID. Untuk otomatis menemukan project ID, akun layanan dalam file konfigurasi harus memiliki peran Browser (roles/browser
), atau peran dengan izin yang setara, di project Anda. Untuk mengetahui detailnya, lihatREADME
untuk paketgoogle-auth-library
.Python
Library klien untuk Python mendukung Workload Identity Federation jika menggunakan paket
google-auth
versi 1.27.0 atau yang lebih baru.Untuk memeriksa versi paket yang digunakan library klien Anda, jalankan perintah berikut di lingkungan tempat paket diinstal:
pip show google-auth
Untuk menentukan project ID bagi klien autentikasi, Anda dapat menetapkan variabel lingkungan
GOOGLE_CLOUD_PROJECT
atau mengizinkan klien untuk otomatis menemukan project ID. Untuk otomatis menemukan project ID, akun layanan dalam file konfigurasi harus memiliki peran Browser (roles/browser
), atau peran dengan izin yang setara, di project Anda. Untuk mengetahui detailnya, lihat panduan pengguna untuk paketgoogle-auth
.gcloud
Untuk melakukan autentikasi menggunakan Workload Identity Federation, gunakan perintah
gcloud auth login
:gcloud auth login --cred-file=FILEPATH.json
Ganti
FILEPATH
dengan jalur ke file konfigurasi kredensial.Dukungan untuk Workload Identity Federation di gcloud CLI tersedia di gcloud CLI versi 363.0.0 dan versi lebih baru.
Terraform
Penyedia Google Cloud mendukung Workload Identity Federation jika Anda menggunakan versi 3.61.0 atau yang lebih baru:
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.61.0" } } }
bq
Untuk melakukan autentikasi menggunakan Workload Identity Federation, gunakan perintah
gcloud auth login
, sebagai berikut:gcloud auth login --cred-file=FILEPATH.json
Ganti
FILEPATH
dengan jalur ke file konfigurasi kredensial.Dukungan untuk Workload Identity Federation di bq tersedia di gcloud CLI versi 390.0.0 dan versi lebih baru.
Langkah selanjutnya
- Baca selengkapnya tentang Workload Identity Federation.
- Pelajari praktik terbaik untuk menggunakan Workload Identity Federation.
- Lihat cara mengelola workload identity pool dan penyedia workload identity.