تأثير رفض تعريفات نهج Azure

deny يتم استخدام التأثير لمنع طلب مورد لا يتطابق مع المعايير المحددة من خلال تعريف النهج ويفشل في الطلب.

تقييم Deny

عند إنشاء مورد متطابق أو تحديثه في وضع Resource Manager، يمنع Deny الطلب قبل إرساله إلى موفر الموارد. يتم إرجاع الطلب كـ 403 (Forbidden). في المدخل، Forbidden يمكن عرض كحالة نشر تم منعها بواسطة تعيين النهج. بالنسبة إلى وضع موفر الموارد، يدير موفر المورد تقييم المورد.

أثناء تقييم الموارد الموجودة، يتم وضع علامة على الموارد التي تطابق تعريف النهج deny على أنها غير متوافقة.

خصائص Deny

بالنسبة إلى وضع Resource Manager، لا يحتوي التأثير على deny أي خصائص أخرى للاستخدام في then حالة تعريف النهج.

بالنسبة إلى وضع موفر الموارد الخاص ب Microsoft.Kubernetes.Data، deny يحتوي التأثير على الخصائص الفرعية التالية ل details. استخدام templateInfo مطلوب لتعريفات النهج الجديدة أو المحدثة كما تم إهمالconstraintTemplate.

  • templateInfo (مطلوب)
    • لا يمكن استخدامها مع constraintTemplate.
    • sourceType (مطلوب)
      • تعرف نوع المصدر لقالب القيد. القيم المسموح بها: PublicURL أو Base64Encoded.

      • إذا كانت PublicURL، مقترنة بخاصية url لتوفير موقع قالب القيد. يجب أن يكون الموقع متاحًا للجمهور.

        تحذير

        لا تستخدم معرفات URI لـ SAS أو الرموز المميزة في url أو أي شيء آخر يمكن أن يكشف بيانات سرية.

      • إذا كانت Base64Encoded، مقترنة بخاصية content لتوفير قالب القيد المشفرة 64 الأساسي. راجع إنشاء تعريف نهج من قالب القيد لإنشاء تعريف مخصص من قالب قيد Open Policy Agent (OPA) Gatekeeper v3 موجود.

  • constraint (اختياري)
    • لا يمكن استخدامها مع templateInfo.
    • تنفيذ CRD لقالب Constraint. يستخدم المعلمات التي تم تمريرها عبر values ك {{ .Values.<valuename> }}. في المثال 2 المذكور أدناه، هذه القيم هي {{ .Values.excludedNamespaces }} و{{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (مهمل)
    • لا يمكن استخدامها مع templateInfo.
    • يجب استبدالها بـ templateInfo عند إنشاء تعريف نهج أو تحديثه.
    • قالب القيد CustomResourceDefinition (CRD) الذي يحدد القيود الجديدة. يعرف القالب منطق Rego ومخطط Constraint ومعلمات Constraint التي يتم تمريرها عبر values من Azure Policy. لمزيد من المعلومات، انتقل إلى قيود Gatekeeper.
  • constraintInfo (اختياري)
    • لا يمكن استخدامها مع constraintأو constraintTemplateapiGroupsأو أو kinds.
    • إذا constraintInfo لم يتم توفيره، يمكن إنشاء القيد من templateInfo و النهج.
    • sourceType (مطلوب)
      • تعريف نوع المصدر للقيد. القيم المسموح بها: PublicURL أو Base64Encoded.

      • إذا ، PublicURLمقترنة بخاصية url لتوفير موقع القيد. يجب أن يكون الموقع متاحًا للجمهور.

        تحذير

        لا تستخدم معرفات URI لـ SAS أو الرموز المميزة في url أو أي شيء آخر يمكن أن يكشف بيانات سرية.

  • namespaces (اختياري)
    • صفيفمساحات أسماء Kubernetes للحد من تقييم النهج.
    • تتسبب القيمة الفارغة أو المفقودة في تضمين تقييم النهج كافة مساحات الأسماء، باستثناء تلك المعرفة في excludedNamespaces.
  • excludedNamespaces (مطلوب)
  • labelSelector (مطلوب)
    • عنصر يتضمن خصائص (كائن) و matchExpression (صفيف) للسماح بتحديد موارد Kubernetes التي يجب تضمينها لتقييم النهج الذي يطابق التسميات والمحددات المتوفرة.matchLabels
    • تؤدي القيمة الفارغة أو المفقودة إلى تضمين تقييم النهج كافة التسميات والمحددات، باستثناء مساحات الأسماء المعرفة في excludedNamespaces.
  • apiGroups (مطلوب عند استخدام templateInfo)
  • kinds (مطلوب عند استخدام templateInfo)
    • صفيف يتضمن kind عنصر Kubernetes للحد من التقييم إليه.
    • تعريف ["*"] لـkinds غير مسموح به.
  • values (اختياري)
    • تعرف أي من المعلمات والقيم لتمريرها إلى القيد. ينبغي أن تكون كل قيمة موجودة في قالب القيد CRD.

مثال Deny

مثال 1: استخدام deny التأثير لأوضاع Resource Manager.

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

مثال 2: استخدام deny التأثير لوضع موفر الموارد ل Microsoft.Kubernetes.Data. تعلن المعلومات الإضافية في details.templateInfo عن استخدام PublicURL وتعيين url إلى موقع قالب Constraint لاستخدامه في Kubernetes للحد من صور الحاوية المسموح بها.

"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"
    ]
  }
}

الخطوات التالية