Menelusuri kebijakan izin IAM

Dengan Cloud Asset API, Anda dapat menggunakan bahasa kueri kustom untuk menelusuri kebijakan yang diizinkan di project, folder, atau organisasi.

Sebelum memulai

Melusuri kebijakan yang diizinkan

Konsol

Untuk menelusuri semua kebijakan izin IAM, selesaikan langkah-langkah berikut.

  1. Buka halaman Asset Inventory di Konsol Google Cloud.

    Buka Inventaris Aset

  2. Untuk menetapkan cakupan penelusuran, buka kotak daftar Project di panel menu, lalu pilih organisasi, folder, atau project yang akan dikueri.

  3. Pilih tab Kebijakan IAM.

  4. Untuk menelusuri kebijakan izinkan, Anda dapat menggunakan kueri preset atau membuatnya sendiri.

    • Untuk menggunakan kueri preset, pilih opsi dari Query Presets di panel Filter results. Untuk memfilter hasil, pilih opsi dari Filter.

    • Untuk membuat kueri sendiri, masukkan teks kueri dalam panel Filter. Pilih kotak teks, lalu daftar kolom yang dapat ditelusuri akan ditampilkan. Penelusuran kebijakan mendukung banyak kolom. Pelajari sintaksis kueri lebih lanjut.

Kebijakan izinkan yang cocok dengan kueri tercantum dalam tabel Result.

Untuk melihat kueri sebagai perintah Google Cloud CLI, pilih View query.

Untuk mengekspor hasil, pilih Download CSV.

gcloud

Anda dapat memanggil SearchAllIamPolicies menggunakan perintah gcloud asset search-all-iam-policies. Anda harus menjalankan Google Cloud CLI versi 302.0.0 atau yang lebih baru. Anda dapat memeriksa versi Anda dengan perintah gcloud version:

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --query="QUERY" \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --order-by=ORDER_BY

