Uyumsuzluk nedenlerini belirlemeDetermine causes of non-compliance

Bir Azure kaynağının bir ilke kuralıyla uyumlu olmadığı belirlendiğinde, kuralın kaynağın hangi bölümünün uyumlu olmadığını anlamak yararlı olur.When an Azure resource is determined to be non-compliant to a policy rule, it's helpful to understand which portion of the rule the resource isn't compliant with. Ayrıca, daha önce uyumlu olmayan bir kaynağın uyumsuz hale getirmek için hangi değişikliğin değiştirilmediğini anlamak da yararlıdır.It's also useful to understand what change altered a previously compliant resource to make it non-compliant. Bu bilgileri bulmanın iki yolu vardır:There are two ways to find this information:

Uyumluluk ayrıntılarıCompliance details

Bir kaynak uyumsuz olduğunda, bu kaynağa ilişkin uyumluluk ayrıntıları ilke uyumluluğu sayfasından kullanılabilir.When a resource is non-compliant, the compliance details for that resource are available from the Policy compliance page. Uyumluluk ayrıntıları bölmesi aşağıdaki bilgileri içerir:The compliance details pane includes the following information:

  • Ad, tür, konum ve kaynak KIMLIĞI gibi kaynak ayrıntılarıResource details such as name, type, location, and resource ID
  • Geçerli ilke atamasının en son değerlendirmesinin uyumluluk durumu ve zaman damgasıCompliance state and timestamp of the last evaluation for the current policy assignment
  • Kaynak uyumsuzluğu için nedenler listesiA list of reasons for the resource non-compliance

Önemli

Uyumlu olmayan bir kaynağın uyumluluk ayrıntıları söz konusu kaynaktaki özelliklerin geçerli değerini gösteriyorsa, kullanıcının kaynak türüne okuma işlemi olması gerekir.As the compliance details for a Non-compliant resource shows the current value of properties on that resource, the user must have read operation to the type of resource. Örneğin, uyumlu olmayan kaynak Microsoft. COMPUTE/virtualmachines ise, kullanıcının Microsoft. COMPUTE/virtualmachines/Read işlemi olması gerekir.For example, if the Non-compliant resource is Microsoft.Compute/virtualMachines then the user must have the Microsoft.Compute/virtualMachines/read operation. Kullanıcının gerekli işlemi yoksa, bir erişim hatası görüntülenir.If the user doesn't have the needed operation, an access error is displayed.

Uyumluluk ayrıntılarını görüntülemek için aşağıdaki adımları izleyin:To view the compliance details, follow these steps:

  1. Tüm hizmetler' i seçip ilkearayıp ' yi seçerek Azure Portal Azure ilke hizmetini başlatın.Launch the Azure Policy service in the Azure portal by selecting All services, then searching for and selecting Policy.

  2. Genel bakış veya Uyumluluk sayfasında, uyumluluk durumunda _uyumlu olmayan_bir ilke seçin.On the Overview or Compliance page, select a policy in a compliance state that is Non-compliant.

  3. İlke uyumluluğu sayfasının kaynak uyumluluğu sekmesinde, _uyumlu olmayan_bir Uyumluluk durumundaki kaynağın üç nokta simgesini sağ tıklayın veya seçin.Under the Resource compliance tab of the Policy compliance page, right-click or select the ellipsis of a resource in a compliance state that is Non-compliant. Ardından uyumluluk ayrıntılarını görüntüle' yi seçin.Then select View compliance details.

    Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

  4. Uyumluluk ayrıntıları bölmesi, kaynağın en son değerlendirmesinin bilgilerini geçerli ilke atamasına görüntüler.The Compliance details pane displays information from the latest evaluation of the resource to the current policy assignment. Bu örnekte, ilke tanımı _14,0_beklenirken Microsoft. SQL/Servers/Version alanı 12,0 olarak bulunur.In this example, the field Microsoft.Sql/servers/version is found to be 12.0 while the policy definition expected 14.0. Kaynak birden çok nedenden dolayı uyumlu değilse, her biri bu bölmede listelenir.If the resource is non-compliant for multiple reasons, each is listed on this pane.

    Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

    Auditınotexists veya deployifnotexists ilke tanımı için Ayrıntılar . Type özelliğini ve isteğe bağlı tüm özellikleri içerir.For an auditIfNotExists or deployIfNotExists policy definition, the details include the details.type property and any optional properties. Bir liste için, bkz. Auditınotexists Properties ve deployifnotexists özellikleri.For a list, see auditIfNotExists properties and deployIfNotExists properties. Son değerlendirilen kaynak , tanımın Ayrıntılar bölümünden ilgili bir kaynaktır.Last evaluated resource is a related resource from the details section of the definition.

    Örnek kısmi Deployifnotexists tanımı:Example partial deployIfNotExists definition:

    {
        "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": {
                    ...
                }
            }
        }
    }
    

    Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

