Memecahkan masalah kebijakan izinkan dan tolak

Ada beberapa metode yang dapat Anda gunakan untuk memecahkan masalah kebijakan izin dan penolakan 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 untuk IAM membantu Anda memahami alasan pengguna memiliki akses ke resource atau tidak memiliki izin untuk memanggil API. Dengan mempertimbangkan alamat email, resource, dan izin, Pemecah Masalah Kebijakan memeriksa semua kebijakan izinkan dan tolak yang berlaku untuk resource. Kemudian, class menggunakan kebijakan tersebut untuk memberi tahu Anda apakah akun utama memiliki izin atau tidak. Bagian ini juga mencantumkan binding peran dan aturan tolak dalam kebijakan, serta menjelaskan pengaruhnya terhadap akses akun utama.

Untuk mempelajari cara menggunakan Pemecah Masalah Kebijakan guna memecahkan masalah kebijakan izin dan penolakan IAM, lihat Memecahkan masalah akses.

Melihat semua kebijakan izin dan tolak yang berlaku untuk resource.

Di Google Cloud, kebijakan IAM 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.

Di Google Cloud, Anda bisa mendapatkan daftar semua kebijakan IAM 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. ID project 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": [
              "principal://goog/subject/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, penggunaraha@example.com diberi peran Service Account Admin (roles/iam.serviceAccountAdmin) di organisasi, tetapi proyek memiliki kebijakan penolakan yang mencegahraha@example.com menggunakan iziniam.googleapis.com/serviceAccounts.create. Akibatnya, jika raha@example.com 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.