Azure İlkesi kullanımıyla ilgili hataları giderme

İlke tanımları oluştururken, SDK'larla çalışırken veya Kubernetes eklentisi için Azure İlkesi ayarlarken hatalarla karşılaşabilirsiniz. Bu makalede oluşabilecek çeşitli genel hatalar açıklanmaktadır ve bunları çözmenin yolları önermektedir.

Hata ayrıntılarını bulma

Hata ayrıntılarının konumu, üzerinde çalışmakta olduğunuz Azure İlkesi özelliğine göre değişir.

  • Özel ilke üzerinde çalışıyorsanız Azure portala giderek şemayla ilgili linting geri bildirimi alabilir veya kaynakların nasıl değerlendirildiğini görmek için uyumluluk verilerini gözden geçirebilirsiniz.
  • SDK’lardan biri üzerinde çalışıyorsanız işlevin neden başarısız olduğunda dair ayrıntılı bilgi alabilirsiniz.
  • Kubernetes eklentisiyle çalışıyorsanız kümedeki günlüklerden başlayın.

Genel hatalar

Senaryo: Diğer ad bulunamadı

Sorun

İlke tanımında yanlış veya mevcut olmayan bir diğer ad kullanılıyor. Azure İlkesi, Azure Resource Manager özelliklerine eşlemek için diğer adları kullanır.

Neden

İlke tanımında yanlış veya mevcut olmayan bir diğer ad kullanılıyor.

Çözüm

İlk olarak Resource Manager özelliğinin bir diğer adı olduğunu doğrulayın. Kullanılabilir diğer adları aramak için Visual Studio Code için Azure İlkesi uzantısı sayfasına veya SDK'ya gidin. Resource Manager özelliğinin diğer adı yoksa bir destek bileti oluşturun.

Senaryo: Değerlendirme ayrıntıları güncel değil

Sorun

Kaynak Başlatılmamış durumda veya uyumluluk ayrıntıları güncel değil.

Neden

Yeni bir ilkenin veya girişim atamanın uygulanması yaklaşık beş dakika sürer. Mevcut atama kapsamındaki yeni veya güncelleştirilmiş kaynaklar yaklaşık 15 dakika içinde kullanılabilir hale gelir. Standart uyumluluk taraması her 24 saatte bir gerçekleşir. Daha fazla bilgi için değerlendirme tetikleyicileri konusuna bakın.

Çözüm

İlk olarak değerlendirmenin tamamlanması ve uyumluluk sonuçlarının Azure portalda veya SDK'da kullanıma sunulması için uygun bir süre bekleyin. Azure PowerShell veya REST API ile yeni değerlendirme taraması başlatmak için bkz. İsteğe bağlı değerlendirme taraması.

Senaryo: Uyumluluk beklendiği gibi değil

Sorun

Bir kaynak, bu kaynak için beklenen Uyumlu veya Uyumsuz değerlendirme durumunda değil.

Neden

Kaynak ilke ataması için doğru kapsamda değil veya ilke tanımı amaçlandığı gibi çalışmıyor.

Çözüm

İlke tanımınızın sorunlarını gidermek için aşağıdakileri yapın:

  1. İlk olarak değerlendirmenin tamamlanması ve uyumluluk sonuçlarının Azure portalda veya SDK'da kullanıma sunulması için uygun bir süre bekleyin.

  2. Azure PowerShell veya REST API ile yeni değerlendirme taraması başlatmak için bkz. İsteğe bağlı değerlendirme taraması.

  3. Atama parametrelerinin ve atama kapsamının doğru ayarlandığından emin olun.

  4. İlke tanımı modunu denetleyin:

    • Mod tüm kaynak türleri için olmalıdır all .
    • İlke tanımı etiketleri veya konumu denetlerse mod olmalıdır indexed .
  5. Kaynağın kapsamının dışlanmadığından veya muaf tutulmadığından emin olun.

  6. İlke atamasının uyumluluğu kaynakları gösteriyorsa 0/0 , atama kapsamında geçerli olduğu belirlenmeyen kaynaklar yoktur. Hem ilke tanımını hem de atama kapsamını denetleyin.

  7. Uyumlu olması beklenen uyumsuz bir kaynak için uyumsuzluğun nedenlerini saptama konusuna bakın. Tanımın değerlendirilen özellik değeriyle karşılaştırılması, kaynağın neden uyumsuz olduğunu gösterir.

    • Hedef değer yanlışsa ilke tanımını düzeltin.
    • Geçerli değer yanlışsa aracılığıyla kaynak yükünü resources.azure.comdoğrulayın.
  8. RegEx dize parametresini destekleyen bir Kaynak Sağlayıcısı modu tanımı için (ve Microsoft.Kubernetes.Data yerleşik tanımı "Kapsayıcı görüntüleri yalnızca güvenilen kayıt defterlerinden dağıtılmalıdır"), RegEx dize parametresinin doğru olduğunu doğrulayın.

  9. Diğer yaygın sorunlar ve çözümleri için bkz. Sorun giderme: Zorlama beklendiği gibi değil.