Not

Verileri korumak için, bir özellik değeri gizli olduğunda, geçerli değer yıldız işaretlerini görüntüler.To protect data, when a property value is a secret the current value displays asterisks.

Bu ayrıntılar, bir kaynağın Şu anda uyumsuz olduğunu, ancak kaynağın uyumsuz olmasına neden olan değişikliğin ne zaman yapıldığını göstermez.These details explain why a resource is currently non-compliant, but don't show when the change was made to the resource that caused it to become non-compliant. Bu bilgiler için aşağıdaki değişiklik geçmişi (Önizleme) bölümüne bakın.For that information, see Change history (Preview) below.

Uyumluluk nedenleriCompliance reasons

Aşağıdaki matris, her olası nedeni ilke tanımındaki sorumlu koşula eşler:The following matrix maps each possible reason to the responsible condition in the policy definition:

NedenReason KoşulCondition
Geçerli değer, anahtar olarak hedef değeri içermelidir.Current value must contain the target value as a key. containsKey veya notcontainskey değilcontainsKey or not notContainsKey
Geçerli değer hedef değer içermelidir.Current value must contain the target value. notcontains içerir veya içermezcontains or not notContains
Geçerli değer, hedef değere eşit olmalıdır.Current value must be equal to the target value. eşittir veya Not alequals or not notEquals
Geçerli değer, hedef değerden küçük olmalıdır.Current value must be less than the target value. greaterOrEquals daha az veya Notless or not greaterOrEquals
Geçerli değer, hedef değere eşit veya ondan büyük olmalıdır.Current value must be greater than or equal to the target value. greaterOrEquals veya daha az değilgreaterOrEquals or not less
Geçerli değer, hedef değerden büyük olmalıdır.Current value must be greater than the target value. daha büyük veya azalmayan öğelergreater or not lessOrEquals
Geçerli değer, hedef değere eşit veya ondan küçük olmalıdır.Current value must be less than or equal to the target value. Azallar veya daha büyük değillessOrEquals or not greater
Geçerli değer mevcut olmalıdır.Current value must exist. bulunurexists
Geçerli değer, hedef değerde olmalıdır.Current value must be in the target value. notın içinde veya değilin or not notIn
Geçerli değer hedef değer gibi olmalıdır.Current value must be like the target value. Beğen not gibilike or not notLike
Geçerli değer, büyük/küçük harfe duyarlı olmalıdır ve hedef değerle eşleşmelidir.Current value must case-sensitive match the target value. Match veya notmatch değilmatch or not notMatch
Geçerli değer büyük/küçük harfe duyarsız olmalıdır ve hedef değerle eşleşmelidir.Current value must case-insensitive match the target value. matchInsensitively veya Not notMatchInsensitivelymatchInsensitively or not notMatchInsensitively
Geçerli değer, anahtar olarak hedef değeri içermemelidir.Current value must not contain the target value as a key. notContainsKey veya bir ContainsKey değilnotContainsKey or not containsKey
Geçerli değer, hedef değeri içermemelidir.Current value must not contain the target value. notContains veya içermeznotContains or not contains
Geçerli değer hedef değere eşit olmamalı.Current value must not be equal to the target value. Not harfler veya eşit değildirnotEquals or not equals
Geçerli değer mevcut olmamalıdır.Current value must not exist. yoknot exists
Geçerli değerin hedef değerde olmaması gerekir.Current value must not be in the target value. Notın veya NotnotIn or not in
Geçerli değer hedef değer gibi olmamalıdır.Current value must not be like the target value. notLike veya Not beğennotLike or not like
Geçerli değer, büyük/küçük harfe duyarlı olmalıdır ve hedef değerle eşleşmelidir.Current value must not case-sensitive match the target value. notMatch veya MatchnotMatch or not match
Geçerli değer büyük/küçük harfe duyarsız olmalıdır ve hedef değerle eşleşmez.Current value must not case-insensitive match the target value. notMatchInsensitively veya Not matchInsensitivelynotMatchInsensitively or not matchInsensitively
İlke tanımındaki efekt ayrıntılarıyla eşleşen ilgili kaynak yok.No related resources match the effect details in the policy definition. Daha sonra. details. Type içinde tanımlanan ve ilke kuralının IF bölümünde tanımlanan kaynakla ilişkili bir kaynak türü yok.A resource of the type defined in then.details.type and related to the resource defined in the if portion of the policy rule doesn't exist.

