Mengelola workload identity pool dan penyedia workload.

Halaman ini menjelaskan cara mengelola workload identity pool yang ada beserta penyedia identitasnya.

Anda dapat mengelola pool dan penyedia menggunakan konsol Google Cloud, Google Cloud CLI, atau REST API.

Sebelum memulai

Membuat workload identity pool. Lihat salah satu halaman berikut untuk mempelajari caranya:

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mengelola workload identity pool dan penyedia workload, mintalah administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran bawaan ini berisi izin yang diperlukan untuk mengelola pool dan penyedia workload. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola workload identity pool dan penyedia workload

  • Untuk melihat workload identity pool dan penyedia workload:
    • iam.googleapis.com/workloadIdentityPoolProviders.get
    • iam.googleapis.com/workloadIdentityPoolProviders.list
    • iam.googleapis.com/workloadIdentityPools.get
    • iam.googleapis.com/workloadIdentityPools.list
  • Untuk membuat, memperbarui, dan menghapus pool dan penyedia:
    • iam.googleapis.com/workloadIdentityPoolProviders.create
    • iam.googleapis.com/workloadIdentityPoolProviders.delete
    • iam.googleapis.com/workloadIdentityPoolProviders.undelete
    • iam.googleapis.com/workloadIdentityPoolProviders.update
    • iam.googleapis.com/workloadIdentityPools.create
    • iam.googleapis.com/workloadIdentityPools.delete
    • iam.googleapis.com/workloadIdentityPools.undelete
    • iam.googleapis.com/workloadIdentityPools.update

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Mengelola workload identity pool

Bagian ini menunjukkan cara mengelola workload identity pool.

Membuat kumpulan

Untuk membuat kumpulan workload identity dalam sebuah project, lakukan langkah berikut:

Konsol

Di konsol Google Cloud, buka halaman Workload Identity Pool.

Buka Workload Identity Pool

gcloud

Jalankan perintah gcloud iam workload-identity-pools create.

REST

Panggil projects.locations.workloadIdentityPools.create().

Mencantumkan pool

Untuk mencantumkan semua workload identity pool dalam sebuah project, lakukan hal berikut:

Konsol

Di konsol Google Cloud, buka halaman Workload Identity Pool.

Buka Workload Identity Pool

gcloud

Jalankan perintah gcloud iam workload-identity-pools list.

REST

Panggil projects.locations.workloadIdentityPools.list().

Dapatkan pool

Untuk mendapatkan detail tentang workload identity pool tertentu, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang ingin Anda lihat, lalu klik ikon Edit. Konsol Google Cloud menampilkan detail tentang workload identity pool.

gcloud

Jalankan perintah gcloud iam workload-identity-pools describe.

REST

Panggil projects.locations.workloadIdentityPools.get().

Memperbarui pool

Anda dapat mengaktifkan atau menonaktifkan workload identity pool. Anda juga dapat mengubah nama tampilan atau deskripsinya.

Untuk memperbarui workload identity pool yang ada, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang ingin Anda edit, lalu klik ikon Edit.

    Untuk menonaktifkan atau mengaktifkan workload identity pool, klik tombol alih Status , lalu klik Nonaktifkan atau Aktifkan.

    Untuk mengedit nama tampilan, klik Edit di samping nama tampilan. Perbarui namanya, lalu klik Simpan.

    Untuk mengedit deskripsi, gunakan gcloud CLI atau REST API.

gcloud

Jalankan perintah gcloud iam workload-identity-pools update.

REST

Panggil projects.locations.workloadIdentityPools.patch().

Menghapus pool

Saat menghapus workload identity pool, Anda juga akan menghapus penyedia workload identity pool. Akibatnya, identitas dalam pool kehilangan akses ke resource Google Cloud.

Anda dapat membatalkan penghapusan pool hingga 30 hari setelah penghapusan. Setelah 30 hari, penghapusan akan bersifat permanen. Hingga pool dihapus secara permanen, Anda tidak dapat menggunakan kembali nama yang sama saat membuat workload identity pool baru.

