Obter dados de conformidade dos recursos do Azure
Um dos maiores benefícios do Azure Policy é a perceção e os controles que ele fornece sobre os recursos em uma assinatura ou grupo de gerenciamento de assinaturas. Esse controle pode impedir que recursos sejam criados no local errado, impor o uso comum e consistente de tags ou auditar recursos existentes para configurações e configurações apropriadas. Em todos os casos, a Política do Azure gera dados que permitem compreender o estado de conformidade do seu ambiente.
Antes de analisar os dados de conformidade, é importante entender os estados de conformidade na Política do Azure.
Há várias maneiras de acessar as informações de conformidade geradas por suas atribuições de política e iniciativa:
Antes de analisar os métodos para relatar a conformidade, vamos analisar quando as informações de conformidade são atualizadas e a frequência e os eventos que desencadeiam um ciclo de avaliação.
Gatilhos de avaliação
Os resultados de um ciclo de avaliação concluído estão disponíveis no Microsoft.PolicyInsights
Provedor de Recursos através PolicyStates
e PolicyEvents
operações. Para obter mais informações sobre as operações da API REST do Azure Policy Insights, consulte Azure Policy Insights.
As avaliações das políticas e iniciativas atribuídas são o resultado de vários eventos:
- Uma política ou iniciativa é recentemente atribuída a um âmbito. Leva cerca de cinco minutos para que a atribuição seja aplicada ao escopo definido e, em seguida, o ciclo de avaliação começa para os recursos aplicáveis em relação à política ou iniciativa recém-atribuída. Dependendo dos efeitos utilizados, os recursos são marcados como conformes, não conformes, isentos ou desconhecidos. Uma grande política ou iniciativa avaliada em relação a um grande escopo de recursos pode levar tempo, portanto, não há expectativa predefinida de quando o ciclo de avaliação será concluído. Após a conclusão, os resultados atualizados de conformidade ficam disponíveis no portal e nos SDKs (Software Development Kits).
- Uma política ou iniciativa já atribuída a um âmbito é atualizada. O ciclo de avaliação e o tempo para este cenário são os mesmos que para uma nova atribuição a um escopo.
- Um recurso é implantado ou atualizado dentro de um escopo com uma atribuição por meio do Gerenciador de Recursos do Azure, API REST ou um SDK com suporte. Nesse cenário, o evento de efeito (acrescentar, auditar, negar, implantar) e as informações de status compatíveis para o recurso individual ficam disponíveis no portal e SDKs cerca de 15 minutos depois. Este evento não causa uma avaliação de outros recursos.
- Uma assinatura (tipo
Microsoft.Resources/subscriptions
de recurso) é criada ou movida dentro de uma hierarquia de grupo de gerenciamento com uma definição de política atribuída direcionada ao tipo de recurso de assinatura. A avaliação dos efeitos suportados pela assinatura (auditoria, auditIfNotExist, deployIfNotExists, modificar), registro em log e quaisquer ações de correção leva cerca de 30 minutos. - Uma isenção de política é criada, atualizada ou excluída. Nesse cenário, a atribuição correspondente é avaliada para o escopo de isenção definido.
- Ciclo normalizado de avaliação da conformidade. Uma vez a cada 24 horas, as tarefas são automaticamente reavaliadas. Uma grande política ou iniciativa de muitos recursos pode levar tempo, por isso não há uma expectativa predefinida de quando o ciclo de avaliação termina. Depois de concluído, os resultados de conformidade atualizados estarão disponíveis no portal e nos SDKs.
- O provedor de recursos de configuração da máquina é atualizado com detalhes de conformidade por um recurso gerenciado.
- Varredura por solicitação.
Nota
Por design, a Política do Azure isenta da avaliação de política todos os recursos sob o Microsoft.Resources
provedor de recursos, exceto assinaturas e grupos de recursos, que podem ser avaliados.
On-demand evaluation scan (Análise de avaliação a pedido)
Uma verificação de avaliação para uma assinatura ou um grupo de recursos pode ser iniciada com REST, CLI do Azure, Azure PowerShell, extensão de Política do Azure para Visual Studio Code ou Ação GitHub de Verificação de Conformidade de Política do Azure. As varreduras por solicitação são um processo assíncrono que leva muito tempo para ser executado porque os recursos são avaliados em relação a todas as políticas atribuídas.
Nota
Nem todos os provedores de recursos do Azure oferecem suporte a verificações de avaliação sob demanda. Por exemplo, o Azure Virtual Network Manager (AVNM) atualmente não oferece suporte a gatilhos manuais ou ao ciclo de avaliação de conformidade de política padrão (verificações diárias).
Varredura de avaliação sob demanda usando REST
Como um processo assíncrono, o ponto de extremidade REST para iniciar a verificação não espera até que a verificação seja concluída para responder. Em vez disso, ele fornece um URI para consultar o status da avaliação solicitada.
Em cada URI da API REST, existem variáveis que são utilizadas que precisa de substituir pelos seus próprios valores:
-
{resourceGroupName}
: Substitua pelo nome do seu grupo de recursos. -
{subscriptionId}
: Substitua pelo ID da sua subscrição.
A verificação oferece suporte à avaliação de recursos em uma assinatura ou em um grupo de recursos. Inicie uma verificação por escopo com um comando REST API POST usando as seguintes estruturas de URI:
Use o comando a seguir para avaliar uma assinatura. Pode executar o comando a partir do seu browser em Policy States - Trigger Subscription Evaluation utilizando a opção Try it .
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Use o comando a seguir para avaliar um grupo de recursos. Você pode executar o comando a partir do seu navegador em Policy States - Trigger Resource Group Evaluation usando a opção Try it .
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
As chamadas da API REST da assinatura e do grupo de recursos retornam um status 202 Aceito. Incluído no cabeçalho de resposta está uma location
propriedade com o seguinte formato:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01
{ResourceContainerGUID}
é gerado estaticamente para o escopo solicitado. Se um escopo já estiver executando uma varredura por solicitação, uma nova verificação não será iniciada. Em vez disso, a nova solicitação recebe o mesmo {ResourceContainerGUID}
location
URI para status. Um comando REST API GET para o location
URI retorna um 202 Accepted enquanto a avaliação está em andamento. Quando a verificação de avaliação estiver concluída, ela retornará um status 200 OK . O corpo de uma verificação concluída é uma resposta JSON com o status: succeeded
.
Varredura de avaliação sob demanda usando a CLI do Azure
A verificação de conformidade é iniciada com o comando az policy state trigger-scan .
Por padrão, az policy state trigger-scan
inicia uma avaliação para todos os recursos na assinatura atual. Para iniciar uma avaliação em um grupo de recursos específico, use o resource-group
parâmetro. O exemplo a seguir inicia uma verificação de conformidade na assinatura atual para um grupo de recursos. Substitua resourceGroupName
pelo nome do seu grupo de recursos:
az policy state trigger-scan --resource-group "resourceGroupName"
Você pode optar por não esperar a conclusão do processo assíncrono antes de continuar com o no-wait
parâmetro.
Varredura de avaliação sob demanda usando o Azure PowerShell
A verificação de conformidade é iniciada com o cmdlet Start-AzPolicyComplianceScan .
Por padrão, Start-AzPolicyComplianceScan
inicia uma avaliação para todos os recursos na assinatura atual. Para iniciar uma avaliação em um grupo de recursos específico, use o ResourceGroupName
parâmetro. O exemplo a seguir inicia uma verificação de conformidade na assinatura atual para um grupo de recursos. Substitua resourceGroupName
pelo nome do seu grupo de recursos:
Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'
Você pode fazer com que o PowerShell aguarde a conclusão da chamada assíncrona antes de fornecer a saída de resultados ou faça com que ela seja executada em segundo plano como um trabalho. Para usar um trabalho do PowerShell para executar a verificação de conformidade em segundo plano, use o AsJob
parâmetro e defina o valor como um objeto, como $job
neste exemplo:
$job = Start-AzPolicyComplianceScan -AsJob
Você pode verificar o status do trabalho verificando o $job
objeto. O trabalho é do tipo Microsoft.Azure.Commands.Common.AzureLongRunningJob
. Use Get-Member
no objeto para ver as propriedades e métodos $job
disponíveis.
Enquanto a verificação de conformidade está em execução, a verificação do $job
objeto produz resultados como estes:
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running O... AzureLongRunni... Running True localhost Start-AzPolicyCompliance...
Quando a verificação de conformidade for concluída, a State
propriedade será alterada para Concluído.
Varredura de avaliação por solicitação usando o Visual Studio Code
A extensão de Política do Azure para Visual Studio Code é capaz de executar uma verificação de avaliação para um recurso específico. Essa verificação é um processo síncrono, ao contrário dos métodos Azure PowerShell e REST. Para obter detalhes e etapas, consulte Avaliação sob demanda com a extensão VS Code.
Varredura de avaliação sob demanda usando ações do GitHub
Use a ação Varredura de Conformidade de Política do Azure para acionar uma verificação de avaliação sob demanda do seu fluxo de trabalho do GitHub em um ou vários recursos, grupos de recursos ou assinaturas e cancele o fluxo de trabalho com base no estado de conformidade dos recursos. Você também pode configurar o fluxo de trabalho para ser executado em um horário agendado para obter o status de conformidade mais recente em um momento conveniente. Opcionalmente, as Ações do GitHub podem gerar um relatório sobre o estado de conformidade dos recursos digitalizados para análise adicional ou arquivamento.
O exemplo a seguir executa uma verificação de conformidade para uma assinatura. Em scopes
utilizar o seu ID de subscrição.
on:
schedule:
- cron: '0 8 * * *' # runs every morning 8am
jobs:
assess-policy-compliance:
runs-on: ubuntu-latest
steps:
- name: Login to Azure
uses: azure/login@v2
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: Check for resource compliance
uses: azure/policy-compliance-scan@v0
with:
scopes: |
/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e
Para obter mais informações e exemplos de fluxo de trabalho, consulte o repositório GitHub Actions for Azure Policy Compliance Scan.
Portal
O portal do Azure apresenta uma experiência gráfica de visualização e compreensão do estado de conformidade no seu ambiente. Na página Política, a opção Visão geral fornece detalhes sobre os escopos disponíveis sobre a conformidade de políticas e iniciativas. Juntamente com o estado de conformidade e a contagem por atribuição, contém um gráfico que mostra a conformidade nos últimos sete dias. A página Conformidade contém muitas dessas mesmas informações (exceto o gráfico), mas fornece mais opções de filtragem e classificação.
Como uma política ou iniciativa pode ser atribuída a escopos diferentes, a tabela inclui o escopo de cada atribuição e o tipo de definição atribuída. O número de recursos não compatíveis e políticas não compatíveis para cada atribuição também são fornecidos. A seleção de uma política ou iniciativa na tabela fornece uma visão mais profunda da conformidade para essa atribuição específica.
A lista de recursos na guia Conformidade de recursos mostra o status de avaliação dos recursos existentes para a atribuição atual. O padrão da guia é Não compatível, mas pode ser filtrado. Os eventos (acrescentar, auditar, negar, implantar, modificar) acionados pela solicitação para criar um recurso são mostrados na guia Eventos .
Para recursos do modo Provedor de Recursos, na guia Conformidade de recursos, selecionar o recurso ou clicar com o botão direito do mouse na linha e selecionar Exibir detalhes de conformidade abre os detalhes de conformidade do componente. Esta página também oferece guias para ver as políticas atribuídas a esse recurso, eventos, eventos de componentes e histórico de alterações.
De volta à página de conformidade de recursos, selecione e segure (ou clique com o botão direito do mouse) na linha do evento em que você deseja reunir mais detalhes e selecione Mostrar logs de atividades. A página do registro de atividades é aberta e pré-filtrada para a pesquisa, mostrando detalhes da atribuição e dos eventos. O log de atividades fornece mais contexto e informações sobre esses eventos.
Nota
Os resultados de conformidade podem ser exportados do portal com consultas do Azure Resource Graph.
Linha de comandos
As mesmas informações disponíveis no portal podem ser recuperadas com a API REST, a CLI do Azure e o Azure PowerShell.
API REST
Para obter detalhes sobre a API REST, consulte a referência da Política do Azure. As páginas de referência da API REST têm uma opção Try It em cada operação que permite executar o comando em um navegador. Você também pode usar a CLI do Azure ou seu cliente de API REST preferido para executar comandos.
Resumir os resultados
Com a API REST, você pode resumir por contêiner, definição ou atribuição. Veja um exemplo de resumo no nível de assinatura usando o Resumo para Assinatura do Azure Policy Insight:
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01
A saída resume a assinatura e a conformidade resumida está nas nonCompliantResources
propriedades e nonCompliantPolicies
. Esta solicitação fornece outros detalhes, incluindo cada atribuição que compôs os números não conformes e as informações de definição para cada atribuição. Cada objeto de política na hierarquia fornece um queryResultsUri
que pode ser usado para obter mais detalhes nesse nível.
Consulta de recursos
No exemplo anterior, value.policyAssignments.policyDefinitions.results.queryResultsUri
fornece um URI de exemplo para todos os recursos não compatíveis para uma definição de política específica.
$filter
No valor, ComplianceState é igual (eq) a NonCompliant
, PolicyAssignmentId
é especificado para a definição de política e, em seguida, o próprio PolicyDefinitionId. A razão para incluir o PolicyAssignmentId
no filtro é porque o PolicyDefinitionId
pode existir em várias atribuições de política ou iniciativa com escopos diferentes. Ao especificar o PolicyAssignmentId
e o PolicyDefinitionId
, podemos ser explícitos nos resultados que procuramos. Anteriormente, para PolicyStates
nós usamos latest
, que define automaticamente uma from
janela de tempo e to
das últimas 24 horas.
Exemplo do queryResultsUri
valor:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2025-01-01 04:28:22Z&$to=2025-02-10 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'
Ver eventos
Quando um recurso é criado ou atualizado, um resultado de avaliação de política é gerado. Os resultados são chamados de eventos de política. Use o seguinte URI para exibir eventos de política recentes associados à assinatura.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01
Para obter mais informações sobre como consultar eventos de política, consulte Eventos de política do Azure.
CLI do Azure
O grupo de comandos da CLI do Azure para a Política do Azure abrange a maioria das operações disponíveis no REST ou no Azure PowerShell. Para obter a lista completa de comandos disponíveis, consulte az policy.
Obtenha o resumo do estado para a política mais atribuída com o maior número de recursos não compatíveis.
az policy state summarize --top 1
Obtenha o registro de estado para o recurso avaliado mais recentemente e o padrão de saída é por carimbo de data/hora em ordem decrescente.
az policy state list --top 1
Obtenha os detalhes de todos os recursos de rede virtual não compatíveis.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"
Obtenha eventos relacionados a recursos de rede virtual não compatíveis que ocorreram após uma data específica. Use o from
parâmetro com uma data no formato ISO 8601.
az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'
Azure PowerShell
Você pode executar os seguintes comandos do Azure Cloud Shell.
Obtenha o resumo do estado para a política mais atribuída com o maior número de recursos não compatíveis.
Get-AzPolicyStateSummary -Top 1
Obtenha o registro de estado para o recurso avaliado mais recentemente. O padrão de saída é por carimbo de data/hora em ordem decrescente.
Get-AzPolicyState -Top 1
Obtenha os detalhes de todos os recursos de rede virtual não compatíveis.
Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"
Obtenha eventos relacionados a recursos de rede virtual não compatíveis que ocorreram após uma data específica. Use o From
parâmetro com uma data no formato ISO 8601.
Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'
A saída inclui uma PrincipalOid
propriedade que pode ser usada para obter um usuário específico com o cmdlet Get-AzADUser
do Azure PowerShell. Substitua {principalOid}
pelo valor obtido do comando anterior.
(Get-AzADUser -ObjectId {principalOid}).DisplayName
Registos do Azure Monitor
Se você tiver um espaço de trabalho do Log Analytics com AzureActivity
a solução Activity Log Analytics vinculada à sua assinatura, também poderá visualizar os resultados de não conformidade da avaliação de recursos novos e atualizados usando consultas Kusto e a AzureActivity
tabela. Com detalhes nos logs do Azure Monitor, os alertas podem ser configurados para observar a não conformidade.
Azure Resource Graph
Os registros de conformidade são armazenados no Azure Resource Graph (ARG). Os dados podem ser exportados de consultas ARG para formar painéis personalizados com base nos escopos e políticas de interesse. Analise nossas consultas de exemplo para exportar dados de conformidade por meio do ARG.
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 corrigir recursos não compatíveis.
- Analise o que é um grupo de gerenciamento com Organize seus recursos com grupos de gerenciamento do Azure.