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
Kaynak, kaynak için beklenen Uyumlu veya Uyumlu Değil 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ğıdaki adımları uygulayın:
- İ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ı.
- Atama parametrelerinin ve atama kapsamının doğru ayarlandığından emin olun.
- İ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
.
- Mod tüm kaynak türleri için olmalıdır
- Kaynağın kapsamının dışlanmadığından veya muaf tutulmadığından emin olun.
- İ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. - 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.com
doğrulayın.
- 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. - 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ı, Devre Dışı'nın enforcementMode ayarı için yapılandırıldı. Devre dışı bırakıldığı sırada enforcementMode
ilke etkisi zorlanmaz ve Etkinlik günlüğünde giriş yoktur.
Çözüm
Aşağıdaki adımları uygulayarak ilke atamanızın zorlama sorunlarını giderin:
- İ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ı.
- Atama parametrelerinin ve atama kapsamının doğru ayarlandığından
enforcementMode
ve Etkin olduğundan emin olun. - İ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
.
- Mod tüm kaynak türleri için olmalıdır
- Kaynağın kapsamının dışlanmadığından veya muaf tutulmadığından emin olun.
- Kaynak yükünün ilke mantığıyla eşleştiğinden emin olun. Bu doğrulama bir HTTP Arşivi (HAR) izlemesi yakalanarak veya Azure Resource Manager şablonu (ARM şablonu) özellikleri gözden geçirilerek yapılabilir.
- 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ı 5.000 abonelik sınırını aştı. Uyumluluk sonuçları kısmen 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çok 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üklü veya kısmen yüklenmişti.
Çö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ırma deployIfNotExists
tanımlarında kullanılan ilke tanımları, makineye sistem tarafından atanan bir kimliğin atanmasını sağlardı. Ancak kullanıcı tarafından atanan kimlik atamalarını da kaldırdılar.
Çözüm
Bu soruna daha önce neden olan tanımlar olarak \[Deprecated\]
görünür ve kullanıcı tarafından atanan yönetilen kimlikler kaldırılmadan önkoşulları yöneten ilke tanımlarıyla değiştirilir. El ile bir adım gereklidir. olarak \[Deprecated\]
işaretlenmiş tüm mevcut ilke atamalarını silin ve bunları güncelleştirilmiş önkoşul ilkesi girişimi ve özgün adıyla aynı ada sahip 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
Bu hata, kümeye yüklendiğinde ve kube-system podları içinde aad-pod-identity
dışlanmadığında aad-pod-identity
oluşur.
aad-pod-identity
Bileşen 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 kullanmasa aad-pod-identity
bile meta veri uç noktasına yapılan tüm isteklerin NMI tarafından kesildiğini gösterir. AzurePodIdentityException
CustomResourceDefinition (CRD), CRD'de tanımlanan etiketlerle eşleşen bir poddan kaynaklanan meta veri uç noktasına yapılan tüm isteklerin NMI'de herhangi bir işlem yapılmadan prxied olması gerektiğini bildirmek aad-pod-identity
için yapılandırılabilir.
Çözüm
CRD'yi yapılandırarak içinde kube-system ad alanında aad-pod-identity
etiketi olan kubernetes.azure.com/managedby: aks
sistem podlarını AzurePodIdentityException
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
Kaynak Microsoft.PolicyInsights
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
Kaynak sağlayıcısını Microsoft.PolicyInsights
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 İçgörüleri 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ı varsa, Gatekeeper'ın 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
Önceki olayda hata durumu, tarafından kube-apiserver
sağlanan erişim web kancası ölçümlerinden izlenebilir. Değerlendirme oluşturma zamanında atlanırsa ve bir nesne oluşturulursa, Azure İlkesi uyumlulukta müşterilere bayrak olarak uyumsuz olarak bildirilir.
Senaryodan bağımsız olarak, 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ın. X üzerinde 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 bileti gönder'i seçin.