Melihat kebijakan IAM yang efektif

Topik ini menunjukkan cara melihat kebijakan Identity and Access Management (IAM) yang efektif pada resource tertentu.

Di IAM, kebijakan yang efektif menjelaskan cara semua kebijakan induk dan ancestor dalam hierarki resource diwariskan untuk resource.

Cakupan dan izin

Saat meminta kebijakan IAM yang efektif, Anda harus menentukan cakupan. Hal ini bisa berupa organisasi, folder, atau project. Semua kebijakan IAM yang ditetapkan pada atau dalam cakupan tersebut akan ditampilkan. Cakupan permintaan tidak harus sama dengan project yang diaktifkan untuk Cloud Asset API. Selain itu, cakupan project dan permintaan yang diaktifkan memerlukan izin yang berbeda.

Jenis kebijakan yang didukung

Kebijakan IAM yang efektif hanya mendukung kebijakan izin IAM. Metode ini tidak mendukung bentuk kontrol akses berikut:

Sebelum memulai

Sebelum memulai, selesaikan langkah-langkah berikut.

  1. Aktifkan Cloud Asset Inventory API untuk project Anda.

    Mengaktifkan Cloud Asset Inventory API

    Project ini tidak harus sama dengan cakupan permintaan Anda. Pelajari lebih lanjut cara menetapkan project saat mengaktifkan layanan.

  2. Menginstal Google Cloud SDK.

  3. Opsional: Untuk memanggil Cloud Asset Inventory API secara langsung, pastikan Anda memiliki akses ke perintah curl.

  4. Tetapkan izin.

    1. Konfigurasi izin untuk Cloud Asset API.

    2. Aktifkan izin berikut untuk cakupan permintaan Anda.

      • cloudasset.assets.analyzeIamPolicy

      • cloudasset.assets.searchAllResources

      • cloudasset.assets.searchAllIamPolicies

      Izin ini termasuk dalam peran yang telah ditetapkan berikut:

      • Pemilik Aset Cloud (roles/cloudasset.owner)

      • Pelihat Aset Cloud (roles/cloudasset.viewer)

      Untuk mengetahui informasi selengkapnya tentang izin dan peran Cloud Asset API, lihat Kontrol akses.

Mendapatkan kebijakan IAM yang efektif

gcloud

Untuk mendapatkan kebijakan IAM yang efektif pada resource, Anda dapat memanggil BatchGetEffectiveIamPolicies menggunakan perintah gcloud asset get-effective-iam-policy. Anda harus menjalankan Google Cloud CLI versi 399.0.0 atau yang lebih baru.

gcloud asset get-effective-iam-policy \
    --scope=SCOPE \
    --names=ASSET_NAME_1,ASSET_NAME_2,...

Berikan nilai berikut:

  • SCOPE: Cakupan dapat berupa project, folder, atau organisasi.

    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 pengalih di panel menu.
      3. Pilih organisasi dari kotak Pilih dari, 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 pengalih 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 subfoldernya:

      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 pengalih 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))"

  • ASSET_NAME: Daftar nama lengkap aset yang dipisahkan koma untuk mengambil kebijakan IAM yang efektif.

    Anda dapat mengambil kebijakan untuk maksimum 20 aset dalam satu batch.

Contoh kode berikut adalah contoh perintah CLI gcloud:

  • Untuk ID organisasi 123456:

    gcloud asset get-effective-iam-policy \
        --scope=organizations/123456 \
        --names=//cloudresourcemanager.googleapis.com/organizations/123456
    
  • Untuk ID folder 1234567:

    gcloud asset get-effective-iam-policy \
        --scope=folders/1234567 \
        --names=//cloudresourcemanager.googleapis.com/folders/1234567
    
  • Untuk dua resource instance Cloud SQL dalam project bernama my-project:

    gcloud asset get-effective-iam-policy \
        --scope=projects/my-project \
        --names=//cloudsql.googleapis.com/projects/my-project/instances/instance1,//cloudsql.googleapis.com/projects/my-project/instances/instance2
    

REST

Untuk mendapatkan kebijakan IAM yang efektif pada resource menggunakan Cloud Asset Inventory API, gunakan perintah curl berikut:

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "names": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ]
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet

Berikan nilai berikut:

  • ASSET_NAME: Daftar nama lengkap aset yang dipisahkan koma untuk mengambil kebijakan IAM yang efektif.

    Anda dapat mengambil kebijakan untuk maksimum 20 aset dalam satu batch.

  • SCOPE: Cakupan dapat berupa project, folder, atau organisasi.

    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 pengalih di panel menu.
      3. Pilih organisasi dari kotak Pilih dari, 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 pengalih 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 subfoldernya:

      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 pengalih 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))"