Berikan nilai berikut:

  • SCOPE: Wajib diisi. Ruang lingkup dapat berupa project, folder, atau organisasi. Penelusuran ini terbatas pada kebijakan izin IAM dalam cakupan ini. Pemanggil harus diberi peran yang berisi izin cloudasset.assets.searchAllIamPolicies pada cakupan yang dipilih. Jika tidak ditentukan, properti project yang dikonfigurasi akan digunakan.

    Nilai yang diizinkan adalah:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cara menemukan nomor project Google Cloud

      Konsol

      Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka halaman Dasbor di Konsol Google Cloud.

        Buka Dasbor

      2. Klik kotak switcher di panel menu.
      3. Pilih organisasi Anda dari kotak Select from, lalu telusuri nama project Anda.
      4. Klik nama project untuk beralih ke project tersebut. Nomor project ditampilkan di kartu Project info.

      gcloud CLI

      Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cara menemukan ID folder Google Cloud

      Konsol

      Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka Konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak switcher di panel menu.
      3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
      4. Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.

      gcloud CLI

      Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

      Untuk mendapatkan ID folder dalam folder lain, cantumkan subfolder:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cara menemukan ID organisasi Google Cloud

      Konsol

      Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka Konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak switcher di panel menu.
      3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
      4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

      gcloud CLI

      Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • QUERY: Opsional. Pernyataan kueri. Lihat Sintaksis kueri untuk mengetahui informasi selengkapnya. Jika tidak ditentukan atau kosong, semua kebijakan izin IAM dalam scope yang ditentukan akan ditelusuri. Perlu diperhatikan bahwa string kueri dibandingkan dengan setiap binding kebijakan yang mengizinkan, termasuk akun utama, peran, dan kondisi IAM-nya. Kebijakan izinkan yang ditampilkan hanya berisi binding yang cocok dengan kueri Anda. Untuk mempelajari struktur kebijakan izinkan lebih lanjut, lihat Memahami kebijakan.

    Contoh:

    • policy:amy@gmail.com untuk menemukan binding kebijakan izinkan yang menentukan pengguna "amy@gmail.com".

    • policy:roles/compute.admin untuk menemukan binding kebijakan izinkan yang menentukan peran Compute Admin.

    • policy:comp* untuk menemukan binding kebijakan izinkan yang berisi "comp" sebagai awalan dari kata apa pun dalam binding.

    • policy.role.permissions:storage.buckets.update untuk menemukan binding kebijakan izinkan yang menentukan peran yang berisi izin "storage.buckets.update". Perhatikan bahwa jika pemanggil belum diberi peran yang berisi izin iam.roles.get pada peran yang diinginkan, izinkan binding kebijakan yang menentukan peran ini akan dihapus dari hasil penelusuran.

    • policy.role.permissions:upd* untuk menemukan binding kebijakan izin yang menentukan peran yang berisi "upd" sebagai awalan dari kata apa pun dalam binding. Perlu diketahui bahwa jika pemanggil belum diberi peran yang berisi izin iam.roles.get pada peran yang diinginkan, izinkan binding kebijakan yang menentukan peran ini akan dihapus dari hasil penelusuran.

    • resource:organizations/123456 untuk menemukan binding kebijakan izin yang ditetapkan di "organizations/123456".

    • resource=//cloudresourcemanager.googleapis.com/projects/myproject untuk menemukan binding kebijakan izinkan yang ditetapkan pada project bernama "myproject".

    • Important untuk menemukan binding kebijakan izinkan yang berisi "Penting" sebagai kata di setiap kolom yang dapat ditelusuri (kecuali untuk izin yang disertakan).

    • resource:(instance1 OR instance2) policy:amy untuk menemukan binding kebijakan izinkan yang ditetapkan pada resource "instance1" atau "instance2" dan juga menentukan pengguna "amy".

    • roles:roles/compute.admin untuk menemukan binding kebijakan izinkan yang menentukan peran Compute Admin.

    • memberTypes:user untuk menemukan binding kebijakan izinkan yang berisi jenis utama "pengguna".

  • ASSET_TYPE: Opsional. Daftar jenis aset yang dilampirkan oleh kebijakan Identity and Access Management. Jika kosong, layanan ini akan menelusuri Identity and Access Management mengizinkan kebijakan yang disertakan ke semua jenis aset yang dapat ditelusuri. Ekspresi reguler didukung. Jika ekspresi reguler tidak cocok dengan jenis aset apa pun yang didukung, error INVALID_ARGUMENT akan ditampilkan.

  • ORDER_BY: Opsional. Daftar kolom yang dipisahkan koma, yang menentukan urutan penyortiran hasil. Urutan defaultnya adalah menaik. Tambahkan DESC setelah nama kolom untuk menunjukkan urutan menurun. Karakter spasi yang berlebihan akan diabaikan. Contoh: "assetType DESC, resource". Hanya kolom primitif tunggal dalam respons yang dapat diurutkan:

    • resource

    • assetType

    • project

    Semua kolom lain seperti kolom berulang (misalnya, folders) dan kolom non-primitif (misalnya, policy) tidak didukung.

Berikut adalah contoh perintah gcloud:

  • Temukan semua binding kebijakan yang mengizinkan IAM di organizations/123456 yang berisi domain mycompany.com:

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="policy:\"domain:mycompany.com\""
    
  • Temukan semua binding kebijakan izin IAM di organizations/123456 tempat myuser@mycompany.com telah diberi peran dasar Pemilik (roles/owner):

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="policy:(roles/owner myuser@mycompany.com)"
    
  • Temukan semua binding kebijakan yang mengizinkan IAM di organizations/123456 yang ditetapkan di projects/12345678:

    gcloud asset search-all-iam-policies \
        --scope=organizations/123456 \
        --query="resource:projects/12345678"
    

REST

