Determinar as causas de não conformidade

Quando um recurso do Azure é determinado como estando em não conformidade com uma regra de política, é importante entender a parte da regra com a qual o recurso não está em conformidade. Também é útil entender qual alteração alterou um recurso de forma que ele se ficasse em não conformidade. 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 da 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 de motivos para a não conformidade do recurso

Importante

Como os detalhes de conformidade de um recurso em não conformidade mostram o valor atual das propriedades nesse recurso, o usuário deve ter a operação de leitura para o tipo do recurso. Por exemplo, se o recurso de em não conformidade for Microsoft.Compute/virtualMachines, o usuário deverá ter a operação Microsoft.Compute/virtualMachines/read. 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 do Azure Policy no portal do Azure selecionando Todos os serviços e, em seguida, pesquisando e selecionando Política.

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

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

    Captura de tela do link

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

    Captura de tela do painel Detalhes de conformidade e motivos de não conformidade de que o valor atual é de doze e o valor de destino é de 14.

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

    Exemplo de definição deployIfNotExists parcial:

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

    Captura de tela do painel Detalhes de conformidade para ifNotExists, incluindo a contagem de recursos avaliada.

Observação

Para proteger os dados, quando um valor de propriedade for um segredo, o valor atual exibirá asteriscos.

Esses detalhes explicam por que um recurso não está em conformidade no momento, mas não mostram quando foi feita a alteração no recurso que fez com que ele se passasse a não estar em conformidade. Para saber mais, confira Histórico de alterações (versão preliminar) abaixo.

Motivos de conformidade

Os modos do Resource Manager e os modos do Provedor de Recursos têm motivos diferentes para não conformidade.

Motivos de conformidade do modo do Resource Manager Geral

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

Motivo Condição
O valor atual deve conter o valor de destino como uma chave. containsKey ou not notContainsKey
O valor atual deve conter o valor de destino. contains ou not notContains
O valor atual deve ser igual ao valor de destino. equals ou not notEquals
O valor atual deve ser menor do que o valor de destino. less ou not greaterOrEquals
O valor atual deve ser maior ou igual ao valor de destino. greaterOrEquals ou not less
O valor atual deve ser maior que o valor de destino. greater ou not lessOrEquals
O valor atual deve ser menor ou igual ao valor de destino. lessOrEquals ou not greater
O valor atual deve existir. exists
O valor atual deve estar no valor de destino. in ou not notIn
O valor atual deve ser como o valor de destino. like ou not notLike
O valor atual precisa corresponder ao valor de destino diferenciando maiúsculas de minúsculas. match ou not notMatch
O valor atual precisa corresponder ao valor de destino sem diferenciar maiúsculas de minúsculas. matchInsensitively ou not notMatchInsensitively
O valor atual não deve conter o valor de destino como uma chave. notContainsKey ou not containsKey
O valor atual não deve conter o valor de destino. notContains ou not contains
O valor atual não deve ser igual ao valor de destino. notEquals ou not equals
O valor atual não deve existir. not exists
O valor atual não deve estar no valor de destino. notIn ou not in
O valor atual não deve ser como o valor de destino. notLike ou not like
O valor atual não pode corresponder ao valor de destino diferenciando maiúsculas de minúsculas. notMatch ou not match
O valor atual não pode corresponder ao valor de destino sem diferenciar maiúsculas de minúsculas. notMatchInsensitively ou not matchInsensitively
Não há recursos relacionados que correspondam aos detalhes de efeito na definição de política. Um recurso do tipo definido em then.details.type e relacionado ao recurso definido na parte if da regra de política não existe.

Motivos de conformidade do modo do Provedor de Recursos do Azure Policy

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

Código de motivo da conformidade Mensagem de erro e explicação
NonModifiablePolicyAlias NonModifiableAliasConflict: o alias '{alias}' não é modificável em solicitações usando a versão da API '{apiVersion}'. Esse erro ocorre quando uma solicitação que usa uma versão da API em que o alias não dá suporte ao efeito 'modify' ou dá suporte apenas ao efeito 'modify' 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 usando versões de API para as quais os aliases não dão suporte ao efeito 'modify' ou dão suporte ao efeito 'modify' com um tipo de token diferente.
ConflictingAppendPolicies ConflictingAppendPolicies: encontrou 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.
AmbiguousPolicyEvaluationPaths O conteúdo da solicitação tem um ou mais caminhos ambíguos: '{0}' exigido pelas políticas: '{1}'.
InvalidResourceNameWildcardPosition A atribuição de política '{0}' associada à definição de política '{1}' não pôde ser avaliada. O nome do recurso '{2}' dentro de uma condição ifNotExists contém o caractere curinga '?' em uma posição inválida. Curingas só podem ser localizados no final do nome em um segmento por conta própria (ex. TopLevelResourceName/?). Corrija a política ou remova a atribuição de política para desbloquear.
TooManyResourceNameSegments A atribuição de política '{0}' associada à definição de política '{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 da política ou remova a atribuição de política para desbloquear.
InvalidPolicyFieldPath O caminho de campo '{0}' dentro da definição de política é inválido. Os caminhos de campo não devem conter segmentos vazios. Eles podem conter apenas caracteres alfanuméricos, com exceção do caractere '.' para dividir segmentos e a sequência de caracteres '[*]' para acessar as propriedades da matriz.

