Determinar as causas da não conformidade

Quando um recurso do Azure é determinado como não compatível com uma regra de política, é útil entender com qual parte da regra o recurso não está em conformidade. Também é útil entender qual alteração alterou um recurso anteriormente compatível para torná-lo não compatível. Há duas maneiras de encontrar essas informações:

Detalhes de conformidade

Quando um recurso não está em conformidade, os detalhes de conformidade desse recurso estão disponíveis na página Conformidade com a política. O painel de detalhes de conformidade inclui as seguintes informações:

  • Detalhes do recurso, como nome, tipo, local e ID do recurso.
  • Estado de conformidade e carimbo de data/hora da última avaliação para a atribuição de política atual.
  • Uma lista dos motivos para a não conformidade dos recursos.

Importante

Como os detalhes de conformidade de um recurso não compatível mostram o valor atual das propriedades nesse recurso, o usuário deve ter operação de leitura para o tipo de recurso. Por exemplo, se o recurso não compatível éMicrosoft.Compute/virtualMachines, então o usuário deve ter a Microsoft.Compute/virtualMachines/read operação. Se o usuário não tiver a operação necessária, um erro de acesso será exibido.

Para exibir os detalhes de conformidade, siga estas etapas:

  1. Inicie o serviço de Política do Azure no portal do Azure selecionando Todos os serviços e, em seguida, procurando e selecionando Política.

  2. Na página Visão geral ou Conformidade, selecione uma política em um estado de conformidade que não seja compatível.

  3. Na guia Conformidade de recursos da página Conformidade de políticas, selecione e segure (ou clique com o botão direito do mouse) ou selecione as reticências de um recurso em um estado de conformidade que não seja compatível. Em seguida, selecione Exibir detalhes de conformidade.

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

  4. O painel Detalhes de conformidade exibe informações desde a avaliação mais recente do recurso até a atribuição de política atual. Neste exemplo, o campo Microsoft.Sql/servers/version é encontrado como 12.0 enquanto a definição de política esperada 14.0. Se o recurso não estiver em conformidade por vários motivos, cada um será listado neste painel.

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

    Para uma definição de auditIfNotExists política ou deployIfNotExists , os detalhes incluem a propriedade details.type e quaisquer propriedades opcionais. Para obter uma lista, consulte as propriedades auditIfNotExists e as propriedades deployIfNotExists. O último recurso avaliado é um recurso relacionado da seção de detalhes da definição.

    Exemplo de definição parcial deployIfNotExists :

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

Nota

Para proteger dados, quando um valor de propriedade é um segredo , o valor atual exibe asteriscos.

Esses detalhes explicam por que um recurso não está em conformidade no momento, mas não mostram quando a alteração foi feita no recurso que fez com que ele se tornasse não compatível. Para obter essas informações, consulte Histórico de alterações (visualização).

Razões de conformidade

Os modos Gerenciador de Recursos e Provedor de Recursos têm motivos diferentes para a não conformidade.

Motivos de conformidade do modo General Resource Manager

A tabela a seguir mapeia cada motivo do modoGerenciador de Recursos para a condição responsável na definição de política:

Razão Condição
O valor atual deve conter o valor de destino como uma chave. contémKey ou nãoContainsKey
O valor atual deve conter o valor de destino. contém ou nãoContém ou não
O valor atual deve ser igual ao valor-alvo. igual ou nãoIgual
O valor atual deve ser menor que o valor de destino. menos ou não maiorOrEquals
O valor atual deve ser maior ou igual ao valor de destino. maiorOrEquals ou não menos
O valor atual deve ser maior do que o valor de destino. maior ou não menosOrEquals
O valor atual deve ser menor ou igual ao valor-alvo. lessOrEquals ou não maior
O valor atual deve existir. existe
O valor atual deve estar no valor de destino. em ou nãoEm
O valor atual deve ser como o valor de destino. goste ou não goste
O valor atual deve diferenciar maiúsculas de minúsculas e corresponder ao valor de destino. corresponder ou não corresponder
O valor atual não diferencia maiúsculas de minúsculas e corresponde ao valor de destino. matchInsensitively or not MatchInsensitively
O valor atual não deve conter o valor de destino como uma chave. notContainsKey ou não contémKey
O valor atual não deve conter o valor de destino. notContém ou não contém
O valor atual não deve ser igual ao valor de destino. notIgual ou não igual
O valor atual não deve existir. não existe
O valor atual não deve estar no valor de destino. nãoEm ou não em
O valor atual não deve ser como o valor de destino. nãoGostar ou não gostar
O valor atual não deve diferenciar maiúsculas de minúsculas e corresponder ao valor de destino. notMatch ou não corresponder
O valor atual não deve diferenciar maiúsculas de minúsculas e corresponder ao valor de destino. notMatchInsensitively ou not matchInsensitively
Nenhum recurso relacionado corresponde aos detalhes do efeito na definição da política. Um recurso do tipo definido e then.details.type relacionado ao recurso definido na parte if da regra de política não existe.