Anda dapat memanggil SearchAllIamPolicies menggunakan token OAuth yang valid untuk sebuah project. Untuk memanggil metode SearchAllIamPolicies dari Cloud Shell atau konsol mana pun yang menyediakan perintah gcloud:

  1. Jika belum mengonfigurasi layar izin OAuth project, Anda harus melakukannya. Alamat email dan nama produk diperlukan untuk layar izin OAuth.

    1. Buka layar izin OAuth untuk project Anda.

      Mengonfigurasi layar izin

    2. Masukkan Application name yang ingin ditampilkan.

    3. Di bagian Email dukungan, pilih alamat email yang ingin Anda tampilkan sebagai kontak publik. Ini harus berupa alamat email Anda, atau Google Grup yang Anda miliki.

    4. Tambahkan detail opsional yang Anda inginkan.

    5. Klik Simpan.

  2. Buat token OAuth untuk project Anda. Lihat Menyiapkan OAuth 2.0 untuk informasi selengkapnya.

    1. Buka halaman Buat client ID OAuth.

      Membuat klien OAuth

    2. Pilih Aplikasi desktop sebagai Jenis aplikasi Anda.

    3. Klik Create.

  3. Download file client_secret.json.

    1. Buka halaman Credentials.

    2. Di sebelah kanan Client ID baru, klik Download JSON.

    3. Simpan file dengan aman di lokasi yang hanya dapat diakses oleh aplikasi Anda.

  4. Login menggunakan file JSON dengan perintah berikut.

    gcloud auth application-default login --client-id-file=YOUR_JSON_FILE
    

    Perintah ini meminta Anda untuk membuka link. Pastikan halaman menampilkan Nama aplikasi yang Anda tetapkan di layar izin OAuth.

  5. Anda kini dapat mengkueri kebijakan izinkan IAM menggunakan perintah curl.

    curl -X POST \
         -H "X-HTTP-Method-Override: GET" \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         -H "Content-Type: application/json" \
         -d '{
              "assetTypes": [
                "ASSET_TYPE_1",
                "ASSET_TYPE_2",
                "..."
              ],
              "orderBy": "ORDER_BY",
              "pageSize": PAGE_SIZE,
              "query": "QUERY"
             }' \
         https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies
    

    Berikan detail berikut:

    • ASSET_TYPE: Opsional. Daftar jenis aset yang dapat dilampirkan oleh kebijakan Identity and Access Management. Jika kosong, layanan ini akan menelusuri kebijakan "Izinkan Identity and Access Management" yang dilampirkan ke semua jenis aset yang dapat ditelusuri. Ekspresi reguler didukung. Jika ekspresi reguler tidak cocok dengan jenis aset apa pun yang didukung, error INVALID_ARGUMENT akan ditampilkan.

    • ORDER_BY: Opsional. Daftar kolom yang dipisahkan koma yang menentukan urutan penyortiran hasil. Urutan defaultnya adalah menaik. Tambahkan DESC setelah nama kolom untuk menunjukkan urutan menurun. Karakter spasi yang berlebihan akan diabaikan. Contoh: "assetType DESC, resource". Hanya kolom primitif tunggal dalam respons yang dapat diurutkan:

      • resource

      • assetType

      • project

      Semua kolom lain seperti kolom berulang (misalnya, folders) dan kolom non-primitif (misalnya, policy) tidak didukung.

    • PAGE_SIZE: Opsional. Jumlah hasil yang akan ditampilkan per halaman. Jumlah maksimumnya adalah 2.000. Jika nilai ditetapkan ke 0 atau nilai negatif, default yang sesuai akan dipilih. nextPageToken ditampilkan untuk mengambil hasil berikutnya.

    • QUERY: Opsional. Pernyataan kueri. Lihat Sintaksis kueri untuk mengetahui informasi selengkapnya. Jika tidak ditentukan atau kosong, kolom akan menelusuri semua kebijakan izinkan IAM dalam scope yang ditentukan. Perlu diperhatikan bahwa string kueri dibandingkan dengan setiap binding kebijakan izinkan, termasuk akun utama, peran, dan kondisi IAM-nya. Kebijakan izinkan yang ditampilkan hanya berisi binding yang cocok dengan kueri Anda. Untuk mempelajari struktur kebijakan izin lebih lanjut, lihat Memahami kebijakan izin.

      Contoh:

      • policy:amy@gmail.com untuk menemukan binding kebijakan izinkan yang menentukan pengguna "amy@gmail.com".

      • policy:roles/compute.admin untuk menemukan binding kebijakan izinkan yang menentukan peran Compute Admin.

      • policy:comp* untuk menemukan binding kebijakan izinkan yang berisi "comp" sebagai awalan dari kata apa pun dalam binding.

      • policy.role.permissions:storage.buckets.update untuk menemukan binding kebijakan izinkan yang menentukan peran yang berisi izin "storage.buckets.update". Perhatikan bahwa jika pemanggil belum diberi peran yang berisi izin iam.roles.get pada peran yang diinginkan, izinkan binding kebijakan yang menentukan peran ini akan dihapus dari hasil penelusuran.

      • policy.role.permissions:upd* untuk menemukan binding kebijakan izinkan yang menentukan peran yang berisi "upd" sebagai awalan dari kata apa pun dalam izin peran. Perhatikan bahwa jika pemanggil belum diberi peran yang berisi izin iam.roles.get pada peran yang diinginkan, izinkan binding kebijakan yang menentukan peran ini akan dihapus dari hasil penelusuran.

      • resource:organizations/123456 untuk menemukan binding kebijakan izin yang ditetapkan di "organizations/123456".

      • resource=//cloudresourcemanager.googleapis.com/projects/myproject untuk menemukan binding kebijakan izinkan yang ditetapkan pada project bernama "myproject".

      • Important untuk menemukan binding kebijakan izinkan yang berisi "Penting" sebagai kata di setiap kolom yang dapat ditelusuri (kecuali untuk izin yang disertakan).

      • resource:(instance1 OR instance2) policy:amy untuk menemukan binding kebijakan izinkan yang ditetapkan pada resource "instance1" atau "instance2" dan juga menentukan pengguna "amy".

      • roles:roles/compute.admin untuk menemukan binding kebijakan izinkan yang menentukan peran Compute Admin.

      • memberTypes:user untuk menemukan binding kebijakan izinkan yang berisi jenis utama "pengguna".

    • SCOPE: Cakupan dapat berupa project, folder, atau organisasi. Penelusuran ini terbatas pada IAM izinkan kebijakan dalam cakupan ini. Pemanggil harus diberi peran yang berisi izin cloudasset.assets.searchAllIamPolicies pada cakupan yang dipilih. Jika tidak ditentukan, properti project yang dikonfigurasi akan digunakan.

      Nilai yang diizinkan adalah:

      • projects/PROJECT_ID

      • projects/PROJECT_NUMBER

        Cara menemukan nomor project Google Cloud

        Konsol

        Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:

        1. Buka halaman Dasbor di Konsol Google Cloud.

          Buka Dasbor

        2. Klik kotak switcher di panel menu.
        3. Pilih organisasi Anda dari kotak Select from, lalu telusuri nama project Anda.
        4. Klik nama project untuk beralih ke project tersebut. Nomor project ditampilkan di kartu Project info.

        gcloud CLI

        Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:

        gcloud projects describe PROJECT_ID --format="value(projectNumber)"

      • folders/FOLDER_ID

        Cara menemukan ID folder Google Cloud

        Konsol

        Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:

        1. Buka Konsol Google Cloud.

          Buka konsol Google Cloud

        2. Klik kotak switcher di panel menu.
        3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
        4. Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.

        gcloud CLI

        Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:

        gcloud resource-manager folders list \
            --organization=$(gcloud organizations describe ORGANIZATION_NAME \
              --format="value(name.segment(1))") \
            --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
            --format="value(ID)"

        Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

        Untuk mendapatkan ID folder dalam folder lain, cantumkan subfolder:

        gcloud resource-manager folders list --folder=FOLDER_ID

      • organizations/ORGANIZATION_ID

        Cara menemukan ID organisasi Google Cloud

        Konsol

        Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

        1. Buka Konsol Google Cloud.

          Buka konsol Google Cloud

        2. Klik kotak switcher di panel menu.
        3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
        4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

        gcloud CLI

        Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

        gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Library klien dan referensi API

