Mendownload konfigurasi kredensial dan memberikan akses

Halaman ini menjelaskan cara mengonfigurasi workload Anda untuk mengakses Cloud de Confiance by S3NS resource menggunakan Workload Identity Federation dan akses resource langsung atau peniruan akun layanan.

Anda dapat menemukan petunjuk menyeluruh dan khusus kasus penggunaan dalam panduan konfigurasi untuk AWS dan Azure, Active Directory, GitHub, GitLab, dan pipeline deployment lainnya, serta Kubernetes.

Mengizinkan workload eksternal mengakses Cloud de Confiance resource

Untuk memberi workload Anda akses ke Cloud de Confiance resource, kami sarankan Anda memberikan akses resource langsung ke akun utama. Dalam hal ini, akun utama adalah pengguna gabungan. Beberapa Cloud de Confiance produk memiliki batasan Google Cloud API. Jika workload Anda memanggil endpoint API yang memiliki batasan, Anda dapat menggunakan peniruan akun layanan. Dalam hal ini, akun utama adalah Cloud de Confiance akun layanan, 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 Cloud de Confiance atau gcloud CLI.

Konsol

Untuk menggunakan Cloud de Confiance konsol 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.

  1. Di Cloud de Confiance konsol, buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang ingin Anda berikan peran.

  3. Pilih tab Permissions di dekat bagian atas halaman.

  4. Klik tombol Grant access.

    Dialog Add principals akan muncul.

  5. Di kolom New principals, 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 project
    • POOL_ID: ID pool workload
    • SUBJECT: subjek individual 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 project
    • WORKLOAD_POOL_ID: ID pool workload
    • GROUP: 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 project
    • WORKLOAD_POOL_ID: ID pool workload
    • ATTRIBUTE_NAME: salah satu atribut yang dipetakan dari IdP Anda
    • ATTRIBUTE_VALUE: nilai atribut
  6. Pilih satu (atau beberapa) peran dari menu drop-down Select a role. Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  7. Klik Save.

gcloud

Untuk menggunakan gcloud CLI guna memberikan peran IAM di resource dalam project, lakukan hal berikut:

  1. Dapatkan nomor project dari project tempat resource ditentukan.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. 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 memberikan akses
    • PROJECT_NUMBER: nomor project. dari project yang berisi workload identity pool
    • POOL_ID: ID pool dari workload identity pool
    • SUBJECT: nilai yang diharapkan untuk atribut yang Anda petakan ke google.subject
    • GROUP: nilai yang diharapkan untuk atribut yang Anda petakan ke google.groups
    • ATTRIBUTE_NAME: nama atribut khusus dalam pemetaan atribut Anda
    • ATTRIBUTE_VALUE: nilai atribut khusus dalam pemetaan atribut Anda

    Anda dapat memberikan peran di resource apa pun yang mendukung kebijakan IAM. Cloud de Confiance

Peniruan akun layanan

  1. Untuk membuat akun layanan bagi workload eksternal, lakukan hal berikut:

    1. Aktifkan IAM, Security Token Service, dan Service Account Credentials API.

      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.

      Aktifkan API

    2. Buat akun layanan yang merepresentasikan workload. Sebaiknya gunakan akun layanan khusus untuk setiap workload. Akun layanan tidak harus berada dalam project yang sama dengan workload identity pool, tetapi Anda harus merujuk ke project yang berisi akun layanan.

    3. Berikan akses akun layanan untuk resource yang ingin diakses oleh identitas eksternal.

  2. Agar identitas gabungan dapat meniru identitas akun layanan, lakukan hal berikut:

Konsol

Untuk menggunakan Cloud de Confiance konsol guna memberikan peran IAM ke identitas gabungan dengan akun layanan, lakukan hal berikut:

Akun Layanan dalam project yang sama

  1. Untuk memberikan akses menggunakan peniruan akun layanan bagi akun layanan dalam project yang sama, lakukan hal berikut:

    1. Buka halaman Workload Identity Pools.

      Buka Workload Identity Pool

    2. Pilih Grant access.

    3. Dalam dialog Berikan akses ke akun layanan, pilih Berikan akses menggunakan peniruan akun layanan.

    4. Dalam daftar Service accounts, pilih akun layanan untuk ditiru oleh identitas eksternal, lalu lakukan hal berikut:

    5. Untuk memilih identitas dalam pool 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 Only identities matching the filter.

      • Di daftar nama atribut, pilih atribut yang ingin Anda filter.

      • Di kolom Attribute value, masukkan nilai atribut yang diharapkan; contohnya, jika Anda menggunakan pemetaan atribut google.subject=assertion.sub, tetapkan nama Attribute menjadi subject dan Attribute value menjadi nilai klaim sub dalam token yang dikeluarkan oleh penyedia identitas eksternal Anda.

    6. Untuk menyimpan konfigurasi, klik Save , lalu Dismiss.

Akun layanan dalam project yang berbeda

  1. Untuk memberikan akses menggunakan peniruan akun layanan bagi akun layanan dalam project yang berbeda, lakukan hal berikut:

    1. Buka halaman Service Accounts.

      Buka Akun Layanan

    2. Pilih akun layanan yang ingin Anda tiru identitasnya.

    3. Klik Manage access.

    4. Klik Add principal.

    5. Di kolom New principal, masukkan salah satu ID akun utama berikut untuk identitas di pool 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 project
      • POOL_ID: ID pool workload
      • SUBJECT: subjek individual 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 project
      • WORKLOAD_POOL_ID: ID pool workload
      • GROUP: 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 project
      • WORKLOAD_POOL_ID: ID pool workload
      • ATTRIBUTE_NAME: salah satu atribut yang dipetakan dari IdP Anda
      • ATTRIBUTE_VALUE: nilai atribut

      Menurut pool

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
      

      Ganti kode berikut:

      • PROJECT_NUMBER: nomor project
      • WORKLOAD_POOL_ID: ID pool workload
    6. Di Select a role, pilih peran Workload Identity User (roles/iam.workloadIdentityUser).

    7. Untuk menyimpan konfigurasi, klik Save.

gcloud

Untuk memberikan peran Workload Identity User (roles/iam.workloadIdentityUser) ke akun utama gabungan atau kumpulan akun utama, jalankan perintah berikut command. Untuk mempelajari lebih lanjut ID akun utama Workload Identity Federation, lihat Jenis akun utama.

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 layanan
  • PROJECT_NUMBER: nomor project. dari project yang berisi workload identity pool
  • POOL_ID: ID pool dari workload identity pool
  • SUBJECT: nilai yang diharapkan untuk atribut yang Anda petakan ke google.subject
  • GROUP: nilai yang diharapkan untuk atribut yang Anda petakan ke google.groups
  • ATTRIBUTE_NAME: nama atribut khusus dalam pemetaan atribut Anda
  • ATTRIBUTE_VALUE: nilai atribut khusus dalam pemetaan atribut Anda

Mendownload konfigurasi

Agar workload Anda dapat mengakses library klien, Anda harus mendownload dan mengonfigurasi kredensial default aplikasi (ADC) dengan melakukan hal berikut:

  1. Di Cloud de Confiance konsol, buka halaman Workload Identity Pools.

    Buka Workload Identity Pool
  2. Di tabel, pilih pool Anda untuk membuka halaman detail pool.

  3. Klik Grant access.

  4. Pilih Grant access using federated identities (Recommended).

  5. Untuk mendownload Kredensial Default Aplikasi (ADC) agar workload Anda dapat mengakses library klien, lakukan hal berikut:

    1. Klik Download config.

    2. Dalam dialog Configure your application, lakukan hal berikut:

      1. Di daftar drop-down Provider, pilih penyedia Anda.

      2. Di OIDC token path atau SAML assertion path, masukkan jalur tempat token atau pernyataan berada located.

      3. Di daftar drop-down Format type, pilih formatnya.

    3. Klik Download configuration, lalu catat jalur tempat Anda menyimpan file.