Motivos de conformidade do modo Provedor de Recursos de Política do Azure

A tabela a seguir mapeia cada Microsoft.PolicyInsightscódigo de motivo do modo Provedor de Recursos para sua explicação correspondente:

Código de motivo de conformidade Mensagem de erro e explicação
NonModifiablePolicyAlias NonModifiableAliasConflict: O alias '{alias}' não é modificável em solicitações que usam a versão da API '{apiVersion}'. Este erro acontece quando uma solicitação usando uma versão da API em que o alias não suporta o efeito 'modificar' ou suporta apenas o efeito 'modificar' com um tipo de token diferente.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: Os aliases: '{ aliases }' não são modificáveis em solicitações usando a versão da API: '{ apiVersion }'. Isso pode acontecer em solicitações que usam versões de API para as quais os aliases não suportam o efeito 'modificar' ou suportam o efeito 'modificar' com um tipo de token diferente.
ConflictingAppendPolicies ConflictingAppendPolicies: Encontradas atribuições de política conflitantes que modificam o campo '{notApplicableFields}'. Identificadores de política: '{policy}'. Entre em contato com o administrador da assinatura para atualizar as atribuições de política.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues: as atribuições de política tentaram acrescentar campos que já existem na solicitação com valores diferentes. Campos: '{existingFields}'. Identificadores de política: '{policy}'. Entre em contato com o administrador da assinatura para atualizar as políticas.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields: definição de política encontrada que se refere a uma propriedade de campo indefinida para a versão da API '{apiVersion}'. Campos: '{nonExistingFields}'. Identificadores de política: '{policy}'. Entre em contato com o administrador da assinatura para atualizar as políticas.
MissingRegistrationForType MissingRegistrationForResourceType: A assinatura não está registrada para o tipo de recurso '{ResourceType}'. Verifique se o tipo de recurso existe e se o tipo de recurso está registrado.
Política ambíguaAvaliaçãoPercursos O conteúdo da solicitação tem um ou mais caminhos ambíguos: '' exigido pelas políticas: ''{0}{1}.
InvalidResourceNameWildcardPosition A atribuição de política '' associada à definição de política ''{0}{1} não pôde ser avaliada. O nome do recurso '' dentro de uma condição ifNotExists contém o caractere curinga '{2}?' em uma posição inválida. Os curingas só podem ser localizados no final do nome em um segmento por si só (por exemplo, TopLevelResourceName/?). Corrija a política ou remova a atribuição de política a ser desbloqueada.
TooManyResourceNameSegments A atribuição de política '' associada à definição de política ''{0}{1} não pôde ser avaliada. O nome do recurso ''{2} dentro de uma condição ifNotExists contém muitos segmentos de nome. O número de segmentos de nome deve ser igual ou menor que o número de segmentos de tipo (excluindo o namespace do provedor de recursos). Corrija a definição de política ou remova a atribuição de política a ser desbloqueada.
InvalidPolicyFieldPath O caminho do campo ''{0} dentro da definição de política é inválido. Os caminhos de campo não devem conter segmentos vazios. Podem conter apenas carateres alfanuméricos, com exceção do caráter «.' para dividir segmentos e da sequência de carateres «[*]» para aceder às propriedades da matriz.

Razões de conformidade com o modo AKS Resource Provider

A tabela a seguir mapeia cada Microsoft.Kubernetes.Datamotivo do modoProvedor de Recursos para o estado responsável do modelo de restrição na definição de política:

Razão Descrição do motivo do modelo de restrição
Constraint/TemplateCreateFailed O recurso falhou ao criar para uma definição de política com uma Restrição/Modelo que não corresponde a uma Restrição/Modelo existente no cluster por nome de metadados de recurso.
Restrição/TemplateUpdateFailed A Restrição/Modelo falhou ao atualizar para uma definição de política com uma Restrição/Modelo que corresponde a uma Restrição/Modelo existente no cluster por nome de metadados de recurso.
Restrição/TemplateInstallFailed A Restrição/Modelo falhou ao criar e não pôde ser instalada no cluster para a operação de criação ou atualização.
ConstraintTemplateConflicts O modelo tem um conflito com uma ou mais definições de política usando o mesmo nome de modelo com fonte diferente.
ConstraintStatusStale Existe um status de "Auditoria", mas o Gatekeeper não realizou uma auditoria na última hora.
ConstraintNotProcessed Não há status e o Gatekeeper não realizou uma auditoria na última hora.
InvalidConstraint/Modelo O recurso foi rejeitado devido a um dos seguintes motivos: modelo de restrição inválido Conteúdo Rego, YAML inválido ou uma incompatibilidade de tipo de parâmetro entre restrição e modelo de restrição (fornecendo um valor de cadeia de caracteres quando um inteiro era esperado).

Nota

Para atribuições de política e modelos de restrição existentes já no cluster, se essa Restrição/Modelo falhar, o cluster será protegido mantendo a Restrição/Modelo existente. O cluster relata como não compatível até que a falha seja resolvida na atribuição de política ou a autocorreção do complemento. Para obter mais informações sobre como lidar com conflitos, consulte Conflitos de modelo de restrição.

Detalhes do componente para os modos de Provedor de Recursos

Para atribuições com um modo Provedor de Recursos, selecione o recurso Não compatível para exibir seus registros de conformidade de componentes. A guia Conformidade de Componentes mostra mais informações específicas para o modo Provedor de Recursos, como Nome do Componente, ID do Componente e Tipo.

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

Detalhes de conformidade para configuração de convidado

Para definições de política na categoria Configuração de convidado , pode haver várias configurações avaliadas dentro da máquina virtual e você precisa exibir detalhes por configuração. Por exemplo, se você estiver auditando uma lista de configurações de segurança e apenas uma delas tiver o status Não compatível, você precisará saber quais configurações específicas estão fora de conformidade e por quê.

Você também pode não ter acesso para entrar diretamente na máquina virtual, mas precisa relatar por que a máquina virtual não é compatível.

Portal do Azure

Comece seguindo as mesmas etapas na seção Detalhes de conformidade para exibir os detalhes de conformidade da política.

Na exibição do painel Detalhes de conformidade, selecione o link Último recurso avaliado.

Screenshot of viewing the auditIfNotExists definition compliance details.

A página Atribuição de convidado exibe todos os detalhes de conformidade disponíveis. Cada linha na exibição representa uma avaliação que foi realizada dentro da máquina. Na coluna Motivo, uma frase é mostrada descrevendo por que a atribuição de convidado não é compatível. Por exemplo, se você estiver auditando políticas de senha, a coluna Motivo exibirá texto, incluindo o valor atual de cada configuração.

Screenshot of the Guest Assignment compliance details.

Ver detalhes da atribuição de configuração em escala

O recurso de configuração de convidado pode ser usado fora das atribuições da Política do Azure. Por exemplo, o Azure Automanage cria atribuições de configuração de convidado ou você pode atribuir configurações ao implantar máquinas.

Para exibir todas as atribuições de configuração de convidado em seu locatário, no portal do Azure, abra a página Atribuições de convidado. Para exibir informações detalhadas de conformidade, selecione cada atribuição usando o link na coluna Nome.

Screenshot of the Guest Assignment page.

Histórico de alterações (Pré-visualização)

Como parte de uma nova visualização pública, os últimos 14 dias do histórico de alterações estão disponíveis para todos os recursos do Azure que oferecem suporte à exclusão completa do modo. O histórico de alterações fornece detalhes sobre quando uma alteração foi detetada e uma comparação visual para cada alteração. Uma deteção de alteração é acionada quando as propriedades do Azure Resource Manager são adicionadas, removidas ou alteradas.

  1. Inicie o serviço de Política do Azure no portal do Azure selecionando Todos os serviços e, em seguida, procurando e selecionando Política.

  2. Na página Visão geral ou Conformidade, selecione uma política em qualquer estado de conformidade.

  3. Na guia Conformidade de recursos da página Conformidade de políticas, selecione um recurso.

  4. Selecione a guia Histórico de alterações (visualização) na página Conformidade de recursos. Uma lista de alterações detetadas, se existirem, é exibida.

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

  5. Selecione uma das alterações detetadas. A comparação visual para o recurso é apresentada na página Histórico de alterações .

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

    O diff visual auxilia na identificação de alterações em um recurso. As alterações detetadas podem não estar relacionadas ao estado de conformidade atual do recurso.

Os dados do histórico de alterações são fornecidos pelo Azure Resource Graph. Para consultar essas informações fora do portal do Azure, consulte Obter alterações de recursos.

Próximos passos