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:
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.
Na página Visão geral ou Conformidade, selecione uma política em um estado de conformidade que não seja compatível.
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.
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.Para uma definição de
auditIfNotExists
política oudeployIfNotExists
, 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": { ... } } } }
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 modo Gerenciador 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.PolicyInsights
có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 onde 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: '{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. 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 '{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 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.Data
motivo do modo Provedor 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 não pôde ser atualizada 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. |
Constraint/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.
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.
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 é 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.
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.
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.
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.
Na página Visão geral ou Conformidade, selecione uma política em qualquer estado de conformidade.
Na guia Conformidade de recursos da página Conformidade de políticas, selecione um recurso.
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.
Selecione uma das alterações detetadas. A comparação visual para o recurso é apresentada na página Histórico de alterações .
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
- Analise exemplos em Exemplos de Política do Azure.
- Reveja a estrutura de definição do Azure Policy.
- Veja Compreender os efeitos do Policy.
- Entenda como criar políticas de forma programática.
- Saiba como obter dados de conformidade.
- Saiba como corrigir recursos não compatíveis.
- Analise o que é um grupo de gerenciamento com Organize seus recursos com grupos de gerenciamento do Azure.