Untuk menghapus workload identity pool dan penyedia identitasnya, lakukan langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang ingin Anda hapus, lalu klik ikon Edit.

  3. Klik Hapus pool, lalu klik Hapus. Workload identity pool dan penyedia identitasnya akan dihapus.

gcloud

Jalankan perintah gcloud iam workload-identity-pools delete.

REST

Panggil projects.locations.workloadIdentityPools.delete().

Membatalkan penghapusan pool

Anda dapat memulihkan workload identity pool yang dihapus hingga 30 hari setelah penghapusan.

Untuk membatalkan penghapusan pool, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Klik tombol Tampilkan kumpulan dan penyedia yang dihapus.

  3. Temukan workload identity pool yang ingin Anda batalkan penghapusannya, lalu klik ikon Pulihkan.

  4. Klik Pulihkan. Pool dan penyedianya terpulihkan.

gcloud

Jalankan perintah gcloud iam workload-identity-pools undelete.

REST

Panggil projects.locations.workloadIdentityPools.undelete().

Mengelola penyedia workload identity pool

Bagian ini menunjukkan cara mengelola penyedia workload identity pool.

Membuat penyedia

Untuk membuat penyedia workload identity pool di workload identity pool yang ada, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang ingin Anda tambahi penyedia, lalu klik ikon Edit.

  3. Klik Tambahkan penyedia.

  4. Pilih jenis penyedia yang akan dibuat:

    • AWS: Penyedia identitas Amazon Web Services (AWS).
    • OpenID Connect (OIDC): Penyedia identitas yang kompatibel dengan OIDC. Termasuk Microsoft Azure.
  5. Masukkan nama untuk penyedia.

    Konsol Google Cloud akan menggunakan nama ini untuk membuat ID penyedia. Untuk mengubah ID penyedia, klik Edit. Anda tidak dapat mengubah ID penyedia lagi.

  6. Lengkapi kolom yang tersisa untuk penyedia Anda:

    • AWS: Masukkan ID akun AWS Anda.
    • OIDC: Masukkan URL penerbit. Untuk Azure, URL penerbit menggunakan format https://sts.windows.net/AZURE_TENANT_ID. Untuk penyedia lain, lihat dokumentasi penyedia.

    Setelah selesai, klik Lanjutkan.

  7. Untuk mengonfigurasi pemetaan atribut, klik Edit pemetaan. Pemetaan atribut memungkinkan Anda menggunakan informasi tentang identitas eksternal untuk memberikan akses ke subset identitas tersebut.

  8. Opsional: Untuk memberikan kondisi atribut, yang menentukan identitas yang dapat melakukan autentikasi, klik Tambahkan kondisi lalu masukkan ekspresi Common Expression Language (CEL) yang valid. Untuk mengetahui detailnya, lihat Kondisi atribut.

  9. Klik Simpan. Penyedia workload identity pool telah dibuat.

gcloud

Jalankan perintah gcloud iam workload-identity-pools providers create-aws untuk membuat penyedia AWS.

Jalankan perintah gcloud iam workload-identity-pools providers create-oidc untuk membuat penyedia OIDC. Hal ini termasuk Microsoft Azure.

REST

Panggil projects.locations.workloadIdentityPools.providers.create().

Mencantumkan penyedia

Untuk mencantumkan penyedia workload identity pool dalam sebuah project, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Agar dapat melihat penyedia untuk workload identity pool, klik ikon Luaskan node untuk pool.

gcloud

Jalankan perintah gcloud iam workload-identity-pools providers list.

REST

Panggil projects.locations.workloadIdentityPools.providers.list().

Mendapatkan penyedia

Untuk mendapatkan detail terkait penyedia workload identity pool tertentu, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang berisi penyedia, lalu klik ikon Luaskan node untuk pool.

  3. Temukan penyedia workload identity pool yang ingin Anda lihat, lalu klik ikon Edit. Google Cloud Console menampilkan informasi mendetail tentang penyedia tersebut.