Çoğaltılmış ve özelleştirilmiş yerleşik ilke tanımınızla veya özel tanımınızla ilgili sorun yaşamaya devam ediyorsanız, sorunu doğru yönlendirmek için İlke yazma altında bir destek bileti oluşturun.

Senaryo: Beklendiği gibi zorlanmıyor

Sorun

Azure İlkesi'nin üzerinde işlem yapmasını beklediğiniz bir kaynak üzerinde işlem yapılmıyor ve Azure Etkinlik günlüğünde hiçbir girdi yok.

Neden

İlke ataması enforcementMode ayarı Devre Dışı olarak yapılandırılmış. enforcementMode devre dışı bırakılmış olsa da ilke etkisi zorlanmaz ve Etkinlik günlüğünde giriş yoktur.

Çözüm

Aşağıdakileri yaparak ilke atamanızın zorlama sorunlarını giderin:

  1. İlk olarak değerlendirmenin tamamlanması ve uyumluluk sonuçlarının Azure portalda veya SDK'da kullanıma sunulması için uygun bir süre bekleyin.

  2. Azure PowerShell veya REST API ile yeni değerlendirme taraması başlatmak için bkz. İsteğe bağlı değerlendirme taraması.

  3. Atama parametrelerinin ve atama kapsamının doğru ayarlandığından ve enforcementMode'un Etkin olduğundan emin olun.

  4. İlke tanımı modunu denetleyin:

    • Mod tüm kaynak türleri için olmalıdır all .
    • İlke tanımı etiketleri veya konumu denetlerse mod olmalıdır indexed .
  5. Kaynağın kapsamının dışlanmadığından veya muaf tutulmadığından emin olun.

  6. Kaynak yükünün ilke mantığıyla eşleştiğinden emin olun. Bu, HTTP Arşivi (HAR) izlemesi yakalayarak veya Azure Resource Manager şablonu (ARM şablonu) özelliklerini gözden geçirerek yapılabilir.

  7. Diğer yaygın sorunları ve çözümleri için bkz. Sorun giderme: Uyumluluk beklendiği gibi değil.

Çoğaltılmış ve özelleştirilmiş yerleşik ilke tanımınızla veya özel tanımınızla ilgili sorun yaşamaya devam ediyorsanız, sorunu doğru yönlendirmek için İlke yazma altında bir destek bileti oluşturun.

Senaryo: Azure İlkesi tarafından reddedildi

Sorun

Kaynak oluşturma veya güncelleştirme işlemi reddedildi.

Neden

Yeni veya güncelleştirilmiş kaynağınızın kapsamına yönelik bir ilke ataması, Reddetme etkisi olan bir ilke tanımının ölçütlerine uyuyor. Bu tanımlara uyan kaynakların oluşturulması veya güncelleştirilmesi engelleniyor.

Çözüm

Reddetme ilke atamasından gelen hata iletisi ilke tanımı ve ilke ataması kimliklerini içerir. İletide hata bilgileri eksikse, bunlar Etkinlik günlüğünde de sağlanır. Diğer ayrıntıları elde edip kaynak kısıtlamalarını anlamak ve isteğinizdeki kaynak özelliklerini izin verilen değerlerle eşleşecek şekilde ayarlamak için bu bilgileri kullanın.

Senaryo: Tanım birden çok kaynak türünü hedefliyor

Sorun

Birden çok kaynak türü içeren bir ilke tanımı, oluşturma veya güncelleştirme sırasında doğrulamayı geçemiyor ve şu hata alınıyor:

The policy definition '{0}' targets multiple resource types, but the policy rule is authored in a way that makes the policy not applicable to the target resource types '{1}'.

