Uyumsuzluk nedenlerini belirleme

Bir Azure kaynağının bir ilke kuralıyla uyumlu olmadığı belirlendiğinde, kaynağın kuralın hangi bölümüyle uyumlu olmadığını anlamak yararlı olur. Ayrıca, hangi değişikliğin uyumlu olmayan hale getirmek için daha önce uyumlu bir kaynağı değiştirdiğini anlamak da yararlıdır. Bu bilgileri bulmanın iki yolu vardır:

Uyumluluk ayrıntıları

Bir kaynak uyumsuz olduğunda, bu kaynağın uyumluluk ayrıntılarına İlke uyumluluğu sayfasından ulaşabilirsiniz. Uyumluluk ayrıntıları bölmesi aşağıdaki bilgileri içerir:

  • Ad, tür, konum ve kaynak kimliği gibi kaynak ayrıntıları.
  • Geçerli ilke ataması için son değerlendirmenin uyumluluk durumu ve zaman damgası.
  • Kaynak uyumsuzluğunun nedenlerinin listesi.

Önemli

Uyumlu olmayan bir kaynağın uyumluluk ayrıntıları, bu kaynak üzerindeki özelliklerin geçerli değerini gösterdiğinden, kullanıcının kaynak türüne yönelik okuma işlemine sahip olması gerekir. Örneğin, Uyumlu olmayan kaynak ise Microsoft.Compute/virtualMachines kullanıcının işlemi olması Microsoft.Compute/virtualMachines/read gerekir. Kullanıcının gerekli işlemi yoksa bir erişim hatası görüntülenir.

Uyumluluk ayrıntılarını görüntülemek için şu adımları izleyin:

  1. Azure portalında Tüm hizmetler'i seçip İlke'yi arayarak ve seçerek Azure İlkesi hizmetini başlatın.

  2. Genel Bakış veya Uyumluluk sayfasında Uyumsuz uyumluluk durumundakibir ilkeyi seçin.

  3. İlke uyumluluğu sayfasının Kaynak uyumluluğu sekmesinden uyumsuz uyumluluk durumundaki bir kaynağın üç noktasını seçin ve basılı tutun (veya sağ tıklayın). Ardından Uyumluluk ayrıntılarını görüntüle'yi seçin.

    Screenshot of the View compliance details link on the Resource compliance tab.

  4. Uyumluluk ayrıntıları bölmesi, kaynağın en son değerlendirmesinden geçerli ilke atamasına kadar olan bilgileri görüntüler. Bu örnekte, alan Microsoft.Sql/servers/version 12.0 olarak bulunurken ilke tanımı 14.0 beklenir. Kaynak birden çok nedenle uyumlu değilse, her biri bu bölmede listelenir.

    Screenshot of the Compliance details pane and reasons for non-compliance that current value is 12 and target value is 14.

    auditIfNotExists Veya deployIfNotExists ilke tanımı için ayrıntılar details.type özelliğini ve isteğe bağlı özellikleri içerir. Liste için bkz . auditIfNotExists özellikleri ve deployIfNotExists özellikleri. Son değerlendirilen kaynak, tanımın ayrıntılar bölümünde yer alan ilgili bir kaynaktır.

    Örnek kısmi deployIfNotExists tanım:

    {
      "if": {
        "field": "type",
        "equals": "[parameters('resourceType')]"
      },
      "then": {
        "effect": "deployIfNotExists",
        "details": {
          "type": "Microsoft.Insights/metricAlerts",
          "existenceCondition": {
            "field": "name",
            "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
          },
          "existenceScope": "subscription",
          "deployment": {
            ...
          }
        }
      }
    }
    

    Screenshot of Compliance details pane for ifNotExists including evaluated resource count.

Dekont

Verileri korumak için, bir özellik değeri gizli dizi olduğunda geçerli değer yıldız görüntüler.

Bu ayrıntılar, bir kaynağın neden şu anda uyumsuz olduğunu açıklar, ancak kaynağın uyumsuz olmasına neden olan değişiklik ne zaman yapılmadığını gösterir. Bu bilgi için bkz . Değişiklik geçmişi (Önizleme).

Uyumluluk nedenleri

Resource Manager modlarının ve Kaynak Sağlayıcısı modlarının her birinin uyumsuzluk için farklı nedenleri vardır .

Genel Resource Manager modu uyumluluk nedenleri