gcloud

Jalankan perintah gcloud iam workload-identity-pools providers describe.

REST

Panggil projects.locations.workloadIdentityPools.providers.get().

Memperbarui penyedia

Anda dapat mengaktifkan atau menonaktifkan penyedia workload identity pool. Anda juga dapat memperbarui informasi akun dan pemetaan atributnya, serta nama tampilan dan deskripsinya.

Untuk memperbarui penyedia workload identity pool yang ada, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang berisi penyedia, lalu klik ikon Luaskan node untuk pool.

  3. Temukan penyedia workload identity pool yang ingin Anda edit, lalu klik ikon Edit .

  4. Edit informasi penyedia, lalu klik Simpan.

gcloud

Jalankan perintah gcloud iam workload-identity-pools providers update-aws untuk memperbarui penyedia AWS.

Jalankan perintah gcloud iam workload-identity-pools providers update-oidc untuk memperbarui penyedia OIDC. Hal ini termasuk Microsoft Azure.

REST

Panggil projects.locations.workloadIdentityPools.providers.patch().

Menghapus penyedia

Saat Anda menghapus penyedia workload identity pool, identitas penyedia akan kehilangan akses ke resource Google Cloud.

Anda dapat membatalkan penghapusan penyedia hingga 30 hari setelah penghapusan. Setelah 30 hari, penghapusan akan bersifat permanen. Sebelum penyedia dihapus secara permanen, Anda tidak dapat menggunakan kembali namanya saat membuat penyedia baru.

Untuk menghapus penyedia workload identity pool, lakukan tindakan berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Temukan workload identity pool yang berisi penyedia, lalu klik ikon Edit.

  3. Di panel Penyedia, temukan penyedia yang ingin Anda hapus, lalu klik ikon Hapus.

  4. Klik Hapus untuk menghapus penyedia.

gcloud

Jalankan perintah gcloud iam workload-identity-pools providers delete.

REST

Panggil projects.locations.workloadIdentityPools.providers.delete().

Membatalkan penghapusan penyedia

Anda dapat memulihkan penyedia workload identity pool yang dihapus hingga 30 hari setelah penghapusan. Untuk membatalkan penghapusan penyedia:

Konsol

  1. Di konsol Google Cloud, buka halaman Workload Identity Pool.

    Buka Workload Identity Pool

  2. Klik tombol Tampilkan kumpulan dan penyedia yang dihapus.

  3. Temukan workload identity pool yang berisi penyedia, lalu klik ikon Luaskan node untuk pool.

  4. Temukan penyedia yang ingin Anda batalkan penghapusannya, lalu klik ikon Pulihkan.

  5. Klik Pulihkan. Penyedia akan dipulihkan.

gcloud

Jalankan perintah gcloud iam workload-identity-pools providers undelete.

REST

Panggil projects.locations.workloadIdentityPools.providers.undelete().

Mengelola batasan untuk workload identity federation

Anda dapat menggunakan batasan kebijakan organisasi untuk membatasi penggunaan resource di organisasi Google Cloud Anda.

Bagian ini menjelaskan batasan yang direkomendasikan saat Anda menggunakan workload identity federation.

Membatasi konfigurasi penyedia identitas

Sebagai administrator organisasi, Anda dapat menentukan penyedia identitas yang diizinkan untuk bergabung dengan organisasi Anda.

Untuk mengelola penyedia identitas yang diizinkan, aktifkan batasan daftar constraints/iam.workloadIdentityPoolProviders dalam kebijakan organisasi untuk organisasi Anda. Batasan ini menentukan URI penerbit dari penyedia yang diizinkan. Anda dapat menggunakan konsol Google Cloud atau Google Cloud CLI untuk mengaktifkan batasan ini.