Motivos de conformidade do modo do Provedor de Recursos do AKS

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

Motivo Descrição do motivo do modelo de restrição
Constraint/TemplateCreateFailed O recurso falhou ao criar uma definição de política com uma Restrição/Modelo que não corresponda a uma Restrição/Modelo existente no cluster por nome de metadados de recurso.
Constraint/TemplateUpdateFailed A Restrição/Modelo falhou ao atualizar uma definição de política com uma Restrição/Modelo que corresponda a uma Restrição/Modelo existente no cluster por nome de metadados de recurso.
Constraint/TemplateInstallFailed A Restrição/Modelo não pôde ser criado e não pôde ser instalado no cluster para criar ou atualizar a operação.
ConstraintTemplateConflicts O Modelo tem um conflito com uma ou mais definições de política usando o mesmo Nome do modelo com uma fonte diferente.
ConstraintStatusStale Há um status de “Auditoria” existente, mas o Gatekeeper não realizou uma auditoria na última hora.
ConstraintNotProcessed Não há nenhum status e o Gatekeeper não realizou uma auditoria na última hora.
InvalidConstraint/Template O Servidor de API rejeitou o recurso devido a um YAML inválido. Esse motivo também pode ser causado por uma incompatibilidade de tipo de parâmetro (exemplo: cadeia de caracteres fornecida para um inteiro)

Observação

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

Detalhes do componente para modos do Provedor de Recursos

Para atribuições com um modo Provedor de recursos, selecione o recurso Sem conformidade para abrir uma exibição mais profunda. Na guia Conformidade do Componente, há informações adicionais específicas para o modo Provedor de recursos na política atribuída mostrando o Componente que não estão em conformidade e a ID do componente.

Captura de tela da guia Conformidade do Componente e detalhes de conformidade de uma atribuição de modo do provedor de recursos.

Detalhes de conformidade para configuração de convidado

Para definições de políticas na categoria Configuração de convidado, pode haver várias configurações avaliadas dentro da máquina virtual e você precisará exibir os 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 de Não conformidade, será preciso saber quais configurações específicas estão fora de conformidade e por quê.

Você também pode não ter acesso para entrar na máquina virtual diretamente, mas precisa relatar porque a máquina virtual não está em conformidade.

Portal do Azure

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

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

Captura de tela da exibição dos detalhes de conformidade da definição auditIfNotExists.

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 executada dentro da máquina. Na coluna Motivo, uma frase é mostrada descrevendo por que a atribuição de convidado é não está em conformidade. Por exemplo, se você estiver auditando políticas de senha, a coluna Motivo exibirá texto, incluindo o valor atual para cada configuração.

Captura de tela dos detalhes de conformidade da Atribuição de Convidado.

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

O recurso de configuração de convidado pode ser usado fora das atribuições do Azure Policy. Por exemplo, o Gerenciamento Automatizado do Azure cria atribuições de configuração de convidado ou você pode atribuir configurações ao implantar computadores.

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

Captura de tela da página de Atribuição de Convidado.

Alterar histórico (Versão prévia)

Como parte de uma nova versão preliminar pública, os últimos 14 dias de histórico de alterações estão disponíveis para todos os recursos do Azure que dão suporte à exclusão de modo completo. O histórico de alterações fornece detalhes sobre quando uma alteração foi detectada e uma comparação visual para cada alteração. A detecção de alteração é disparada quando as propriedades do Azure Resource Manager são adicionadas, removidas ou alteradas.

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

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

  3. Na guia Conformidade do recurso da página Conformidade com a política, escolha um recurso.

  4. Escolha a guia Histórico de Alterações (versão prévia) na página Conformidade do Recurso. Se houver uma lista de alterações detectadas, ela será exibida.

    Captura de tela da guia Histórico de Alterações e tempos de alteração detectados na página Conformidade de Recursos.

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

    Captura de tela da Comparação visual do histórico de alterações do estado antes e depois das propriedades na página Histórico de alterações.

A comparação visual ajuda a identificar alterações em um recurso. As alterações detectadas 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, confira Obter alterações de recurso.

Próximas etapas