Aşağıdaki tabloda her Resource Manager modunedeni ilke tanımındaki sorumlu koşulla eşlenmektedir:

Nedeni Koşul
Geçerli değer, anahtar olarak hedef değeri içermelidir. containsKey veya notContainsKey
Geçerli değer hedef değeri içermelidir. contains veya notContains
Geçerli değer hedef değere eşit olmalıdır. eşittir veya notEquals
Geçerli değer hedef değerden küçük olmalıdır. greaterOrEquals
Geçerli değer hedef değerden büyük veya buna eşit olmalıdır. greaterOrEquals veya daha az değil
Geçerli değer hedef değerden büyük olmalıdır. greater veya not lessOrEquals
Geçerli değer hedef değerden küçük veya buna eşit olmalıdır. lessOrEquals veya daha büyük değil
Geçerli değer mevcut olmalıdır. var
Geçerli değer hedef değerde olmalıdır. in veya notIn
Geçerli değer hedef değer gibi olmalıdır. beğenme veya beğenmeme
Geçerli değerin hedef değerle eşleşmesi için büyük/küçük harfe duyarlı olması gerekir. eşleşme veya eşleşmemeMatch
Geçerli değerin hedef değerle eşleşmesi büyük/küçük harfe duyarlı olmamalıdır. matchInsensitively veya notMatchInsensitively
Geçerli değer, hedef değeri anahtar olarak içermemelidir. notContainsKey veya containsKey
Geçerli değer hedef değeri içermemelidir. notContains veya içermez
Geçerli değer hedef değere eşit olmamalıdır. notEquals veya not equals
Geçerli değer mevcut olmamalıdır. yok
Geçerli değer hedef değerde olmamalıdır. içinde değil
Geçerli değer hedef değer gibi olmamalıdır. beğenmeyin veya beğenmeyin
Geçerli değer, hedef değerle eşleşen büyük/küçük harfe duyarlı olmamalıdır. notMatch veya eşleşmedi
Geçerli değer hedef değerle büyük/küçük harfe duyarlı olmamalıdır. notMatchInsensitively veya not matchInsensitively
İlke tanımındaki etki ayrıntılarıyla eşleşen ilgili kaynak yok. İlke kuralının if bölümünde tanımlanan kaynakla ilgili ve içinde tanımlanan then.details.type türde bir kaynak yok.

Kaynak Sağlayıcısı modu uyumluluk nedenlerini Azure İlkesi

Aşağıdaki tablo, her Microsoft.PolicyInsightsKaynak Sağlayıcısı modu neden kodunu ilgili açıklamasıyla eşler:

Uyumluluk neden kodu Hata iletisi ve açıklaması
NonModifiablePolicyAlias NonModifiableAliasConflict: '{alias}' diğer adı, '{apiVersion}' API sürümünü kullanan isteklerde değiştirilemez. Bu hata, diğer adın 'değiştir' efektini desteklemediği veya yalnızca farklı bir belirteç türüyle 'değiştir' efektini desteklediği bir API sürümü kullanan bir istek olduğunda oluşur.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: '{ aliases }' diğer adları, API sürümünü kullanan isteklerde değiştirilemez: '{ apiVersion }'. Bu, diğer adların 'değiştir' efektini desteklemediği VEYA farklı bir belirteç türüyle 'değiştir' efektini desteklemediği API sürümlerini kullanan isteklerde oluşabilir.
ÇakışanAppendPolicies ConflictingAppendPolicies: '{notApplicableFields}' alanını değiştiren çakışan ilke atamaları bulundu. İlke tanımlayıcıları: '{policy}'. İlke atamalarını güncelleştirmek için abonelik yöneticisine başvurun.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues: İlke atamaları, istekte zaten var olan alanları farklı değerlerle eklemeye çalıştı. Alanlar: '{existingFields}'. İlke tanımlayıcıları: '{policy}'. İlkeleri güncelleştirmek için abonelik yöneticisine başvurun.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields: '{apiVersion}' API sürümü için tanımlanmamış alan özelliğine başvuran ilke tanımı bulundu. Alanlar: '{nonExistingFields}'. İlke tanımlayıcıları: '{policy}'. İlkeleri güncelleştirmek için abonelik yöneticisine başvurun.
MissingRegistrationForType MissingRegistrationForResourceType: Abonelik '{ResourceType}' kaynak türü için kayıtlı değil. Kaynak türünün mevcut olup olmadığını ve kaynak türünün kayıtlı olup olmadığını denetleyin.
AmbiguousPolicyEvaluationPaths İstek içeriğinde bir veya daha fazla belirsiz yol var: İlkeler için gereken '{0}' : ''{1}.
InvalidResourceNameWildcardPosition '{0}' ilke tanımıyla ilişkili '{1}' ilke ataması değerlendirilemedi. IfNotExists koşulundaki '{2}' kaynak adı geçersiz bir konumda '?' joker karakterini içeriyor. Joker karakterler yalnızca bir segmentteki adın sonunda tek başına bulunabilir (örn. TopLevelResourceName/?). İlkeyi düzeltin veya engeli kaldırmak için ilke atamasını kaldırın.
TooManyResourceNameSegments '{0}' ilke tanımıyla ilişkili '{1}' ilke ataması değerlendirilemedi. ifNotExists koşulundaki '{2}' kaynak adı çok fazla ad kesimi içeriyor. Ad kesimlerinin sayısı, tür segmentlerinin sayısına eşit veya ondan az olmalıdır (kaynak sağlayıcısı ad alanı hariç). İlke tanımını düzeltin veya engeli kaldırmak için ilke atamasını kaldırın.
InvalidPolicyFieldPath İlke tanımındaki '{0}' alan yolu geçersiz. Alan yolları boş segment içermemelidir. Bunlar yalnızca bölümleri bölmek için '.' karakteri ve dizi özelliklerine erişmek için '[*]' karakter dizisi dışında alfasayısal karakterler içerebilir.