Kaynak sağlayıcısı modları için bileşen ayrıntılarıComponent details for Resource Provider modes

Kaynak sağlayıcısı modundakiatamalar için, daha derin bir görünüm açmak üzere uyumlu olmayan kaynağını seçin.For assignments with a Resource Provider mode, select the Non-compliant resource to open a deeper view. Bileşen uyumluluğu sekmesi altında, uyumlu olmayan bileşeni ve bileşen kimliğinigösteren atanan ilkedeki kaynak sağlayıcısı moduna özgü ek bilgiler yer alır.Under the Component Compliance tab is additional information specific to the Resource Provider mode on the assigned policy showing the Non-compliant Component and Component ID.

Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

Konuk Yapılandırması için uyumluluk ayrıntılarıCompliance details for Guest Configuration

Konuk yapılandırma kategorisindeki Auditınotexists ilkeleri için, sanal makine içinde birden çok ayar değerlendirilmiş olabilir ve ayar başına ayrıntıları görüntülemeniz gerekir.For auditIfNotExists policies in the Guest Configuration category, there could be multiple settings evaluated inside the virtual machine and you'll need to view per-setting details. Örneğin, parola ilkelerinin bir listesini denetliyoruz ve yalnızca birinin durumu _uyumlu değil_ise, hangi parola ilkelerinin uyumsuz olduğunu ve neden olduğunu bilmeniz gerekir.For example, if you're auditing for a list of password policies and only one of them has status Non-compliant, you'll need to know which specific password policies are out of compliance and why.

Ayrıca, sanal makinede doğrudan oturum açma erişiminiz olmayabilir, ancak sanal makinenin neden _uyumlu_olmadığı hakkında rapor etmeniz gerekir.You also might not have access to sign in to the virtual machine directly but you need to report on why the virtual machine is Non-compliant.

Azure portalAzure portal

İlke uyumluluk ayrıntılarını görüntülemek için yukarıdaki bölümde bulunan adımları izleyerek başlayın.Begin by following the same steps in the section above for viewing policy compliance details.

Uyumluluk ayrıntıları bölmesi görünümünde, son değerlendirilen kaynağıbağla ' yı seçin.In the Compliance details pane view, select the link Last evaluated resource.

Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

Konuk atama sayfası tüm kullanılabilir uyumluluk ayrıntılarını görüntüler.The Guest Assignment page displays all available compliance details. Görünümdeki her satır, makine içinde gerçekleştirilen bir değerlendirmeyi temsil eder.Each row in the view represents an evaluation that was performed inside the machine. Neden sütununda, Konuk atamasının neden _uyumlu olmadığı açıklanamayan_bir ifade gösterilir.In the Reason column, a phrase is shown describing why the Guest Assignment is Non-compliant. Örneğin, parola ilkelerini denetleriz, Reason sütununda her ayar için geçerli değer de dahil olmak üzere metin görüntülenir.For example, if you're auditing password policies, the Reason column would display text including the current value for each setting.

Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

Azure PowerShellAzure PowerShell

Azure PowerShell uyumluluk ayrıntılarını da görüntüleyebilirsiniz.You can also view compliance details from Azure PowerShell. İlk olarak, Konuk yapılandırma modülünün yüklü olduğundan emin olun.First, make sure you have the Guest Configuration module installed.

Install-Module Az.GuestConfiguration

Aşağıdaki komutu kullanarak, bir VM için tüm konuk atamalarının geçerli durumunu görüntüleyebilirsiniz:You can view the current status of all Guest Assignments for a VM using the following command:

Get-AzVMGuestPolicyStatus -ResourceGroupName <resourcegroupname> -VMName <vmname>
PolicyDisplayName                                                         ComplianceReasons
-----------------                                                         -----------------
Audit that an application is installed inside Windows VMs                 {[InstalledApplication]bwhitelistedapp}
Audit that an application is not installed inside Windows VMs.            {[InstalledApplication]NotInstalledApplica...

Yalnızca VM 'nin neden _uyumsuz_olduğunu açıklayan neden ifadesini görüntülemek için, yalnızca Child özelliğini döndürün.To view only the reason phrase that describes why the VM is Non-compliant, return only the Reason child property.

Get-AzVMGuestPolicyStatus -ResourceGroupName <resourcegroupname> -VMName <vmname> | % ComplianceReasons | % Reasons | % Reason
The following applications are not installed: '<name>'.

Ayrıca, makinenin kapsamındaki Konuk atamaları için bir uyumluluk geçmişi de çıktısını alabilirsiniz.You can also output a compliance history for Guest Assignments in scope for the machine. Bu komutun çıktısı, sanal makine için her bir raporun ayrıntılarını içerir.The output from this command includes the details of each report for the VM.

Not

Çıktı, büyük miktarda veri döndürebilir.The output may return a large volume of data. Çıktıyı bir değişkende depolamanız önerilir.It's recommended to store the output in a variable.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname>
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
[Preview]: Audit that an application is installed inside Windows VMs      NonCompliant                       02/10/2019 12:00:38 PM 02/10/2019 12:00:41 PM VM01  ../17fg0...
<truncated>

Bu görünümü basitleştirmek için, Showchanged parametresini kullanın.To simplify this view, use the ShowChanged parameter. Bu komutun çıktısı yalnızca uyumluluk durumunda değişiklik yapan raporları içerir.The output from this command only includes the reports that followed a change in compliance status.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname> -ShowChanged
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/10/2019 10:00:38 PM 02/10/2019 10:00:41 PM VM01  ../12ab0...
Audit that an application is installed inside Windows VMs.                Compliant                          02/09/2019 11:00:38 AM 02/09/2019 11:00:39 AM VM01  ../e3665...
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/09/2019 09:00:20 AM 02/09/2019 09:00:23 AM VM01  ../15ze1...

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

Yeni bir genel önizlemeninparçası olarak, değişiklik geçmişinin son 14 günü, tamamlanmış mod silme Işleminidestekleyen tüm Azure kaynakları için kullanılabilir.As part of a new public preview, the last 14 days of change history are available for all Azure resources that support complete mode deletion. Değişiklik geçmişi bir değişikliğin ne zaman algılandığına ilişkin ayrıntıları ve her değişiklik için görsel bir farkı sağlar.Change history provides details about when a change was detected and a visual diff for each change. Azure Resource Manager Özellikler eklendiğinde, kaldırıldığında veya değiştirilmediğinde değişiklik algılama tetiklenir.A change detection is triggered when the Azure Resource Manager properties are added, removed, or altered.

  1. Tüm hizmetler' i seçip ilkearayıp ' yi seçerek Azure Portal Azure ilke hizmetini başlatın.Launch the Azure Policy service in the Azure portal by selecting All services, then searching for and selecting Policy.

  2. Genel bakış veya Uyumluluk sayfasında, herhangi bir uyumluluk durumundabir ilke seçin.On the Overview or Compliance page, select a policy in any compliance state.

  3. İlke uyumluluğu sayfasının kaynak uyumluluğu sekmesinde bir kaynak seçin.Under the Resource compliance tab of the Policy compliance page, select a resource.

  4. Kaynak uyumluluğu sayfasında değişiklik geçmişi (Önizleme) sekmesini seçin.Select the Change History (preview) tab on the Resource Compliance page. Varsa, algılanan değişikliklerin bir listesi görüntülenir.A list of detected changes, if any exist, are displayed.

    Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

  5. Algılanan değişikliklerden birini seçin.Select one of the detected changes. Kaynak için görsel fark , değişiklik geçmişi sayfasında sunulur.The visual diff for the resource is presented on the Change history page.

    Kaynak uyumluluğu sekmesindeki ' uyumluluk ayrıntılarını görüntüle ' bağlantısının ekran görüntüsü.

Bir kaynakta yapılan değişiklikleri tanımlayan görsel fark .The visual diff aides in identifying changes to a resource. Algılanan değişiklikler kaynağın geçerli uyumluluk durumuyla ilişkili olmayabilir.The changes detected may not be related to the current compliance state of the resource.

Değişiklik geçmişi verileri Azure Kaynak Grafiğitarafından sağlanır.Change history data is provided by Azure Resource Graph. Bu bilgileri Azure portal dışında sorgulamak için bkz. kaynak değişikliklerini al.To query this information outside of the Azure portal, see Get resource changes.

Sonraki adımlarNext steps