Azure İlkesi tanım yapısı temelleri

Azure İlkesi tanımları, kaynak uyumluluk koşullarını ve bir koşul karşılandığında alınması gereken etkiyi açıklar. Koşul, kaynak özelliği alanını veya değerini gerekli bir değerle karşılaştırır. Kaynak özelliği alanlarına diğer adlar kullanılarak erişilir. Kaynak özelliği alanı bir dizi olduğunda, tüm dizi üyelerinden değerleri seçmek ve her birine bir koşul uygulamak için özel bir dizi diğer adı kullanılabilir. Koşullar hakkında daha fazla bilgi edinin.

İlke atamalarını kullanarak maliyetleri denetleyebilir ve kaynaklarınızı yönetebilirsiniz. Örneğin, yalnızca belirli sanal makine türlerine izin verileceğini belirtebilirsiniz. Alternatif olarak, kaynakların belirli bir etikete sahip olmasını da zorunlu kılabilirsiniz. Kapsamdaki atamalar, bu kapsamdaki ve altındaki tüm kaynaklar için geçerlidir. Bir kaynak grubuna ilke ataması uygulanırsa, o kaynak grubundaki tüm kaynaklara uygulanabilir.

JSON kullanarak öğeleri içeren bir ilke tanımı oluşturursunuz:

  • displayName
  • description
  • mode
  • version
  • metadata
  • parameters
  • policyRule
    • mantıksal değerlendirmeler
    • effect

Örneğin, aşağıdaki JSON kaynak dağıtımını sınırlayan bir ilke gösterir:

{
  "properties": {
    "displayName": "Allowed locations",
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
    "mode": "Indexed",
    "metadata": {
      "version": "1.0.0",
      "category": "Locations"
    },
    "parameters": {
      "allowedLocations": {
        "type": "array",
        "metadata": {
          "description": "The list of locations that can be specified when deploying resources",
          "strongType": "location",
          "displayName": "Allowed locations"
        },
        "defaultValue": [
          "westus2"
        ]
      }
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "location",
          "in": "[parameters('allowedLocations')]"
        }
      },
      "then": {
        "effect": "deny"
      }
    }
  }
}

Daha fazla bilgi için ilke tanımı şemasına gidin. Azure İlkesi yerleşikler ve desenler Azure İlkesi örneklerde yer alır.

Görünen ad ve açıklama

İlke tanımını tanımlamak ve tanımın ne zaman kullanıldığına ilişkin bağlam sağlamak için ve description kullanırsınızdisplayName. en displayName fazla 128 karakter uzunluğunda ve description en fazla 512 karakter uzunluğundadır.

Not

İlke tanımının oluşturulması veya güncelleştirilmesi sırasında, id, typeve name JSON dışındaki özellikler tarafından tanımlanır ve JSON dosyasında gerekli değildir. SDK aracılığıyla ilke tanımının getirilmesi JSON'un bir parçası olarak , typeve name özelliklerini döndürürid, ancak her biri ilke tanımıyla ilgili salt okunur bilgilerdir.

Politika türü

Özelliği ayarlanamıyor policyType olsa da SDK tarafından döndürülen ve portalda görünen üç değer vardır:

  • Builtin: Microsoft bu ilke tanımlarını sağlar ve korur.
  • Custom: Müşteriler tarafından oluşturulan tüm ilke tanımları bu değere sahiptir.
  • Static: Microsoft Sahipliği ile bir Mevzuat Uyumluluğu ilke tanımını gösterir. Bu ilke tanımlarının uyumluluk sonuçları, Microsoft altyapısına yönelik Microsoft dışı denetimlerin sonuçlarıdır. Azure portalında bu değer bazen Microsoft tarafından yönetilen olarak görüntülenir. Daha fazla bilgi için bkz . Bulutta paylaşılan sorumluluk.

Mod

mode, ilkenin bir Azure Resource Manager özelliğini mi yoksa Kaynak Sağlayıcısı özelliğini mi hedeflediğini bağlı olarak yapılandırılır.

Resource Manager modları

, mode bir ilke tanımı için hangi kaynak türlerinin değerlendirileceğini belirler. Desteklenen modlar şunlardır:

  • all: kaynak gruplarını, abonelikleri ve tüm kaynak türlerini değerlendirme
  • indexed: yalnızca etiketleri ve konumu destekleyen kaynak türlerini değerlendirin

Örneğin, kaynak Microsoft.Network/routeTables etiketleri ve konumu destekler ve her iki modda da değerlendirilir. Ancak, kaynak Microsoft.Network/routeTables/routes etiketlenemez ve modda indexed değerlendirilmez.

Çoğu durumda olarak ayarlamanızı mode all öneririz. Portal aracılığıyla oluşturulan tüm ilke tanımları modu kullanır all . PowerShell veya Azure CLI kullanıyorsanız, parametresini mode el ile belirtebilirsiniz. İlke tanımı bir mode değer içermiyorsa, varsayılan olarak all Azure PowerShell'de ve null Azure CLI'da olarak belirlenir. Mod null , geriye dönük uyumluluğu desteklemek için kullanmakla indexed aynıdır.

indexed etiketleri veya konumları zorunlu kılan ilkeler oluşturulurken kullanılmalıdır. Gerekli olmasa da, etiketleri ve konumları desteklemeyen kaynakların uyumluluk sonuçlarında uyumsuz olarak gösterilmesini engeller. Özel durum kaynak grupları ve abonelikleridir. Kaynak grubu veya abonelikte konumu veya etiketleri zorunlu kılan ilke tanımları veya türü olarak ayarlanmalıdır mode ve özellikle hedeflenmelidir Microsoft.Resources/subscriptions Microsoft.Resources/subscriptions/resourceGroups.all Örnek için bkz . Desen: Etiketler - Örnek #1. Etiketleri destekleyen kaynakların listesi için bkz . Azure kaynakları için etiket desteği.