AKS Kaynak Sağlayıcısı modu uyumluluk nedenleri

Aşağıdaki tablo, her Microsoft.Kubernetes.DataKaynak Sağlayıcısı modunedenini ilke tanımındaki kısıtlama şablonunun sorumlu durumuyla eşler:

Nedeni Kısıtlama şablonu neden açıklaması
Constraint/TemplateCreateFailed Kaynak, kümedeki mevcut Bir Kısıtlama/Şablon ile kaynak meta veri adına göre eşleşmeyen bir Kısıtlama/Şablon içeren bir ilke tanımı için oluşturamadı.
Constraint/TemplateUpdateFailed Kısıtlama/Şablon, kaynak meta veri adına göre kümedeki mevcut bir Kısıtlama/Şablon ile eşleşen bir Kısıtlama/Şablon ile ilke tanımı için güncelleştirilemedi.
Constraint/TemplateInstallFailed Kısıtlama/Şablon oluşturulamadı ve oluşturma veya güncelleştirme işlemi için kümeye yüklenemedi.
ConstraintTemplateConflicts Şablon, farklı kaynakla aynı Şablon adını kullanan bir veya daha fazla ilke tanımıyla çakışıyor.
ConstraintStatusStale Mevcut bir 'Denetim' durumu var, ancak Ağ Geçidi Denetleyicisi son bir saat içinde bir denetim gerçekleştirmedi.
ConstraintNotProcessed Durum yok ve Ağ Geçidi Denetleyicisi son bir saat içinde bir denetim gerçekleştirmedi.
InvalidConstraint/Şablon Kaynak, aşağıdaki nedenlerden biri nedeniyle reddedildi: geçersiz kısıtlama şablonu Rego içeriği, geçersiz YAML veya kısıtlama ve kısıtlama şablonu arasındaki parametre türü uyuşmazlığı (tamsayı beklendiğinde dize değeri sağlama).

Dekont

Kümede zaten var olan ilke atamaları ve kısıtlama şablonları için bu Kısıtlama/Şablon başarısız olursa, küme mevcut Kısıtlama/Şablon korunarak korunur. İlke atamasında hata çözülene veya eklenti kendi kendine düzelene kadar küme uyumsuz olarak bildirir. Çakışmayı işleme hakkında daha fazla bilgi için bkz . Kısıtlama şablonu çakışmaları.

Kaynak Sağlayıcısı modları için bileşen ayrıntıları

Kaynak Sağlayıcısı moduna sahip atamalar için Uyumlu olmayan kaynağı seçerek bileşen uyumluluk kayıtlarını görüntüleyin. Bileşen Uyumluluğu sekmesi, Bileşen Adı, Bileşen Kimliği ve Tür gibi Kaynak Sağlayıcısı moduna özgü daha fazla bilgi gösterir.

