Dokumen ini menjelaskan konsep utama Workforce Identity Federation.
Apa yang dimaksud dengan Workforce Identity Federation?
Workforce Identity Federation memungkinkan Anda menggunakan Penyedia Identitas (IdP) eksternal untuk mengautentikasi dan memberi otorisasi kepada tenaga kerja; sekelompok pengguna seperti karyawan, partner, dan kontraktor; menggunakan IAM, sehingga pengguna dapat mengakses layanan Google Cloud. Dengan Workforce Identity Federation, Anda tidak perlu menyinkronkan identitas pengguna dari IdP yang ada ke identitas Google Cloud, seperti yang Anda lakukan dengan Google Cloud Directory Sync (GCDS) di Cloud Identity. Workforce Identity Federation memperluas kemampuan identitas Google Cloud untuk mendukung single sign-on berbasis atribut yang tidak sinkron.
Setelah autentikasi pengguna, informasi yang diterima dari IdP akan digunakan untuk menentukan cakupan akses ke resource Google Cloud.
Anda dapat menggunakan Workforce Identity Federation dengan IdP apa pun yang mendukung OpenID Connect (OIDC) atau SAML 2.0, seperti Microsoft Entra ID, Active Directory Federation Services (AD FS), Okta, dan lainnya.
Kumpulan identitas tenaga kerja
Kumpulan identitas tenaga kerja dapat digunakan untuk mengelola kelompok identitas tenaga kerja dan akses mereka ke resource Google Cloud.
Kumpulan memungkinkan Anda melakukan hal berikut:
- Mengelompokkan identitas pengguna; misalnya,
employees
ataupartners
- Memberikan akses IAM ke seluruh kumpulan atau subset-nya.
- Menggabungkan identitas dari satu atau beberapa IdP.
- Menentukan kebijakan pada grup pengguna yang memerlukan izin akses serupa.
- Menentukan informasi konfigurasi khusus IdP, termasuk pemetaan atribut dan kondisi atribut.
- Mengaktifkan akses API dan Google Cloud CLI untuk identitas pihak ketiga.
- Akses log oleh pengguna dalam kumpulan ke Cloud Audit Logs, bersama dengan ID kumpulan.
Anda dapat membuat beberapa kumpulan. Untuk contoh yang menjelaskan satu pendekatan tersebut, lihat Contoh: Beberapa kumpulan identitas tenaga kerja.
Kumpulan dikonfigurasi di tingkat organisasi Google Cloud. Oleh karena itu, kumpulan tersedia di semua project dan folder dalam organisasi, selama Anda memiliki izin IAM yang sesuai untuk melihat kumpulan tersebut. Saat pertama kali menyiapkan Workforce Identity Federation untuk organisasi, Anda harus memberikan nama untuk kumpulan tersebut. Dalam kebijakan izin IAM, Anda mereferensikan kumpulan berdasarkan namanya. Oleh karena itu, sebaiknya beri nama kumpulan tersebut sehingga dapat mendeskripsikan identitas yang ada di dalamnya dengan jelas.
Penyedia kumpulan identitas tenaga kerja
Penyedia kumpulan identitas tenaga kerja adalah entitas yang menjelaskan hubungan antara organisasi Google Cloud dan IdP Anda.
Workforce Identity Federation mengikuti spesifikasi OAuth 2.0 Token Exchange (RFC 8693). Anda memberikan kredensial dari penyedia identitas eksternal ke Layanan Token Keamanan, yang memverifikasi identitas dalam kredensial, lalu menampilkan token akses Google Cloud yang memiliki masa aktif singkat sebagai gantinya.
Jenis alur OIDC
Untuk penyedia OIDC, Workforce Identity Federation mendukung alur kode otorisasi dan alur implisit. Alur kode otorisasi dianggap yang paling aman, karena token ditampilkan dari IdP dalam transaksi backend yang terpisah dan aman, langsung dari IdP ke Google Cloud, setelah pengguna melakukan autentikasi. Oleh karena itu, transaksi alur kode dapat mengambil token dari berbagai ukuran, sehingga Anda dapat memiliki lebih banyak klaim untuk digunakan untuk pemetaan atribut dan kondisi atribut. Dalam alur implisit, sebagai perbandingan, Token ID ditampilkan dari IdP ke browser. Token tunduk pada batas ukuran URL browser individual.
Konsol Workforce Identity Federation Google Cloud
Pengguna dalam kumpulan identitas tenaga kerja dapat mengakses konsol Workforce Identity Federation Google Cloud, yang juga dikenal sebagai konsol (gabungan). Konsol ini memberi pengguna akses UI ke produk Google Cloud yang mendukung Workforce Identity Federation.
Pemetaan atribut
IdP Anda menyediakan atribut, yang disebut oleh beberapa IdP sebagai klaim. Atribut berisi informasi tentang pengguna Anda. Anda dapat memetakan atribut ini untuk digunakan oleh Google Cloud menggunakan Common Expression Language (CEL).
Bagian ini menjelaskan kumpulan atribut wajib dan opsional yang disediakan oleh Google Cloud.
Anda juga dapat menentukan atribut khusus di IdP yang kemudian dapat digunakan oleh produk Google Cloud tertentu; misalnya dalam kebijakan izin IAM.
Ukuran maksimum untuk pemetaan atribut adalah 4 KB.
Atribut tersebut adalah sebagai berikut:
google.subject
(Wajib): ID unik untuk pengguna yang melakukan autentikasi. Hal ini sering kali menjadi pernyataan subjek JWT, karena log Cloud Audit Logs mencatat konten kolom ini sebagai akun utama. Anda dapat menggunakan kolom ini untuk mengonfigurasi IAM untuk keputusan otorisasi. Sebaiknya Anda tidak menggunakan nilai yang dapat diubah karena jika Anda mengubah nilai di direktori pengguna IdP, pengguna akan kehilangan akses.Panjang maksimum adalah 127 byte.
google.groups
(Opsional): kumpulan grup tempat pengguna yang melakukan autentikasi menjadi anggota. Anda dapat mengonfigurasi ekspresi logika menggunakan subset CEL yang menghasilkan array string. Anda juga dapat menggunakan kolom ini untuk mengonfigurasi IAM untuk keputusan otorisasi. Batasan untukgoogle.groups
adalah sebagai berikut:Sebaiknya batasi nama grup hingga 100 karakter.
Jika satu pengguna dikaitkan dengan lebih dari 100 grup, tentukan kumpulan grup yang lebih kecil, dan hanya sertakan grup tersebut dalam pernyataan yang digunakan untuk menggabungkan pengguna ke Google Cloud. Jika satu pengguna tergabung dalam lebih dari 100 grup, autentikasi akan gagal.
Jika Anda menggunakan atribut ini untuk memberikan akses di IAM, setiap anggota dalam grup yang dipetakan akan diberi akses. Oleh karena itu, sebaiknya Anda memastikan bahwa hanya pengguna yang diizinkan di organisasi Anda yang dapat mengubah keanggotaan grup yang dipetakan.
google.display_name
(Opsional): atribut yang digunakan untuk menetapkan nama pengguna yang login di Konsol Google Cloud. Atribut ini tidak dapat digunakan dalam kebijakan izin IAM atau dalam kondisi atribut.Panjang maksimum adalah 100 byte.
google.profile_photo
(Opsional): URL foto thumbnail pengguna. Sebaiknya foto berukuran 400x400 piksel. Jika atribut ini ditetapkan, gambar akan terlihat sebagai foto profil pengguna di Konsol Google Cloud. Jika nilai ini tidak ditetapkan, atau tidak dapat diambil, ikon pengguna umum akan ditampilkan. Atribut ini tidak dapat digunakan dalam kebijakan izin IAM atau dalam kondisi atribut.google.posix_username
(Opsional): string nama pengguna unik yang mematuhi POSIX yang digunakan untuk hal berikut:Atribut ini tidak dapat digunakan dalam kebijakan izin IAM atau dalam kondisi atribut. Panjang maksimum adalah 32 karakter.
attribute.KEY
(Opsional): atribut yang ditentukan IdP eksternal yang ada di token IdP pengguna. Anda dapat menggunakan atribut kustom untuk menentukan strategi otorisasi dalam kebijakan izin IAM.Misalnya, di IdP, Anda dapat memilih untuk menentukan atribut seperti pusat biaya pengguna sebagai
costcenter = "1234"
, lalu merujuk ke prinsipal dengan cara berikut:principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.costcenter/1234
Setelah Anda memberikan akses di resource Google Cloud ke ID akun utama ini, semua identitas yang dikonfigurasi di IdP agar memiliki atribut
costcenter
yang ditetapkan ke1234
akan memiliki akses ke resource tersebut.Anda dapat mengonfigurasi maksimal 50 aturan pemetaan atribut khusus. Ukuran maksimum setiap aturan tersebut adalah 2048 karakter.
Meskipun kami tidak memiliki batasan untuk atribut yang dapat Anda petakan di sini, kami sangat menyarankan agar Anda memilih atribut yang nilainya stabil. Misalnya, atribut seperti
attribute.job_description
dapat berubah karena berbagai alasan (seperti meningkatkan keterbacaannya). Sebagai alternatif, pertimbangkan untuk menggunakanattribute.role
. Perubahan pada yang terakhir menunjukkan perubahan tanggung jawab yang ditetapkan dan selaras dengan perubahan dalam akses yang diberikan kepada pengguna.
Anda dapat mengubah nilai atribut menggunakan fungsi CEL standar. Anda juga dapat menggunakan fungsi kustom berikut:
Fungsi
split
membagi string pada nilai pemisah yang disediakan. Misalnya, untuk mengekstrak atributusername
dari atribut alamat email dengan memisahkan nilainya pada@
dan menggunakan string pertama, gunakan pemetaan atribut berikut:attribute.username=assertion.email.split("@")[0]
Fungsi
join
menggabungkan daftar string pada nilai pemisah yang disediakan. Misalnya, untuk mengisi atribut khususdepartment
dengan menyambungkan daftar string dengan.
sebagai pemisah, gunakan pemetaan atribut berikut:attribute.department=assertion.department.join(".")
Kondisi atribut
Kondisi atribut adalah ekspresi CEL opsional yang memungkinkan Anda menetapkan batasan pada atribut identitas yang diterima Google Cloud.
Manfaat menggunakan kondisi atribut meliputi hal berikut:
- Anda dapat menggunakan kondisi atribut agar hanya mengizinkan subset identitas eksternal untuk melakukan autentikasi ke project Google Cloud Anda. Misalnya, Anda mungkin hanya ingin mengizinkan identitas yang berada di tim tertentu untuk login, terutama jika Anda menggunakan IdP publik. Misalnya, Anda mungkin ingin mengizinkan tim akuntansi untuk login, tetapi tidak mengizinkan tim teknik Anda.
- Dengan kondisi atribut, Anda dapat mencegah penggunaan kredensial yang dimaksudkan untuk digunakan dengan platform lain dengan Google Cloud, dan sebaliknya. Hal ini membantu menghindari masalah deputi yang membingungkan.
Menggunakan kondisi atribut saat melakukan penggabungan dengan GitHub atau penyedia identitas multi-tenant lainnya
Workforce Identity Federation tidak mengelola direktori akun pengguna;
sebagai gantinya, layanan ini menerapkan identitas berbasis klaim. Akibatnya, saat dua token
diterbitkan oleh penyedia identitas (IdP) yang sama dan klaimnya dipetakan ke nilai
google.subject
yang sama, kedua token tersebut diasumsikan mengidentifikasi pengguna yang sama. Untuk
mengetahui IdP mana yang menerbitkan token, Workforce Identity Federation akan memeriksa dan
memverifikasi URL penerbit token.
IdP multi-tenant, seperti GitHub dan Terraform Cloud, menggunakan satu URL penerbit di semua tenant mereka. Untuk penyedia ini, URL penerbit mengidentifikasi semua GitHub atau Terraform Cloud, bukan organisasi GitHub atau Terraform Cloud tertentu.
Saat Anda menggunakan penyedia identitas ini, Anda tidak cukup mengizinkan Workforce Identity Federation memeriksa URL penerbit token untuk memastikan bahwa token tersebut berasal dari sumber tepercaya dan bahwa klaimnya dapat dipercaya. Jika IdP multi-tenant Anda memiliki satu URL penerbit, sebaiknya gunakan kondisi atribut untuk memastikan akses dibatasi untuk tenant yang benar.
Mewakili pengguna kumpulan tenaga kerja dalam kebijakan IAM
Tabel berikut menunjukkan ID utama yang Anda gunakan untuk memberikan peran kepada pengguna tunggal, sekelompok pengguna, pengguna yang memiliki klaim tertentu, atau semua pengguna dari workforce pool.
Identitas | Format ID |
---|---|
Identitas tunggal dalam workforce identity pool |
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE
|
Semua identitas workforce dalam grup |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/group/GROUP_ID
|
Semua identitas workforce dengan nilai atribut tertentu |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
|
Semua identitas dalam kumpulan identitas tenaga kerja |
principalSet://iam.googleapis.com/locations/global/workforcePools/POOL_ID/*
|
Kunci web JSON
Penyedia kumpulan tenaga kerja dapat mengakses kunci web JSON (JWK)
yang disediakan oleh IdP Anda di kolom jwks_uri
dalam
dokumen /.well-known/openid-configuration
. Jika penyedia OIDC Anda tidak
memberikan informasi ini, atau penerbit Anda tidak dapat diakses secara publik, Anda dapat
mengupload JWK secara manual saat membuat atau memperbarui penyedia OIDC.
Membatasi akses lintas organisasi
Akun utama kumpulan identitas tenaga kerja tidak dapat langsung mengakses resource di luar organisasi tempatnya berada. Namun, jika akun utama diberi izin untuk meniru identitas akun layanan dalam organisasi, batasan ini dapat diabaikan karena akun layanan tidak dibatasi secara sama.
Project pengguna kumpulan tenaga kerja
Sebagian besar Google Cloud API mengenakan biaya penagihan dan penggunaan kuota untuk project yang berisi resource yang diakses oleh permintaan API Anda. API ini disebut API berbasis resource. Beberapa Google Cloud API mengenakan biaya ke project yang terkait dengan klien; ini disebut API berbasis klien. Project yang digunakan untuk tujuan penagihan dan kuota disebut project kuota.
Saat membuat file konfigurasi Workforce Identity Federation, Anda
harus menentukan project pengguna kumpulan tenaga kerja. Project ini digunakan untuk mengidentifikasi aplikasi Anda ke Google API yang dipanggilnya. Project pengguna kumpulan tenaga kerja
juga digunakan sebagai project kuota default untuk API berbasis klien, kecuali jika Anda menggunakan
gcloud CLI untuk memulai permintaan API. Anda harus memiliki izin serviceusage.services.use
, yang disertakan dalam peran Konsumen Penggunaan Layanan (roles/serviceusage.serviceUsageConsumer
), untuk project yang Anda tentukan.
Untuk mengetahui informasi selengkapnya tentang project kuota, API berbasis resource, dan API berbasis klien, lihat Ringkasan project kuota.
Contoh: beberapa kumpulan identitas tenaga kerja
Bagian ini berisi contoh yang menggambarkan penggunaan umum beberapa kumpulan.
Anda dapat membuat satu kumpulan untuk karyawan dan satu kumpulan untuk partner. Organisasi multinasional dapat membuat kumpulan terpisah untuk divisi yang berbeda dalam organisasi mereka. Kumpulan memungkinkan pengelolaan terdistribusi, di mana berbagai grup dapat mengelola kumpulan spesifik mereka secara mandiri, di mana peran hanya diberikan ke identitas dalam kumpulan tersebut.
Misalnya, sebuah perusahaan bernama Enterprise Example Organization
mengontrak perusahaan lain bernama Partner Example Organization Inc untuk menyediakan
layanan DevOps Google Kubernetes Engine (GKE). Untuk tenaga kerja Partner Example Organization
yang menyediakan layanan, tenaga kerja mereka harus diizinkan untuk mengakses
Google Kubernetes Engine (GKE) dan resource Google Cloud lainnya dalam organisasi
Enterprise Example Organization. Enterprise Example Organization sudah
memiliki kumpulan identitas tenaga kerja yang disebut enterprise-example-organization-employees
.
Agar Partner Example Organization dapat mengelola akses ke resource Enterprise Example Organization, kumpulan tenaga kerja terpisah dibuat oleh Enterprise Example Organization untuk pengguna tenaga kerja Partner Example Organization sehingga Partner Example Organization dapat mengelolanya. Enterprise Example Organization menyediakan kumpulan tenaga kerja ke administrator Partner Example Organization. Administrator Partner Example Organization menggunakan IdP mereka sendiri untuk memberikan akses ke tenaga kerja mereka.
Untuk melakukannya, Admin Enterprise Example Organization melakukan tugas berikut:
Buat identitas seperti
partner-organization-admin@example.com
untuk administrator Partner Example Organization di IdP Enterprise Example Organization, yang sudah dikonfigurasi di kumpulan bernamaenterprise-example-organization-employees
.Buat kumpulan tenaga kerja baru bernama
example-organization-partner
.Buat kebijakan izin berikut untuk kumpulan
example-organization-partner
:{ "bindings": [ { "role": "roles/iam.workforcePoolEditor", "members": [ "principalSet://iam.googleapis.com/locations/global/workforcePools/enterprise-example-organization-employees/subject/partner-organization-admin@example.com" ] } ] }
Berikan peran untuk kumpulan
example-organization-partner
pada resource yang perlu diakses di Enterprise Example Organization.
Administrator Partner Example Organization kini dapat mengonfigurasi
kumpulan example-organization-partner
untuk terhubung dengan IdP mereka. Kemudian, mereka dapat
mengizinkan tenaga kerja Partner Example Organization untuk login dengan
kredensial IdP Partner Example Organization. Setelah login, pengguna tenaga kerja Partner Example Organization
dapat mengakses resource Google Cloud, yang dibatasi oleh kebijakan
yang ditetapkan oleh Enterprise Example Organization.
Pengelolaan akses yang lebih mudah
Di perusahaan besar, administrator IT sering membuat grup keamanan sebagai bagian dari model kontrol akses praktik terbaik. Grup keamanan mengatur akses ke resource internal. Selain itu, perusahaan sering kali membuat grup tambahan untuk karyawan dan grup lainnya agar partner dapat memperluas model kontrol akses ini ke resource cloud. Hal ini dapat menyebabkan proliferasi grup bertingkat banyak yang dapat menjadi sangat sulit untuk dikelola.
Organisasi Anda mungkin juga memiliki kebijakan yang membatasi jumlah grup yang dapat dibuat untuk menjaga hierarki direktori pengguna tetap datar. Solusi yang lebih baik untuk mencegah kesalahan konfigurasi kebijakan IAM dan membatasi pertumbuhan grup adalah dengan menggunakan beberapa kumpulan untuk membuat pemisahan pengguna yang lebih luas dari unit organisasi dan unit bisnis yang berbeda, serta organisasi partner. Selanjutnya, Anda dapat mereferensikan kumpulan dan grup ini yang termuat dalam kumpulan ini untuk menentukan kebijakan IAM (lihat contoh di langkah Mengonfigurasi IAM).
Batasan Kontrol Layanan VPC
Workforce Identity Federation, API konfigurasi kumpulan tenaga kerja, dan API Layanan Token Keamanan tidak mendukung Kontrol Layanan VPC. Namun, produk Google Cloud yang digabungkan oleh tenaga kerja pengguna dapat mengakses dukungan Kontrol Layanan VPC. Untuk mempelajari lebih lanjut, lihat halaman produk dan batasan yang didukung di Kontrol Layanan VPC.
Workforce Identity Federation dan Kontak Penting
Untuk menerima informasi penting tentang perubahan pada organisasi atau produk Google Cloud, Anda harus memberikan Kontak Penting saat menggunakan Federasi Identity Karyawan. Pengguna Cloud Identity dapat dihubungi melalui alamat email Cloud Identity, tetapi pengguna Workforce Identity Federation dihubungi menggunakan Kontak Penting.
Saat menggunakan konsol Google Cloud untuk membuat atau mengelola kumpulan identitas tenaga kerja, Anda akan melihat banner yang meminta Anda mengonfigurasi kontak penting dengan kategori Hukum dan Penangguhan. Atau, Anda dapat menentukan kontak dalam kategori Semua jika tidak memiliki kontak terpisah. Menyediakan kontak akan menghapus banner.
Langkah selanjutnya
- Untuk mempelajari cara menyiapkan Workforce Identity Federation, lihat Mengonfigurasi Workforce Identity Federation. Untuk mengetahui petunjuk khusus IdP, lihat:
- Mendapatkan token berumur pendek untuk Workforce Identity Federation
- Mengelola penyedia kumpulan tenaga kerja
- Menghapus pengguna Workforce Identity Federation dan datanya
- Melihat log audit Workforce Identity Federation
- Produk yang mendukung Workforce Identity Federation
- Menyiapkan akses pengguna ke konsol (gabungan)