Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo orienta você através da criação e gerenciamento de políticas de forma programática. As definições de Política do Azure impõem regras e efeitos diferentes sobre seus recursos. A aplicação garante que os recursos permaneçam em conformidade com os padrões corporativos e os contratos de nível de serviço.
Para obter informações sobre conformidade, consulte Obtendo dados de conformidade.
Pré-requisitos
Antes de começar, certifique-se de que os seguintes pré-requisitos são atendidos:
Se ainda não o fez, instale o ARMClient. É uma ferramenta que envia pedidos de HTTP para APIs baseadas no Azure Resource Manager.
Atualize seu módulo do Azure PowerShell para a versão mais recente. Consulte Instalar o módulo do Azure PowerShell para obter informações detalhadas. Para obter mais informações sobre a versão mais recente, consulte Azure PowerShell.
Registre o provedor de recursos do Azure Policy Insights usando o Azure PowerShell para validar se sua assinatura funciona com o provedor de recursos. Para registrar um provedor de recursos, você deve ter permissão para executar a operação de ação de registro para o provedor de recursos. Esta operação está incluída nas funções de Contribuinte e Proprietário. Execute o seguinte comando para registar o fornecedor de recursos:
Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'Para obter mais informações sobre como registar e visualizar os fornecedores de recursos, veja Fornecedores e Tipos de Recursos.
Se ainda não o fez, instale a CLI do Azure. Você pode obter a versão mais recente em Instalar a CLI do Azure no Windows.
Criar e atribuir uma definição de política
O primeiro passo para uma melhor visibilidade dos seus recursos é criar e atribuir políticas sobre os seus recursos. O próximo passo é aprender a criar e atribuir uma política de forma programática. A política de exemplo audita contas de armazenamento que estão abertas a todas as redes públicas usando solicitações PowerShell, CLI do Azure e HTTP.
Criar e atribuir uma definição de política com o PowerShell
Use o seguinte trecho JSON para criar um arquivo JSON com o nome AuditStorageAccounts.json.
{ "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", "equals": "Allow" } ] }, "then": { "effect": "audit" } }Para obter mais informações sobre como criar uma definição de política, consulte Estrutura de definição de política do Azure.
Execute o seguinte comando para criar uma definição de política usando o arquivo AuditStorageAccounts.json .
New-AzPolicyDefinition -Name 'AuditStorageAccounts' -DisplayName 'Audit Storage Accounts Open to Public Networks' -Policy 'AuditStorageAccounts.json'O comando cria uma definição de política chamada Contas de Armazenamento de Auditoria Abertas a Redes Públicas. Para obter mais informações sobre outros parâmetros que você pode usar, consulte New-AzPolicyDefinition.
Quando chamado sem parâmetros de localização,
New-AzPolicyDefinitiono padrão é salvar a definição de política na assinatura selecionada do contexto das sessões. Para salvar a definição em um local diferente, use os seguintes parâmetros:- SubscriptionId - Salve em uma assinatura diferente. Requer um valor GUID .
- ManagementGroupName - Salve em um grupo de gerenciamento. Requer um valor de cadeia de caracteres .
Depois de criar sua definição de política, você pode criar uma atribuição de política executando os seguintes comandos:
$rg = Get-AzResourceGroup -Name 'ContosoRG' $Policy = Get-AzPolicyDefinition -Name 'AuditStorageAccounts' New-AzPolicyAssignment -Name 'AuditStorageAccounts' -PolicyDefinition $Policy -Scope $rg.ResourceIdSubstitua ContosoRG pelo nome do grupo de recursos pretendido.
O
Scopeparâmetro onNew-AzPolicyAssignmentfunciona com grupo de gerenciamento, assinatura, grupo de recursos ou um único recurso. O parâmetro usa um caminho de recurso completo, que aResourceIdpropriedade onGet-AzResourceGroupretorna. O padrão paraScopecada recipiente é o seguinte. Substitua{rName},{rgName},{subId}e{mgName}pelo nome do recurso, nome do grupo de recursos, ID da assinatura e nome do grupo de gerenciamento, respectivamente.{rType}seria substituído pelo tipo de recurso do recurso, comoMicrosoft.Compute/virtualMachinespara uma máquina virtual.- Recurso -
/subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName} - Grupo de recursos -
/subscriptions/{subId}/resourceGroups/{rgName} - Subscrição -
/subscriptions/{subId} - Grupo de gestão -
/providers/Microsoft.Management/managementGroups/{mgName}
- Recurso -
Para obter mais informações sobre como gerenciar políticas de recursos usando o módulo PowerShell do Gerenciador de Recursos, consulte Az.Resources.
Criar e atribuir uma definição de política usando ARMClient
Use o procedimento a seguir para criar uma definição de política.
Copie o seguinte trecho JSON para criar um arquivo JSON. Você chamará o arquivo na próxima etapa.
"properties": { "displayName": "Audit Storage Accounts Open to Public Networks", "policyType": "Custom", "mode": "Indexed", "description": "This policy ensures that storage accounts with exposure to Public Networks are audited.", "parameters": {}, "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", "equals": "Allow" } ] }, "then": { "effect": "audit" } } }Crie a definição de política usando uma das seguintes chamadas:
# For defining a policy in a subscription armclient PUT "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/AuditStorageAccounts?api-version=2021-09-01" @<path to policy definition JSON file> # For defining a policy in a management group armclient PUT "/providers/Microsoft.Management/managementgroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions/AuditStorageAccounts?api-version=2021-09-01" @<path to policy definition JSON file>Substitua o anterior
{subscriptionId}pelo ID da sua subscrição ou{managementGroupId}pelo ID do seu grupo de gestão.Para obter mais informações sobre a estrutura da consulta, consulte Definições de política do Azure - Criar ou atualizar e Definições de política - Criar ou atualizar no grupo de gerenciamento.
Use o procedimento a seguir para criar uma atribuição de política e atribuir a definição de política no nível do grupo de recursos.
Copie o seguinte trecho JSON para criar um arquivo de atribuição de política JSON. Substitua informações de exemplo em <> símbolos por seus próprios valores.
{ "properties": { "description": "This policy assignment makes sure that storage accounts with exposure to Public Networks are audited.", "displayName": "Audit Storage Accounts Open to Public Networks Assignment", "parameters": {}, "policyDefinitionId": "/subscriptions/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Storage Accounts Open to Public Networks", "scope": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>" } }Crie a atribuição de política usando a seguinte chamada:
armclient PUT "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Authorization/policyAssignments/Audit Storage Accounts Open to Public Networks?api-version=2021-09-01" @<path to Assignment JSON file>Substitua informações de exemplo em <> símbolos por seus próprios valores.
Para obter mais informações sobre como fazer chamadas HTTP para a API REST, consulte Recursos da API REST do Azure.
Criar e atribuir uma definição de política com a CLI do Azure
Para criar uma definição de política, use o seguinte procedimento:
Copie o seguinte trecho JSON para criar um arquivo de atribuição de política JSON.
{ "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", "equals": "Allow" } ] }, "then": { "effect": "audit" } }Para obter mais informações sobre como criar uma definição de política, consulte Estrutura de definição de política do Azure.
Execute o seguinte comando para criar uma definição de política:
az policy definition create --name 'audit-storage-accounts-open-to-public-networks' --display-name 'Audit Storage Accounts Open to Public Networks' --description 'This policy ensures that storage accounts with exposures to public networks are audited.' --rules '<path to json file>' --mode AllO comando cria uma definição de política chamada Contas de Armazenamento de Auditoria Abertas a Redes Públicas. Para obter mais informações sobre outros parâmetros que você pode usar, consulte az policy definition create.
Quando chamado sem parâmetros de localização,
az policy definition creationo padrão é salvar a definição de política na assinatura selecionada do contexto das sessões. Para salvar a definição em um local diferente, use os seguintes parâmetros:- subscrição - Guarde numa subscrição diferente. Requer um valor GUID para a ID da assinatura ou um valor de cadeia de caracteres para o nome da assinatura.
- management-group - Salvar em um grupo de gerenciamento. Requer um valor de cadeia de caracteres .
Use o comando a seguir para criar uma atribuição de política. Substitua informações de exemplo em símbolos de colchetes
< >angulares por seus próprios valores.az policy assignment create --name '<name>' --scope '<scope>' --policy '<policy definition ID>'O
scopeparâmetro onaz policy assignment createfunciona com grupo de gerenciamento, assinatura, grupo de recursos ou um único recurso. O parâmetro usa um caminho de recurso completo. O padrão parascopecada recipiente é o seguinte. Substitua{rName},{rgName},{subId}e{mgName}pelo nome do recurso, nome do grupo de recursos, ID da assinatura e nome do grupo de gerenciamento, respectivamente.{rType}seria substituído pelo tipo de recurso do recurso, comoMicrosoft.Compute/virtualMachinespara uma máquina virtual.- Recurso -
/subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName} - Grupo de recursos -
/subscriptions/{subID}/resourceGroups/{rgName} - Subscrição -
/subscriptions/{subID} - Grupo de gestão -
/providers/Microsoft.Management/managementGroups/{mgName}
- Recurso -
Você pode obter a ID de Definição de Política do Azure usando o PowerShell com o seguinte comando:
az policy definition show --name 'Audit Storage Accounts with Open Public Networks'
A ID de definição de política para a definição de política que você criou deve ser semelhante ao exemplo a seguir:
"/subscription/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Storage Accounts Open to Public Networks"
Para obter mais informações sobre como você pode gerenciar políticas de recursos com a CLI do Azure, consulte Políticas de recursos da CLI do Azure.
Próximos passos
Consulte os seguintes artigos para obter mais informações sobre os comandos e consultas neste artigo.
- Recursos da API REST do Azure.
- Módulos do Azure PowerShell.
- Comandos de política da CLI do Azure.
- Referência da API REST do provedor de recursos da Política do Azure.
- Organizar os recursos com os grupos de gestão do Azure.