Neden

İlke tanımı kuralının hedef kaynak türleri tarafından değerlendirilmeyen bir veya birden fazla koşulu vardır.

Çözüm

Diğer ad kullanılıyorsa, önüne bir tür koşulu ekleyerek diğer adın yalnızca ait olduğu kaynak türüne göre değerlendirildiğinden emin olun. Alternatif olarak, birden çok kaynak türünü hedeflemesini önlemek için ilke tanımını birden çok tanıma bölebilirsiniz.

Senaryo: Abonelik sınırı aşıldı

Sorun

İlke atamaları için uyumluluk alınırken Azure portalındaki uyumluluk sayfasında bir hata iletisi gösterilir.

Neden

İstekte seçilen kapsamların altındaki abonelik sayısı 5000 abonelik sınırını aştı. Uyumluluk sonuçları kısmi olarak görüntülenebilir.

Çözüm

Sonuçların tamamını görmek için daha az alt abonelik içeren daha ayrıntılı bir kapsam seçin.

Şablon hataları

Senaryo: şablon tarafından işlenen ilke tarafından desteklenen işlevler

Sorun

Azure İlkesi, yalnızca bir ilke tanımında kullanılabilen bir dizi ARM şablonu işlevini ve işlevini destekler. Resource Manager bu işlevleri bir ilke tanımının parçası yerine dağıtımın bir parçası olarak işler.

Neden

veya resourceGroup()gibi parameter() desteklenen işlevlerin kullanılması, ilke tanımı ve Azure İlkesi altyapısı için işlevin işlenmesine izin vermek yerine dağıtım zamanında işlevin işlenmiş sonucuyla sonuçlanır.

Çözüm