Cara membuat kueri

Lihat Sintaksis kueri untuk mempelajari bahasa kueri lebih lanjut.

Baca artikel Menelusuri contoh kebijakan IAM memungkinkan untuk mempelajari lebih lanjut contoh kueri untuk berbagai kasus penggunaan yang sebenarnya.

Mengkueri IAM mengizinkan kebijakan dengan informasi binding

Untuk menelusuri kebijakan izin di IAM, ekspresi kueri memiliki format berikut:

policy:QUERY

Anda juga dapat menelusuri jenis atau peran utama secara eksklusif dengan format berikut:

  • Pencocokan persis:

    • memberTypes=QUERY

    • roles=QUERY

  • Kecocokan parsial:

    • memberTypes:QUERY

    • roles:QUERY

Akun utama

IAM mengizinkan binding kebijakan mendukung lima jenis akun utama:

  1. Akun Google, seperti user:user@gmail.com

  2. Grup Google, seperti group:devs@googlegroups.com

  3. Domain Cloud Identity dan G Suite, seperti domain:google.com

  4. Akun layanan, seperti serviceAccount:my-other-app@appspot.gserviceaccount.com

  5. ID khusus, seperti allUsers dan allAuthenticatedUsers

Anda dapat membatasi kueri untuk mengizinkan kebijakan yang terkait dengan pengguna tertentu menggunakan sintaksis berikut:

policy:"user:amy@mycompany.com"

Perhatikan bahwa Anda harus mengutip user:amy@mycompany.com dengan tanda kutip ganda, karena berisi karakter khusus :. Anda dapat menghapus awalan user: atau group: dalam string kueri jika nilai kuerinya cukup unik atau jika Anda ingin menelusuri alamat email, terlepas dari jenis utamanya. Misalnya, kueri berikut mungkin hanya cocok dengan pengguna:

policy:amy@mycompany.com

Anda juga dapat membatasi kueri untuk kebijakan yang terkait dengan jenis utama tertentu menggunakan sintaksis berikut:

policy:user
memberTypes:user
memberTypes=user

policy:user mungkin cocok dengan jenis utama yang berbeda. Contoh: group:test-user@mycompany.com. Gunakan memberTypes untuk membatasi penelusuran ke jenis utama tertentu.

Contoh: Kueri menurut akun utama
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menentukan Amy pengguna:

    policy:amy
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menentukan domain mydomain.com:

    policy:mydomain.com
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menentukan Amy dan John pengguna:

    policy:(amy john)
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menentukan Amy atau John pengguna:

    policy:(amy OR john)
    
  • Temukan semua binding kebijakan yang mengizinkan IAM di organisasi Anda yang berisi amy@mycompany.com:

    policy:amy@mycompany.com
    
  • Temukan semua binding kebijakan yang mengizinkan IAM di organisasi Anda yang berisi domain mycompany.com:

    policy:"domain:mycompany.com"
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menetapkan peran ke akun layanan mycompany.gserviceaccount.com:

    policy:"serviceAccount:mycompany.gserviceaccount.com"
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menetapkan peran ke grup admins:

    policy:"group:admins"
    
  • Menemukan semua binding kebijakan yang mengizinkan IAM yang menetapkan peran ke semua pengguna:

    memberTypes:allUsers
    
  • Temukan semua IAM mengizinkan binding kebijakan yang menetapkan peran ke semua pengguna terautentikasi:

    memberTypes:allAuthenticatedUsers
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menetapkan peran ke amy@mycompany.com atau ke domain mycompany.com:

    policy:(amy@mycompany.com OR "domain:mycompany.com")
    