Screenshot of Component Compliance dashboard and compliance details for assignments with a Resource Provider mode.

Konuk yapılandırması için uyumluluk ayrıntıları

Konuk Yapılandırması kategorisindeki ilke tanımları için sanal makinede değerlendirilen birden çok ayar olabilir ve ayar başına ayrıntıları görüntülemeniz gerekir. Örneğin, bir güvenlik ayarları listesi için denetim gerçekleştiriyorsanız ve bunlardan yalnızca birinin durumu Uyumsuz ise, hangi belirli ayarların uyumsuz olduğunu ve neden uyumsuz olduğunu bilmeniz gerekir.

Ayrıca sanal makinede doğrudan oturum açmaya erişiminiz olmayabilir ancak sanal makinenin neden Uyumsuz olduğunu bildirmeniz gerekir.

Azure portalı

İlke uyumluluk ayrıntılarını görüntülemek için Uyumluluk ayrıntıları bölümündeki adımları izleyerek başlayın.

Uyumluluk ayrıntıları bölmesi görünümünde Son değerlendirilen kaynak bağlantısını seçin.

Screenshot of viewing the auditIfNotExists definition compliance details.

Konuk Ataması sayfasında tüm kullanılabilir uyumluluk ayrıntıları görüntülenir. Görünümdeki her satır, makinenin içinde gerçekleştirilen bir değerlendirmeyi temsil eder. Neden sütununda, Konuk Atamasının neden Uyumsuz olduğunu açıklayan bir tümcecik gösterilir. Örneğin, parola ilkelerini denetiyorsanız, Neden sütunu her ayarın geçerli değerini içeren metni görüntüler.

Screenshot of the Guest Assignment compliance details.

Yapılandırma ataması ayrıntılarını uygun ölçekte görüntüleme

Konuk yapılandırma özelliği, Azure İlkesi atamaları dışında kullanılabilir. Örneğin, Azure Otomatik Yönetim konuk yapılandırma atamaları oluşturur veya makineleri dağıtırken yapılandırmalar atayabilirsiniz.

Kiracınızdaki tüm konuk yapılandırma atamalarını görüntülemek için Azure portalından Konuk Atamaları sayfasını açın. Ayrıntılı uyumluluk bilgilerini görüntülemek için Ad sütunundaki bağlantıyı kullanarak her atamayı seçin.

Screenshot of the Guest Assignment page.

Değişiklik geçmişi (Önizleme)

Yeni bir genel önizleme kapsamında, tam mod silmeyi destekleyen tüm Azure kaynakları için son 14 günlük değişiklik geçmişi kullanılabilir. Değişiklik geçmişi, bir değişikliğin ne zaman algılandığı ve her değişiklik için görsel fark hakkında ayrıntılar sağlar. Azure Resource Manager özellikleri eklendiğinde, kaldırıldığında veya değiştirildiğinde değişiklik algılama tetiklenir.

  1. Azure portalında Tüm hizmetler'i seçip İlke'yi arayarak ve seçerek Azure İlkesi hizmetini başlatın.

  2. Genel Bakış veya Uyumluluk sayfasında herhangi bir uyumluluk durumunda bir ilke seçin.

  3. İlke uyumluluğu sayfasının Kaynak uyumluluğu sekmesinden bir kaynak seçin.

  4. Kaynak Uyumluluğu sayfasında Değişiklik Geçmişi (önizleme) sekmesini seçin. Varsa, algılanan değişikliklerin listesi görüntülenir.

    Screenshot of the Change History tab and detected change times on Resource Compliance page.

  5. Algılanan değişikliklerden birini seçin. Kaynağın görsel farkı Değişiklik geçmişi sayfasında gösterilir.

    Screenshot of the Change History Visual Diff of the before and after state of properties on the Change history page.

    Görsel fark , bir kaynakta yapılan değişiklikleri tanımlamaya yardımcı olarak kullanılır. Algılanan değişiklikler kaynağın geçerli uyumluluk durumuyla ilgili olmayabilir.

Değişiklik geçmişi verileri Azure Kaynak Grafı tarafından sağlanır. Bu bilgileri Azure portalının dışında sorgulamak için bkz . Kaynak değişikliklerini alma.

Sonraki adımlar