Memecahkan masalah kebijakan

Ada beberapa metode yang dapat Anda gunakan untuk memecahkan masalah kebijakan batas akses izin, penolakan, dan akun utama Identity and Access Management (IAM).

Menggunakan Pemecah Masalah Kebijakan

Jika Anda perlu memecahkan masalah akses untuk akun utama tertentu, gunakan Pemecah Masalah Kebijakan untuk IAM.

Pemecah Masalah Kebijakan membantu Anda memahami apakah akun utama dapat mengakses resource. Dengan mempertimbangkan akun utama, resource, dan izin, Pemecah Masalah Kebijakan akan memeriksa kebijakan izinkan, kebijakan tolak, dan kebijakan batas akses akun utama (PAB) yang memengaruhi akses akun utama. Kemudian, class ini akan memberi tahu Anda apakah, berdasarkan kebijakan tersebut, akun utama dapat menggunakan izin yang ditentukan untuk mengakses resource. Bagian ini juga mencantumkan kebijakan yang relevan dan menjelaskan pengaruhnya terhadap akses akun utama.

Untuk mempelajari cara menggunakan Pemecah Masalah Kebijakan guna memecahkan masalah kebijakan izin, kebijakan tolak, dan kebijakan batas akses akun utama, lihat Memecahkan masalah izin IAM.

Melihat semua kebijakan izin dan tolak yang berlaku untuk resource

Di Google Cloud, kebijakan izinkan dan tolak berikut memengaruhi akses ke resource:

  • Kebijakan izinkan resource
  • Kebijakan penolakan resource, jika ada
  • Kebijakan izinkan project induk, folder, dan organisasi resource, jika ada
  • Kebijakan penolakan project, folder, dan organisasi induk resource, jika ada

Kebijakan izinkan dan tolak project induk, folder, dan organisasi memengaruhi akses ke resource karena adanya pewarisan kebijakan. Jika Anda melampirkan kebijakan izinkan atau tolak ke project, folder, atau organisasi, kebijakan tersebut juga berlaku untuk semua resource di dalam project, folder, atau organisasi tersebut.

Misalnya, jika kebijakan penolakan untuk organisasi mengatakan bahwa akun utama tidak dapat menggunakan izin tertentu, akun utama tidak dapat menggunakan izin tersebut untuk resource apa pun dalam organisasi. Aturan ini berlaku meskipun folder dan project di dalam organisasi tersebut memiliki kebijakan penolakan yang lebih permisif, atau mengizinkan kebijakan yang memberikan izin kepada entity utama.

Demikian pula, jika kebijakan izinkan untuk suatu project memberikan izin khusus kepada akun utama, maka akun utama memiliki izin tersebut untuk setiap resource dalam project, asalkan tidak ditolak.

Gabungan dari semua kebijakan ini disebut kebijakan yang berlaku atau kebijakan efektif untuk resource.

Di Google Cloud, Anda bisa mendapatkan daftar semua kebijakan izinkan dan tolak yang memengaruhi akses ke project menggunakan perintah gcloud beta projects get-ancestors-iam-policy dengan flag --include-deny. Bersama-sama, kebijakan ini membentuk kebijakan yang berlaku untuk project. Anda dapat menyelidiki setiap kebijakan untuk melihat pengaruhnya terhadap akses akun utama.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • PROJECT_ID: ID project Google Cloud Anda. Project ID adalah string alfanumerik, seperti my-project.

Jalankan perintah gcloud beta projects get-ancestors-iam-policy:

Linux, macOS, atau Cloud Shell

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Windows (PowerShell)

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Windows (cmd.exe)

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Respons berisi kebijakan izinkan dan tolak untuk proyek; folder apa pun yang merupakan ancestor project; dan organisasi. Contoh berikut menunjukkan kebijakan izinkan untuk organisasi 1234567890123 dan project my-project, serta kebijakan penolakan project my-project:

[
  {
    "id": "1234567890123",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/iam.denyAdmin"
        },
        {
          "members": [
            "user:raha@example.com"
          ],
          "role": "roles/iam.serviceAccountAdmin"
        }
      ],
      "etag": "BwXW6Eab7TI=",
      "version": 1
    },
    "type": "organization"
  },
  {
    "id": "my-project",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/owner"
        }
      ],
      "etag": "BwXXjOM7L6M=",
      "type": "project"
    }
  },
  {
    "id": "my-project",
    "policy": {
      "createTime": "2022-02-14T21:46:35.865279Z",
      "displayName": "My deny policy",
      "etag": "MTgyMzg2ODcwNTEyMjMxMTM3Mjg=",
      "kind": "DenyPolicy",
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/my-deny-policy",
      "rules": [
        {
          "denyRule": {
            "deniedPermissions": [
              "iam.googleapis.com/serviceAccounts.create"
            ],
            "deniedPrincipals": [
              "user:raha@example.com"
            ]
          },
          "description": "Prevent service account creation"
        }
      ],
      "uid": "c83e3dc3-d8a6-6f51-4018-814e9f200b05",
      "updateTime": "2022-02-14T21:46:35.865279Z"
    },
    "type": "project"
  }
]

Dalam contoh ini, Raha diberi peran Service Account Admin (roles/iam.serviceAccountAdmin) di organisasi, tetapi project memiliki kebijakan penolakan yang mencegah Raha menggunakan izin iam.googleapis.com/serviceAccounts.create. Akibatnya, jika Raha mencoba membuat akun layanan di project my-project, permintaan akan ditolak.

Dalam beberapa kasus, Anda mungkin hanya perlu melihat kebijakan izinkan yang efektif untuk resource—misalnya, jika organisasi Anda tidak menggunakan kebijakan tolak. Dalam kasus ini, Anda dapat menggunakan metode berikut untuk melihat kebijakan izin yang efektif:

  • Lihat kebijakan izin IAM resource di Google Cloud Console. Google Cloud Console otomatis menampilkan kebijakan efektif setiap resource.

    Untuk mempelajari cara melihat kebijakan izin IAM resource di Google Cloud Console, lihat Melihat akses saat ini.

  • Gunakan Cloud Asset API untuk mendapatkan kebijakan izinkan resource yang efektif. Untuk mempelajari lebih lanjut, baca Melihat kebijakan IAM yang efektif.

Jika perlu menemukan binding peran tertentu dalam kebijakan izinkan, Anda dapat menelusuri kebijakan izinkan.

Inventaris Aset Cloud memungkinkan Anda menelusuri kebijakan izinkan untuk binding peran yang cocok dengan parameter yang ditentukan. Anda dapat menggunakan berbagai parameter penelusuran, termasuk parameter berikut:

  • Jenis aset
  • Jenis Utama:
  • Peran
  • Project
  • Folder
  • Organisasi

Untuk mengetahui informasi selengkapnya, lihat Menelusuri kebijakan izin IAM.