Peran

IAM mengizinkan binding kebijakan mendukung berbagai jenis peran. Semua nama peran IAM diawali dengan awalan roles/.

  1. Peran dasar: Ada tiga peran yang ada sebelum pengenalan IAM: Pemilik (roles/owner), Editor (roles/editor), dan Viewer (roles/viewer).

  2. Peran yang telah ditetapkan: IAM menyediakan peran tambahan yang telah ditetapkan yang memberi akses terperinci ke berbagai resource. Lihat semua peran standar.

  3. Peran khusus: Peran IAM yang ditentukan pengguna yang berisi daftar izin yang diseleksi.

Anda dapat membatasi kueri untuk mengizinkan kebijakan terkait peran tertentu menggunakan sintaksis berikut:

policy:roles/role-name
roles:roles/role-name
roles=roles/role-name

Perhatikan bahwa Anda dapat menghilangkan imbuhan roles/ dalam string kueri jika nilai kuerinya cukup unik. Misalnya, kueri berikut mungkin hanya cocok dengan peran roles/cloudasset.owner:

policy:cloudasset.owner
roles:cloudasset.owner

Ada kemungkinan policy:cloudasset.owner cocok dengan peran lain. Misalnya, saat peran diberikan ke user:cloudasset.owner@mycompany.com akun utama. Gunakan roles untuk membatasi penelusuran berdasarkan peran.

Contoh: Kueri berdasarkan peran
  • Menemukan semua binding kebijakan yang mengizinkan IAM yang menentukan peran owner.

    policy:roles/owner
    roles:roles/owner
    roles=roles/owner
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menetapkan amy@mycompany.com peran pemilik:

    policy:(roles/owner amy@mycompany.com)
    
  • Temukan semua IAM mengizinkan binding kebijakan yang menetapkan peran compute.admin ke akun utama yang alamat emailnya berisi kata john:

    policy:(roles/compute.admin john)
    
  • Menemukan semua binding kebijakan yang mengizinkan IAM yang memberikan peran viewer kepada pengguna yang memiliki "swe" atau "sde" sebagai awalan.

    policy:(roles/viewer (swe* OR sde*))
    

Kondisi IAM

IAM mengizinkan binding kebijakan dapat berisi objek condition, yang memungkinkan Anda menentukan dan menerapkan kontrol akses berbasis atribut bersyarat untuk resource Google Cloud. Lihat Ringkasan Kondisi IAM untuk mengetahui informasi selengkapnya.

Anda dapat membatasi kueri untuk mengizinkan kebijakan terkait kondisi tertentu menggunakan sintaksis berikut:

policy:condition_information
Contoh: Kueri menurut kondisi
  • Temukan semua binding kebijakan yang mengizinkan IAM yang menentukan kondisi, dengan judul/deskripsi yang berisi kata "myCondition":

    policy:myCondition
    
  • Menemukan semua binding kebijakan yang mengizinkan IAM yang menentukan kondisi, yang ekspresinya berisi atribut "request.time":

    policy:"request.time"
    

Mengkueri kebijakan izinkan IAM dengan izin yang disertakan

Peran dalam kebijakan izinkan dapat mencakup daftar izin. Lihat referensi izin IAM untuk mengetahui detail selengkapnya. Anda dapat membatasi kueri untuk mengizinkan kebijakan yang berisi izin tertentu. Ekspresi kueri memiliki format berikut:

  • Pencocokan persis: policy.role.permissions=QUERY
  • Kecocokan sebagian: policy.role.permissions:QUERY