Agar hanya mengizinkan penggabungan dari AWS, buat satu batasan dengan URI https://sts.amazonaws.com. Contoh berikut menunjukkan cara membuat batasan ini menggunakan gcloud CLI:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.amazonaws.com --organization=ORGANIZATION_NUMBER

Anda juga dapat menentukan ID akun AWS yang memiliki akses ke resource Google Cloud Anda. Untuk menentukan ID akun, gunakan batasan daftar constraints/iam.workloadIdentityPoolAwsAccounts:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolAwsAccounts \
    ACCOUNT_ID --organization=ORGANIZATION_NUMBER

Agar hanya mengizinkan penggabungan dari satu penyedia OIDC, buat satu batasan dengan issuer_uri penyedia yang diizinkan. Misalnya, perintah berikut hanya mengizinkan federasi dari tenant Azure tertentu:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.windows.net/AZURE_TENANT_ID --organization=ORGANIZATION_NUMBER

Federasi dari penyedia identitas SAML adalah kasus khusus karena kunci publik yang digunakan untuk memvalidasi pernyataan disediakan pada waktu konfigurasi bukan diambil langsung dari penyedia identitas. Oleh karena itu dapat dibayangkan bahwa pengguna berbahaya dapat mencoba mengupload dokumen metadata SAML dengan ID entitas penyedia identitas organisasi Anda, tetapi dengan kunci publik yang aksesnya mereka miliki ke kunci pribadi. Membatasi penggabungan dengan ID entitas dalam skenario ini hanya memberikan keamanan yang ilusif. Karena alasan ini, kami sangat menyarankan agar Anda hanya mengizinkan pembuatan workload identity pool yang memungkinkan penggabungan SAML di project Google Cloud yang dikelola organisasi Anda secara terpusat. Kemudian, Anda dapat memberikan identitas eksternal dalam workload identity pool tersebut akses ke resource di seluruh organisasi Anda.

Untuk mengizinkan penggabungan dari penyedia identitas SAML, buat batasan yang mengizinkan kata kunci khusus KEY_UPLOAD.

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     KEY_UPLOAD --organization=ORGANIZATION_NUMBER

Anda dapat mengulangi perintah tersebut untuk mengizinkan penggabungan dari penyedia tambahan.

Untuk memblokir penggabungan dari semua penyedia:

  1. Buat file YAML yang berisi hal berikut:

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
    
  2. Teruskan file ke perintah gcloud resource-manager org-policies set-policy:

    gcloud resource-manager org-policies set-policy FILE_NAME.yaml \
        --organization=ORGANIZATION_NUMBER
    

Membatasi pembuatan kunci akun layanan

Workload identity federation memungkinkan Anda mengakses resource Google Cloud dari luar Google Cloud tanpa menggunakan kunci akun layanan. Jika tidak pernah menggunakan kunci akun layanan untuk mengautentikasi, Anda dapat membantu mengurangi risiko dengan menonaktifkan pembuatan kunci.

Untuk menonaktifkan pembuatan kunci akun layanan, terapkan batasan boolean iam.disableServiceAccountKeyCreation dalam kebijakan organisasi untuk organisasi Anda. Anda juga dapat menerapkan batasan boolean iam.disableServiceAccountKeyUpload, yang akan menonaktifkan upload kunci publik untuk akun layanan.

Anda dapat menggunakan konsol Google Cloud atau gcloud CLI untuk mengaktifkan batasan ini. Misalnya, perintah gcloud CLI berikut mengaktifkan kedua batasan:

gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyCreation \
    --organization=ORGANIZATION_NUMBER
gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyUpload \
    --organization=ORGANIZATION_NUMBER

Memantau workload identity federation

Anda dapat menggunakan metrik Cloud Monitoring untuk memantau peristiwa autentikasi pool dan penyedia workload identity. Untuk daftar metrik yang tersedia, lihat metrik IAM.

Langkah selanjutnya

Pelajari tentang fworkload identity federation lebih lanjut.