Kaynak Sağlayıcısı modları

Aşağıdaki Kaynak Sağlayıcısı modları tam olarak desteklenir:

  • Microsoft.Kubernetes.Data Kubernetes kümelerini ve podlar, kapsayıcılar ve girişler gibi bileşenleri yönetmek için. Azure Kubernetes Service kümeleri ve Azure Arc özellikli Kubernetes kümeleri için desteklenir. Bu Kaynak Sağlayıcısı modunu kullanan tanımlar, denetim, reddetme ve devre dışı efektleri kullanır.
  • Microsoft.KeyVault.DataAzure Key Vault'ta kasaları ve sertifikaları yönetmek için. Bu ilke tanımları hakkında daha fazla bilgi için bkz. Azure Key Vault'u Azure İlkesi ile tümleştirme.
  • Microsoft.Network.DataAzure İlkesi kullanarak Azure Sanal Ağ Manager özel üyelik ilkelerini yönetmek için.

Aşağıdaki Kaynak Sağlayıcısı modları şu anda önizleme olarak desteklenmektedir:

Not

Açıkça belirtilmediği sürece, Kaynak Sağlayıcısı modları yalnızca yerleşik ilke tanımlarını destekler ve muafiyetler bileşen düzeyinde desteklenmez.

Azure İlkesi sürüm oluşturma yayınlandığında, aşağıdaki Kaynak Sağlayıcısı modları yerleşik sürüm oluşturma işlemini desteklemez:

  • Microsoft.DataFactory.Data
  • Microsoft.MachineLearningServices.v2.Data
  • Microsoft.ManagedHSM.Data

Sürüm (önizleme)

Yerleşik ilke tanımları aynı definitionIDile birden çok sürümü barındırabilir. Sürüm numarası belirtilmezse, tüm deneyimler tanımın en son sürümünü gösterir. Yerleşik bir sürümü görmek için API, SDK veya kullanıcı arabiriminde belirtilmesi gerekir. Atama içindeki tanımın belirli bir sürümüne başvurmak için bkz . atama içinde tanım sürümü

Azure İlkesi hizmeti, yerleşik ilke tanımına deprecated veya girişimine durum ve değişiklik düzeyini iletmek için , previewve özelliklerini kullanırversion. biçimi version : {Major}.{Minor}.{Patch}. İlke tanımı önizleme durumundayken, sonek önizleme özelliğine version eklenir ve boole olarak kabul edilir. İlke tanımı kullanım dışı bırakıldığında, kullanımdan kaldırma kullanılarak tanımın meta verilerinde "deprecated": "true"boole olarak yakalanır.

  • Ana Sürüm (örnek: 2.0.0): Ana kural mantığı değişiklikleri, parametreleri kaldırma ve varsayılan olarak zorlama etkisi ekleme gibi önemli değişikliklere neden olur.
  • İkincil Sürüm (örnek: 2.1.0): Küçük kural mantığı değişiklikleri, izin verilen yeni parametre değerleri ekleme, olarak değiştirme roleDefinitionIds, girişim içinde tanım ekleme veya taşıma gibi değişiklikleri tanıtın.
  • Yama Sürümü (örnek: 2.1.4): dize veya meta veri değişiklikleri ve kesme camı güvenlik senaryoları (nadir) tanıtın.

Azure İlkesi sürümleri hakkında daha fazla bilgi için bkz. Yerleşik sürüm oluşturma. İlkenin kullanım dışı veya önizleme aşamasında ne anlama geldiğini öğrenmek için bkz. İlkeleri önizleme ve kullanımdan kaldırma.

Meta veri

İsteğe bağlı metadata özellik, ilke tanımı hakkındaki bilgileri depolar. Müşteriler içindeki kuruluşlarında metadatayararlı olan tüm özellikleri ve değerleri tanımlayabilir. Ancak, Azure İlkesi ve yerleşik olarak kullanılan bazı yaygın özellikler vardır. Her metadata özelliğin sınırı 1.024 karakterdir.

Ortak meta veri özellikleri

  • version (dize): İlke tanımının içeriğinin sürümü hakkındaki ayrıntıları izler.
  • category (dize): azure portalında ilke tanımının hangi kategori altında görüntüleneceğini belirler.
  • preview(boole): İlke tanımı önizleme ise için true veya false bayrağı.
  • deprecated (boole): İlke tanımının kullanım dışı olarak işaretlenmesi için true veya false bayrağı.
  • portalReview (dize): Gerekli giriş ne olursa olsun parametrelerin portalda gözden geçirilip geçirilmeyeceğini belirler.

Tanım konumu

Girişim veya ilke oluşturulurken tanım konumunun belirtilmesi gerekir. Tanım konumu bir yönetim grubu veya abonelik olmalıdır. Bu konum, girişimin veya ilkenin atanabileceği kapsamı belirler. Kaynaklar, atama için hedeflenecek tanım konumu hiyerarşisinde doğrudan veya alt öğeleri olmalıdır.

Tanım konumu bir ise:

  • Abonelik - yalnızca bu abonelik içindeki kaynaklara ilke tanımı atanabilir.
  • Yönetim grubu - İlke tanımına yalnızca alt yönetim grupları ve alt abonelikler içindeki kaynaklar atanabilir. İlke tanımını birkaç aboneliğe uygulamayı planlıyorsanız, konumun her aboneliği içeren bir yönetim grubu olması gerekir.

Daha fazla bilgi için bkz. Azure İlkesi'nde kapsamı anlama.

Sonraki adımlar