Memahami evaluasi hierarki

Saat Anda menetapkan kebijakan organisasi pada resource, semua turunan resource tersebut akan mewarisi kebijakan organisasi secara default. Jika Anda menetapkan kebijakan organisasi pada resource organisasi, batasan tersebut akan diwarisi oleh semua resource turunan.

Anda dapat menetapkan kebijakan organisasi yang sama dengan konfigurasi yang berbeda pada resource turunan, yang akan menggantikan atau digabungkan dengan kebijakan yang diwariskan berdasarkan aturan evaluasi hierarki.

Sebelum memulai

Contoh hierarki

Dalam diagram hierarki resource berikut, setiap resource menetapkan kebijakan organisasi dan menentukan apakah resource tersebut mewarisi kebijakan resource induknya. Bentuk berwarna mewakili nilai yang diizinkan atau ditolak oleh kebijakan organisasi.

Diagram pewarisan

Batasan adalah definisi perilaku yang dikontrol oleh kebijakan organisasi. Dalam contoh sebelumnya, Constraint merepresentasikan default batasan, yang menentukan perilaku saat tidak ada kebijakan organisasi untuk batasan. Default batasan dalam contoh ini mengizinkan semua nilai . Node di bawahnya menentukan kebijakan organisasi yang menggantikan default batasan dengan mengizinkan atau menolak nilai.

Kebijakan efektif di setiap node dievaluasi berdasarkan aturan pewarisan. Jika kebijakan organisasi tidak ditetapkan, resource akan mewarisi perilaku batasan default. Jika Anda menetapkan kebijakan organisasi, kebijakan Anda akan digunakan. Pada contoh sebelumnya, Organization Node menentukan kebijakan yang mengizinkan persegi merah dan lingkaran hijau.

Resource yang berada dalam hierarki di bawah Node Organisasi dievaluasi sebagai berikut:

  1. Resource 1 menentukan kebijakan yang menetapkan inheritFromParent ke TRUE dan mengizinkan berlian biru. Kebijakan dari Node Organisasi diwarisi dan digabungkan dengan kebijakan yang ditetapkan pada Resource 1. Kebijakan yang berlaku mengevaluasi untuk mengizinkan persegi merah, lingkaran hijau, dan berlian biru.

  2. Resource 2 menentukan kebijakan yang menetapkan inheritFromParent ke TRUE dan menolak lingkaran hijau . Nilai tolak selalu lebih diutamakan selama rekonsiliasi kebijakan. Kebijakan dari Node Organisasi diwarisi dan digabungkan dengan kebijakan yang ditetapkan pada Resource 2. Kebijakan yang berlaku dievaluasi untuk hanya mengizinkan persegi merah .

  3. Resource 3 menentukan kebijakan yang menetapkan inheritFromParent ke FALSE dan mengizinkan segi enam kuning . Kebijakan dari Node Organisasi tidak diwariskan, sehingga kebijakan yang berlaku hanya mengizinkan segi enam kuning .

  4. Resource 4 menentukan kebijakan yang menetapkan inheritFromParent ke FALSE dan mencakup nilai restoreDefault. Kebijakan dari Node Organisasi tidak diwarisi, dan perilaku batasan default digunakan, sehingga kebijakan efektif dievaluasi untuk mengizinkan semua nilai .

Aturan evaluasi hierarki

Aturan berikut mengatur cara kebijakan organisasi dievaluasi pada resource tertentu. Anda memerlukan peran Administrator Kebijakan Organisasi untuk menetapkan kebijakan organisasi.

Tidak ada kebijakan organisasi yang ditetapkan

Jika Anda tidak menetapkan kebijakan organisasi, resource akan mewarisi dari ancestor terendahnya dengan kebijakan yang ditetapkan. Jika tidak ada kebijakan yang ditetapkan di mana pun dalam hierarki ancestor, maka perilaku default batasan akan diterapkan.

Pewarisan

Resource yang memiliki kebijakan organisasi yang ditetapkan secara default menggantikan kebijakan yang ditetapkan oleh resource induknya dalam hierarki. Namun, jika resource telah menetapkan inheritFromParent = true, maka Kebijakan efektif resource induk diwarisi, digabungkan, dan disesuaikan untuk mengevaluasi kebijakan efektif yang dihasilkan. Contoh:

  • Folder menolak nilai projects/123.
  • Project di bawah folder tersebut menolak nilai projects/456.

Kedua kebijakan digabungkan, dan dalam hal ini menghasilkan kebijakan efektif yang menolak projects/123 dan projects/456.

Mewarisi perilaku default

Perilaku default tidak pernah digabungkan. Jika kebijakan ditetapkan, kebijakan tersebut akan selalu menggantikan perilaku default. Contoh:

  • constraints/iam.allowServiceAccountCredentialLifetimeExtension ditetapkan ke DENY secara default di tingkat organisasi.
  • Untuk batasan ini, project yang berada langsung di bawah organisasi tersebut mengizinkan nilai SomeServiceAccount.

Karena perilaku default tidak pernah digabungkan dan selalu diganti, hal ini menghasilkan kebijakan efektif yang mengizinkan SomeServiceAccount. Sebaliknya, jika kebijakan ditetapkan secara eksplisit ke DENY di tingkat organisasi, aturan "nilai DENY lebih diprioritaskan" akan berlaku dan kebijakan yang efektif adalah DENY.

Melarang pewarisan

Jika resource memiliki kebijakan yang mencakup inheritFromParent = false, resource tersebut tidak mewarisi kebijakan organisasi dari induknya. Sebagai gantinya, resource mewarisi perilaku default batasan kecuali jika Anda menetapkan kebijakan dengan nilai yang diizinkan atau ditolak.

Menyelesaikan konflik kebijakan

Saat resource mewarisi kebijakan organisasi, kebijakan yang diwarisi akan digabungkan dan disesuaikan dengan kebijakan organisasi resource induk. Saat mengevaluasi kebijakan organisasi dengan aturan daftar, nilai DENY selalu diprioritaskan. Contoh:

  • Folder menolak nilai projects/123.
  • Project di bawah folder tersebut mengizinkan nilai projects/123.

Kebijakan digabungkan dan nilai DENY lebih diprioritaskan. Kebijakan efektif menolak semua nilai, dan dievaluasi dengan cara yang sama, baik resource induk maupun turunan menolak nilai. Sebaiknya jangan menyertakan nilai dalam daftar yang diizinkan dan ditolak. Melakukannya dapat membuat kebijakan Anda lebih sulit dipahami.

Kebijakan organisasi dengan aturan boolean tidak menggabungkan dan menyelaraskan kebijakan. Jika kebijakan ditentukan pada resource, nilai TRUE atau FALSE tersebut digunakan untuk menentukan kebijakan yang berlaku. Contoh:

  • Folder menetapkan enforced: true untuk constraints/iam.managed.disableServiceAccountCreation.

  • Project di bawah folder tersebut menetapkan enforced: false untuk constraints/iam.managed.disableServiceAccountCreation.

Nilai enforced: true yang ditetapkan di folder diabaikan karena enforced: false ditentukan di project itu sendiri. Kebijakan organisasi tidak diterapkan di project tersebut.

Reset ke kebijakan default

Dengan memanggil RestoreDefault, kebijakan organisasi menggunakan perilaku default batasan untuk resource ini. Resource turunan juga mewarisi perilaku ini.