Efek tolak definisi Azure Policy

Efeknya deny digunakan untuk mencegah permintaan sumber daya yang tidak cocok dengan standar yang ditentukan melalui definisi kebijakan dan gagal permintaan.

Evaluasi tolak

Saat membuat atau memperbarui sumber daya yang cocok dalam mode Azure Resource Manager, tolak akan mencegah permintaan sebelum dikirim ke Resource Provider. Permintaan dikembalikan sebagai 403 (Forbidden). Di portal, Forbidden dapat dilihat sebagai status penyebaran yang dicegah oleh penetapan kebijakan. Untuk mode Resource Provider, penyedia sumber daya mengelola evaluasi sumber daya.

Selama evaluasi sumber daya yang ada, sumber daya yang cocok dengan deny definisi kebijakan ditandai sebagai tidak patuh.

Properti tolak

Untuk mode Resource Manager, deny efek tidak memiliki properti lagi untuk digunakan dalam then kondisi definisi kebijakan.

Untuk mode Microsoft.Kubernetes.DataPenyedia Sumber Daya , efeknya deny memiliki subproperti berikut dari details. Penggunaan templateInfo diperlukan untuk definisi kebijakan baru atau yang diperbarui karena constraintTemplate sudah tidak digunakan lagi.

  • templateInfo (diperlukan)
    • Tidak dapat digunakan dengan constraintTemplate.
    • sourceType (diperlukan)
      • Mendefinisikan jenis sumber untuk templat batasan. Nilai yang diizinkan: PublicURL atau Base64Encoded.

      • Jika PublicURL, dipasangkan dengan properti url untuk menyediakan lokasi templat batasan. Lokasi harus dapat diakses publik.

        Peringatan

        Jangan gunakan SAS URI atau token di url atau apa pun yang dapat mengekspos rahasia.

      • Jika Base64Encoded, dipasangkan dengan properti content untuk menyediakan templat batasan dasar 64 yang dikodekan. Lihat Membuat definisi kebijakan dari templat batasan untuk membuat definisi kustom dari templat batasan Open Policy Agent (OPA) Gatekeeper v3 yang ada.

  • constraint (opsional)
    • Tidak dapat digunakan dengan templateInfo.
    • Implementasi CRD dari templat Batasan. Menggunakan parameter yang diteruskan melalui values sebagai {{ .Values.<valuename> }}. Dalam contoh 2 di bawah ini, nilai-nilai ini adalah {{ .Values.excludedNamespaces }} dan {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (tidak digunakan lagi)
    • Tidak dapat digunakan dengan templateInfo.
    • Harus diganti dengan templateInfo saat membuat atau memperbarui ketentuan kebijakan.
    • CustomResourceDefinition (CRD) templat Batasan yang menentukan Batasan baru. Templat menentukan logika Rego, skema Batasan, dan parameter Batasan yang diteruskan melalui values dari Azure Policy. Untuk informasi selengkapnya, buka Batasan Gatekeeper.
  • constraintInfo (opsional)
    • Tidak dapat digunakan dengan constraint, , constraintTemplate, apiGroupsatau kinds.
    • Jika constraintInfo tidak disediakan, batasan dapat dihasilkan dari templateInfo dan kebijakan.
    • sourceType (diperlukan)
      • Menentukan jenis sumber untuk batasan. Nilai yang diizinkan: PublicURL atau Base64Encoded.

      • Jika PublicURL, dipasangkan dengan properti url untuk menyediakan lokasi batasan. Lokasi harus dapat diakses publik.

        Peringatan

        Jangan gunakan SAS URI atau token di url atau apa pun yang dapat mengekspos rahasia.

  • namespaces (opsional)
    • Sebuah array pada namespace layanan Kubernetes untuk membatasi kebijakan.
    • Nilai kosong atau hilang menyebabkan evaluasi kebijakan menyertakan semua namespace, kecuali yang ditentukan dalam excludedNamespaces.
  • excludedNamespaces (diperlukan)
  • labelSelector (diperlukan)
    • Objek yang mencakup matchLabels properti (objek) dan matchExpression (array) untuk memungkinkan menentukan sumber daya Kubernetes mana yang akan disertakan untuk evaluasi kebijakan yang cocok dengan label dan pemilih yang disediakan.
    • Nilai kosong atau hilang menyebabkan evaluasi kebijakan menyertakan semua label dan pemilih, kecuali namespace yang ditentukan dalam excludedNamespaces.
  • apiGroups (diperlukan saat menggunakan templateInfo)
    • Array yang menyertakan grup API untuk dicocokkan. Array kosong ([""]) adalah grup API inti.
    • Tidak diizinkan untuk mendefinisikan ["*"] pada apiGroups.
  • kinds (diperlukan saat menggunakan templateInfo)
    • Array yang menyertakan jenis objek Kubernetes untuk membatasi evaluasi.
    • Tidak diizinkan untuk mendefinisikan ["*"] pada jenis.
  • values (opsional)
    • Menentukan parameter dan nilai apa pun untuk diteruskan ke Batasan. Setiap nilai harus ada di CRD templat Batasan.

Contoh tolak

Contoh 1: Menggunakan deny efek untuk mode Resource Manager.

"then": {
  "effect": "deny"
}

Contoh 2: Menggunakan deny efek untuk mode Penyedia Sumber Daya dari Microsoft.Kubernetes.Data. Informasi tambahan dalam details.templateInfo menyatakan penggunaan PublicURL dan diatur url ke lokasi templat Batasan untuk digunakan di Kubernetes untuk membatasi gambar kontainer yang diizinkan.

"then": {
  "effect": "deny",
  "details": {
    "templateInfo": {
      "sourceType": "PublicURL",
      "url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
    },
    "values": {
      "imageRegex": "[parameters('allowedContainerImagesRegex')]"
    },
    "apiGroups": [
      ""
    ],
    "kinds": [
      "Pod"
    ]
  }
}

Langkah berikutnya