Share via


Azure İlkesi tanımları reddetme etkisi

Bu deny etki, ilke tanımı aracılığıyla tanımlı standartlara uymayan ve isteği başarısız olan bir kaynak isteğini önlemek için kullanılır.

Değerlendirmeyi reddet

Resource Manager modunda eşleşen bir kaynak oluştururken veya güncelleştirirken reddetme, kaynak sağlayıcısına gönderilmeden önce isteği engeller. İstek olarak 403 (Forbidden)döndürülür. portalda, Forbidden ilke ataması tarafından engellenen bir dağıtım durumu olarak görüntülenebilir. Kaynak Sağlayıcısı modu için kaynak sağlayıcısı, kaynağın değerlendirilmesini yönetir.

Mevcut kaynakların değerlendirmesi sırasında, bir deny ilke tanımıyla eşleşen kaynaklar uyumsuz olarak işaretlenir.

Reddetme özellikleri

Resource Manager modu için, etkinin deny ilke tanımının then koşulunda kullanılacak başka özelliği yoktur.

bir Kaynak Sağlayıcısı modu Microsoft.Kubernetes.Datadeny için, etkisi aşağıdaki alt özelliklerine detailssahiptir. templateInfo kullanımı, kullanım dışı olduğu gibi constraintTemplate yeni veya güncelleştirilmiş ilke tanımları için gereklidir.

  • templateInfo (gerekli)
    • ile constraintTemplatekullanılamaz.
    • sourceType (gerekli)
      • Kısıtlama şablonu için kaynak türünü tanımlar. İzin verilen değerler: PublicURL veya Base64Encoded.

      • ise PublicURL, kısıtlama şablonunun konumunu sağlamak için özelliğiyle url eşleştirilir. Konum genel olarak erişilebilir olmalıdır.

        Uyarı

        SAS URI'lerini veya belirteçlerini url gizli diziyi açığa çıkarabilecek başka bir yerde kullanmayın.

      • ise Base64Encoded, temel 64 kodlanmış kısıtlama şablonunu sağlamak için özelliğiyle content eşleştirilir. Mevcut bir Açık İlke Aracısı (OPA) Ağ Geçidi Denetleyicisi v3 kısıtlama şablonundan özel bir tanım oluşturmak için bkz. Kısıtlama şablonundan ilke tanımı oluşturma.

  • constraint (isteğe bağlı)
    • ile templateInfokullanılamaz.
    • Kısıtlama şablonunun CRD uygulaması. aracılığıyla values{{ .Values.<valuename> }}geçirilen parametreleri kullanır. Aşağıdaki 2. örnekte bu değerler ve {{ .Values.allowedContainerImagesRegex }}değerleridir{{ .Values.excludedNamespaces }}.
  • constraintTemplate (kullanım dışı)
    • ile templateInfokullanılamaz.
    • İlke tanımı oluşturulurken veya güncelleştirilirken ile templateInfo değiştirilmelidir.
    • Yeni Kısıtlamaları tanımlayan CustomResourceDefinition (CRD) Kısıtlama şablonu. Şablon, Azure İlkesi üzerinden values geçirilen Rego mantığını, Kısıtlama şemasını ve Kısıtlama parametrelerini tanımlar. Daha fazla bilgi için Ağ Geçidi Denetleyicisi kısıtlamaları'na gidin.
  • constraintInfo (isteğe bağlı)
    • , , constraintTemplateapiGroupsveya kindsile constraintkullanılamaz.
    • Sağlanamazsa constraintInfo , kısıtlama ve ilkesinden templateInfo oluşturulabilir.
    • sourceType (gerekli)
      • Kısıtlama için kaynak türünü tanımlar. İzin verilen değerler: PublicURL veya Base64Encoded.

      • ise PublicURL, kısıtlamanın konumunu sağlamak için özelliğiyle url eşleştirilir. Konum genel olarak erişilebilir olmalıdır.

        Uyarı

        SAS URI'lerini veya belirteçlerini url gizli diziyi açığa çıkarabilecek başka bir yerde kullanmayın.

  • namespaces (isteğe bağlı)
  • excludedNamespaces (gerekli)
  • labelSelector (gerekli)
    • Sağlanan etiketler ve matchExpression seçiciler ile eşleşen ilke değerlendirmesi için hangi Kubernetes kaynaklarının dahilleneceğini belirtmeye olanak sağlayan (nesne) ve (dizi) özellikleri içeren matchLabels bir nesne.
    • Boş veya eksik bir değer, ilke değerlendirmesinin içinde tanımlanan ad alanları dışında tüm etiketleri ve seçicileri içermesine excludedNamespacesneden olur.
  • apiGroups(templateInfo kullanılırken gereklidir)
    • Eşleşecek API gruplarını içeren bir dizi. Boş bir dizi ([""]), çekirdek API grubudur.
    • apiGroups için tanımlamaya ["*"] izin verilmiyor.
  • kinds(templateInfo kullanılırken gereklidir)
  • values (isteğe bağlı)
    • Kısıtlamaya geçirecek parametreleri ve değerleri tanımlar. Her değer Kısıtlama şablonu CRD'sinde bulunmalıdır.

Reddetme örneği

Örnek 1: Resource Manager modları için efekti kullanma deny .

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

Örnek 2: bir Kaynak Sağlayıcısı modu için efekti kullanma denyMicrosoft.Kubernetes.Data. içindeki details.templateInfo ek bilgiler kullanımı PublicURL bildirir ve izin verilen kapsayıcı görüntülerini sınırlamak için Kubernetes'te kullanılacak Kısıtlama şablonunun konumuna ayarlar url .

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

Sonraki adımlar