bir işlevi ilke tanımının parçası olarak geçirmek için, özelliği gibi [[resourceGroup().tags.myTag]görünecek şekilde dizenin [ tamamından kaçış yapın. Kaçış karakteri Resource Manager'ın şablonu işlerken değeri dize olarak işlemesine neden olur. Azure İlkesi işlevi ilke tanımına yerleştirir ve bu da beklendiği gibi dinamik olmasını sağlar. Daha fazla bilgi için bkz . Azure Resource Manager şablonlarında söz dizimi ve ifadeler.

Kubernetes yükleme hataları için eklenti

Senaryo: Helm Grafiği kullanarak yükleme, parola hatası nedeniyle başarısız oluyor

Sorun

Komut helm install azure-policy-addon başarısız olur ve aşağıdaki hatalardan birini döndürür:

  • !: event not found
  • Error: failed parsing --set data: key "<key>" has no value (cannot end with ,)

Neden

Oluşturulan parola, Helm Grafiği'nin bölündüğü virgül (), içerir.

Çözüm

komutunu çalıştırdığınızda helm install azure-policy-addon, parola değerindeki virgülden (,) ters eğik çizgiyle (\ ) kaçın.

Senaryo: Ad zaten mevcut olduğundan Helm Grafiği kullanılarak yükleme başarısız oluyor

Sorun

Komut helm install azure-policy-addon başarısız olur ve aşağıdaki hatayı döndürür:

  • Error: cannot re-use a name that is still in use

Neden

Adlı azure-policy-addon Helm Grafiği zaten yüklenmiş veya kısmen yüklenmiş.

Çözüm

Kubernetes eklentisinin Azure İlkesi kaldırmak için yönergeleri izleyin ve komutu yeniden çalıştırınhelm install azure-policy-addon.

Senaryo: Kullanıcı tarafından atanan Azure sanal makinesi kimliklerinin yerini sistem tarafından atanan yönetilen kimlikler alıyor

Sorun

Bir makine içindeki denetim ayarlarına Konuk Yapılandırma ilkesi girişimlerini atadıktan sonra, makineye atanan kullanıcı tarafından atanan yönetilen kimlikler artık atanmamış olur. Yalnızca sistem tarafından atanan yönetilen kimlik atanır.

Neden

Daha önce Konuk Yapılandırması DeployIfNotExists tanımlarında kullanılan ilke tanımları, makineye sistem tarafından atanan bir kimliğin atanmasını sağlarken, kullanıcı tarafından atanan kimlik atamalarını da kaldırdı.

Çözüm

Bu soruna daha önce neden olan tanımlar [Kullanım dışı] olarak görünür ve kullanıcı tarafından atanan yönetilen kimlikleri kaldırmadan önkoşulları yöneten ilke tanımlarıyla değiştirilir. El ile bir adım gereklidir. [Kullanım dışı] olarak işaretlenmiş tüm mevcut ilke atamalarını silin ve bunları özgün ilkeyle aynı ada sahip güncelleştirilmiş önkoşul ilkesi girişimi ve ilke tanımlarıyla değiştirin.

Ayrıntılı bir anlatı için Konuk Yapılandırması denetim ilkeleri için yayımlanan önemli değişiklik blog gönderisine bakın.

Kubernetes genel hataları için eklenti

Senaryo: Eklenti çıkış kısıtlamaları nedeniyle Azure İlkesi hizmet uç noktasına ulaşamıyor

Sorun

Eklenti Azure İlkesi hizmet uç noktasına ulaşamaz ve aşağıdaki hatalardan birini döndürür:

  • failed to fetch token, service not reachable
  • Error getting file "Get https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-allowed-images/template.yaml: dial tcp 151.101.228.133.443: connect: connection refused

Neden

Bu sorun, bir küme çıkışı kilitlendiğinde oluşur.

Çözüm

Aşağıdaki makalede belirtilen etki alanlarının ve bağlantı noktalarının açık olduğundan emin olun:

Senaryo: aad-pod-identity yapılandırması nedeniyle eklenti Azure İlkesi hizmet uç noktasına ulaşamıyor

Sorun

Eklenti Azure İlkesi hizmet uç noktasına ulaşamaz ve aşağıdaki hatalardan birini döndürür:

  • azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://gov-prod-policy-data.trafficmanager.net/checkDataPolicyCompliance?api-version=2019-01-01-preview: StatusCode=404
  • adal: Refresh request failed. Status Code = '404'. Response body: getting assigned identities for pod kube-system/azure-policy-8c785548f-r882p in CREATED state failed after 16 attempts, retry duration [5]s, error: <nil>

Neden

Kümeye aad-pod-identity yüklendiğinde ve kube-system pod'ları aad-pod-identity içinde dışlanmadığında bu hata oluşur.

aad-pod-identity bileşeni Düğüm Yönetilen Kimliği (NMI) podları, Düğümlerin iptable'larını Değiştirerek Azure örneği meta veri uç noktasına yapılan çağrıları durdurur. Bu kurulum, pod aad-pod-identity kullanmasa bile meta veri uç noktasına yapılan tüm isteklerin NMI tarafından kesildiğini gösterir. AzurePodIdentityException CustomResourceDefinition (CRD), NMI'de herhangi bir işlem yapılmadan CRD'de tanımlanan etiketlerle eşleşen bir poddan kaynaklanan meta veri uç noktasına yapılan tüm isteklerin aad-pod-identity'a bildirilmesi için yapılandırılabilir.

Çözüm

AzurePodIdentityException CRD'sini kubernetes.azure.com/managedby: aks yapılandırarak aad-pod-identity içinde kube-system ad alanında etiketi olan sistem podlarını hariç tutun.

Daha fazla bilgi için bkz . Belirli bir pod/uygulama için Azure Active Directory (Azure AD) pod kimliğini devre dışı bırakma.

Özel durum yapılandırmak için şu örneği izleyin:

apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzurePodIdentityException
metadata:
  name: mic-exception
  namespace: default
spec:
  podLabels:
    app: mic
    component: mic
---
apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzurePodIdentityException
metadata:
  name: aks-addon-exception
  namespace: kube-system
spec:
  podLabels:
    kubernetes.azure.com/managedby: aks

Senaryo: Kaynak sağlayıcısı kayıtlı değil

Sorun

Eklenti Azure İlkesi hizmet uç noktasına ulaşabilir, ancak eklenti günlükleri aşağıdaki hatalardan birini görüntüler:

  • The resource provider 'Microsoft.PolicyInsights' is not registered in subscription '{subId}'. See https://aka.ms/policy-register-subscription for how to register subscriptions.

  • policyinsightsdataplane.BaseClient#CheckDataPolicyCompliance: Failure responding to request: StatusCode=500 -- Original Error: autorest/azure: Service returned an error. Status=500 Code="InternalServerError" Message="Encountered an internal server error.

Neden

'Microsoft.Policy Analizler' kaynak sağlayıcısı kayıtlı değil. İlke tanımlarını almak ve uyumluluk verilerini döndürmek için eklenti için kayıtlı olmalıdır.

Çözüm

'Microsoft.Policy Analizler' kaynak sağlayıcısını küme aboneliğine kaydedin. Yönergeler için bkz . Kaynak sağlayıcısı kaydetme.

Senaryo: Abonelik devre dışı bırakıldı

Sorun

Eklenti Azure İlkesi hizmet uç noktasına ulaşabilir, ancak aşağıdaki hata görüntülenir:

The subscription '{subId}' has been disabled for azure data-plane policy. Please contact support.

Neden

Bu hata, aboneliğin sorunlu olduğu belirlendiği ve aboneliği engellemek için özellik bayrağının Microsoft.PolicyInsights/DataPlaneBlocked eklendiği anlamına gelir.

Çözüm

Bu sorunu araştırmak ve çözmek için özellik ekibine başvurun.

Senaryo: "Konuk Yapılandırması" kategorisindeki tanımlar Azure portalından çoğaltılamıyor

Sorun

İlke tanımları için Azure portalı sayfasından özel bir ilke tanımı oluşturmaya çalışırken , "Yinelenen tanım" düğmesini seçersiniz. İlkeyi atadıktan sonra, konuk yapılandırma atama kaynağı olmadığından makinelerin Uyumsuz olduğunu fark edebilirsiniz.

Neden

Konuk yapılandırması, konuk yapılandırma atama kaynakları oluşturulurken ilke tanımlarına eklenen özel meta verileri kullanır. Azure portalındaki "Yinelenen tanım" etkinliği özel meta verileri kopyalamaz.

Çözüm

Portalı kullanmak yerine, İlke Analizler API'sini kullanarak ilke tanımını çoğaltın. Aşağıdaki PowerShell örneği bir seçenek sağlar.

# duplicates the built-in policy which audits Windows machines for pending reboots
$def = Get-AzPolicyDefinition -id '/providers/Microsoft.Authorization/policyDefinitions/4221adbc-5c0f-474f-88b7-037a99e6114c' | % Properties
New-AzPolicyDefinition -name (new-guid).guid -DisplayName "$($def.DisplayName) (Copy)" -Description $def.Description -Metadata ($def.Metadata | convertto-json) -Parameter ($def.Parameters | convertto-json) -Policy ($def.PolicyRule | convertto-json -depth 15)

Senaryo: Kubernetes kaynağı, reddetme ilkesi atanmasına rağmen bağlantı hatası sırasında oluşturulur

Sorun

Kubernetes kümesi bağlantı hatası durumunda, Ağ Geçidi Denetleyicisi'nin başarısız açma davranışı nedeniyle yeni oluşturulan veya güncelleştirilen kaynaklar için değerlendirme atlanabilir.

Neden

GK başarısız açık modeli tasarım gereğidir ve topluluk geri bildirimlerine dayanır. Ağ geçidi denetleyicisi belgeleri şu nedenlerle genişler: https://open-policy-agent.github.io/gatekeeper/website/docs/failing-closed#considerations.

Çözüm

Yukarıdaki olayda hata durumu kube-apiserver tarafından sağlanan erişim web kancası ölçümlerinden izlenebilir. Değerlendirme oluşturma zamanında atlansa ve bir nesne oluşturulsa bile, Azure İlkesi uyumlulukta müşterilere bayrak olarak uyumsuz olarak bildirilir.

Yukarıdakilerden bağımsız olarak, böyle bir senaryoda Azure ilkesi kümede bilinen son ilkeyi korur ve korumaları yerinde tutar.

Sonraki adımlar

Sorununuz bu makalede listelenmiyorsa veya sorunu çözemiyorsanız, aşağıdaki kanallardan birini ziyaret ederek destek alın:

  • Microsoft Soru-Cevap aracılığıyla uzmanlardan yanıt alın.
  • @AzureSupport ile Bağlan. Twitter'da bulunan bu resmi Microsoft Azure kaynağı, Azure topluluğunun doğru yanıtlara, desteğe ve uzmanlara bağlanmasını sağlayarak müşteri deneyimini geliştirmeye yardımcı olur.
  • Hala yardıma ihtiyacınız varsa Azure desteği sitesine gidin ve Destek isteği gönder'i seçin.