Contoh: Kueri menurut izin
  • Temukan semua binding kebijakan yang mengizinkan IAM yang berisi izin compute.instances.create:

    policy.role.permissions:compute.instances.create
    policy.role.permissions=compute.instances.create
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang berisi izin terkait compute.instances:

    policy.role.permissions:compute.instances
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang berisi izin cloudasset.assets.export... (misalnya, cloudasset.assets.exportAssets dan cloudasset.assets.exportIamPolicyAnalysis):

    policy.role.permissions:cloudasset.assets.export*
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang memberikan izin kepada seseorang untuk mengubah kebijakan yang mengizinkan IAM:

    policy.role.permissions:setIamPolicy
    
  • Temukan semua binding kebijakan yang mengizinkan IAM dengan peran yang berisi izin compute.instances.create dan compute.disks.create:

    policy.role.permissions:(compute.instances.create compute.disks.create)
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang berisi izin compute.instances.create dan menentukan amy pengguna:

    policy.role.permissions:compute.instances.create policy:amy
    policy.role.permissions=compute.instances.create policy:amy
    

Mengkueri kebijakan izin berdasarkan resource terkait

Saat melakukan penelusuran, Anda dapat menentukan nama resource lengkap agar hanya menelusuri kebijakan izinkan yang langsung ditetapkan pada resource. Anda juga dapat menentukan project, folder, atau organisasi untuk hanya menelusuri kebijakan izinkan yang ditetapkan pada resource yang berada di project/folder/organisasi yang ditentukan. Ekspresi kueri memiliki format berikut:

  • Pencocokan persis:

    • resource=QUERY

    • project=QUERY

    • folders=QUERY

    • organization=QUERY

  • Kecocokan parsial:

    • resource:QUERY

    • project:QUERY

    • folders:QUERY

    • organization:QUERY

Contoh: Kueri berdasarkan resource terkait

  • Menemukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan langsung pada resource yang nama resource lengkapnya sama persis dengan //cloudresourcemanager.googleapis.com/projects/myproject:

    resource=//cloudresourcemanager.googleapis.com/projects/myproject
    
  • Menemukan semua binding kebijakan yang diizinkan IAM yang ditetapkan langsung di resource dengan nama resource lengkap yang berisi kata myproject:

    resource:myproject
    
  • Menemukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan langsung pada resource yang nama resource lengkapnya berisi kata dengan awalan myproj tertentu:

    resource:myproj*
    
  • Temukan semua binding kebijakan yang diizinkan IAM yang ditetapkan langsung di resource dari jenis layanan tertentu:

    resource:cloudresourcemanager
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan di myproject atau myfolder:

    resource:(myproject OR myfolder)
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan pada resource cloudresourcemanager dan tetapkan peran pemilik kepada pengguna gmail.com:

    resource:cloudresourcemanager policy:(roles/owner gmail.com)
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan pada resource yang project memiliki angka 123:

    project:123
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan pada resource yang ada di folder dengan angka 123:

    folders:123
    
  • Temukan semua binding kebijakan yang mengizinkan IAM yang ditetapkan pada resource yang organization memiliki angka 123:

    organization:123
    

Mengkueri kebijakan izin dengan teks bebas

Anda juga dapat menggunakan kueri teks bebas tanpa menentukan bidang. Respons akan menampilkan kebijakan izinkan selama ada kolom yang dapat ditelusuri (misalnya, izinkan kolom binding kebijakan atau kolom resource) yang cocok dengan kueri.

Contoh: Kueri dengan teks bebas

  • Temukan semua IAM mengizinkan binding kebijakan di scope yang kolom metadatanya (misalnya, mengizinkan binding kebijakan atau kolom resource) berisi Important sebagai kata:

    Important
    
  • Temukan semua binding kebijakan yang diizinkan IAM di scope yang kolom metadatanya (misalnya, mengizinkan binding kebijakan atau kolom resource) berisi import sebagai awalan dari kata apa pun:

    import*