Use Azure Policy para implementar governança e controles para recursos de Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Table

O Azure Policy ajuda a reforçar os padrões de governança organizacional, a avaliar a conformidade dos recursos e a implementar a correção automática. Os casos de uso comuns incluem segurança, gerenciamento de custos e consistência de configuração.

Definições de política interna do Azure Policy. Você pode criar definições de política personalizadas para cenários que não são abordados pelas definições de política internas. Para obter mais detalhes, confira a documentação do Azure Policy.

Importante

O Azure Policy é aplicado no nível do provedor de recursos para os serviços do Azure. Os SDKs do Azure Cosmos DB podem executar a maioria das operações de gerenciamento nos recursos de banco de dados, contêiner e taxa de transferência que ignoram o provedor de recursos do Azure Cosmos DB, o que também ignora todas as políticas criadas usando o Azure Policy. Para garantir a aplicação de políticas, consulte Impedindo alterações dos SDKs do Azure Cosmos DB

Atribuir uma definição de política incorporada

As definições de política descrevem as condições de conformidade do recurso e o efeito a ser tomada se uma condição for atendida. As atribuições de política são criadas com base nas definições de política. Você pode usar definições de política internas ou personalizadas para seus recursos do Microsoft Azure Cosmos DB. As atribuições de política têm como escopo um grupo de gerenciamento do Azure, uma assinatura do Azure ou um grupo de recursos e são aplicadas aos recursos dentro do escopo selecionado. Opcionalmente, você pode excluir recursos específicos do escopo.

Você pode criar atribuições de política com o portal do Azure, Azure PowerShell, CLI do Azureou modelo ARM.

Para criar uma atribuição de política de uma definição de política interna para Azure Cosmos DB, use as etapas no artigo Criar uma atribuição de política com o portal do Azure.

Na etapa para selecionar uma definição de política, insira Azure Cosmos DB no campo de pesquisa para filtrar a lista de definições de políticas internas disponíveis. Selecione uma das definições de política internas disponíveis e escolha Selecionar para continuar criando a atribuição de política.

Dica

Você também pode usar os nomes de definição de política interna mostrados no painel Definições disponíveis com modelos Azure PowerShell, CLI do Azure ou ARM para criar atribuições de política.

Pesquisar definições de políticas internas para o Azure Cosmos DB

Criar uma definição de política personalizada

Para cenários que não são abordados pelas definições de política internas, você pode criar uma definição de política personalizada. Posteriormente, você cria uma atribuição de política com a sua definição de política personalizada.

Tipos de propriedade e aliases de propriedade em regras de política

Use as etapas de definição de política personalizada para identificar as propriedades de recurso e os aliases de propriedade, que são necessários para criar regras de política.

Para identificar Azure Cosmos DB aliases de propriedade específicos, use o namespace Microsoft.DocumentDB com um dos métodos mostrados no artigo etapas de definição de política personalizada.

Usar a CLI do Azure:

# Login first with az login if not using Cloud Shell

# Get Azure Policy aliases for namespace Microsoft.DocumentDB
az provider show --namespace Microsoft.DocumentDB --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name"

Usar PowerShell do Azure:

# Login first with Connect-AzAccount if not using Cloud Shell

# Use Get-AzPolicyAlias to list aliases for Microsoft.DocumentDB namespace
(Get-AzPolicyAlias -NamespaceMatch 'Microsoft.DocumentDB').Aliases

Esses comandos geram a lista de nomes de alias de propriedade para a propriedade do Microsoft Azure Cosmos DB. Veja a seguir um trecho da saída:

[
  "Microsoft.DocumentDB/databaseAccounts/sku.name",
  "Microsoft.DocumentDB/databaseAccounts/virtualNetworkRules[*]",
  "Microsoft.DocumentDB/databaseAccounts/virtualNetworkRules[*].id",
  "Microsoft.DocumentDB/databaseAccounts/isVirtualNetworkFilterEnabled",
  "Microsoft.DocumentDB/databaseAccounts/consistencyPolicy.defaultConsistencyLevel",
  "Microsoft.DocumentDB/databaseAccounts/enableAutomaticFailover",
  "Microsoft.DocumentDB/databaseAccounts/Locations",
  "Microsoft.DocumentDB/databaseAccounts/Locations[*]",
  "Microsoft.DocumentDB/databaseAccounts/Locations[*].locationName",
  "..."
]

Você pode usar qualquer um desses nomes de alias de propriedade nas regras de definição de política personalizada.

Veja a seguir um exemplo de definição de política que verifica se uma conta do Azure Cosmos DB está configurada para vários locais de gravação. A definição de políticas personalizadas inclui duas regras: uma para verificar o tipo específico de alias de propriedade e outra para a propriedade específica do tipo que, nesse caso, é o campo que armazena a configuração de vários locais de gravação. Ambas as regras usam os nomes de alias.

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDB/databaseAccounts"
      },
      {
        "field": "Microsoft.DocumentDB/databaseAccounts/enableMultipleWriteLocations",
        "notEquals": true
      }
    ]
  },
  "then": {
    "effect": "Audit"
  }
}

As definições de política personalizadas podem ser usadas para criar atribuições de política, como acontece com as definições de política internas.

Conformidade da política

Depois que as atribuições de política são criadas, o Azure Policy avalia os recursos no escopo da atribuição. Aconformidadede cada recurso com a política é avaliada. O efeito especificado na política é então aplicado a recursos sem conformidade.

Você pode examinar os resultados de conformidade e os detalhes de correção no portal do Azure ou por meio da CLI do Azure ou dos logs do Azure monitor.

A captura de tela a seguir mostra dois exemplos de atribuições de política.

Uma atribuição é baseada em uma definição de política interna, que verifica se os recursos do Microsoft Azure Cosmos DB são implantados somente nas regiões do Azure permitidas. A conformidade de recursos mostra o resultado da avaliação de política (compatível ou não) para os recursos no escopo.

A outra atribuição é baseada em uma definição de política personalizada. Essa atribuição verifica se as contas do Azure Cosmos DB estão configuradas para vários locais de gravação.

Depois que as atribuições de política são implantadas, o painel de conformidade mostra os resultados da avaliação. Observe que isso pode levar até 30 minutos após a implantação de uma atribuição de política. Além disso, as verificações de avaliação de política podem ser iniciadas sob demanda imediatamente após a criação de atribuições de política.

A captura de tela mostra os seguintes resultados de avaliação de conformidade para as contas do Azure Cosmos DB que estão no escopo:

  • Nenhuma das duas contas está em conformidade com uma política que requer a configuração da filtragem de rede virtual (VNet).
  • Nenhuma das duas contas está em conformidade com uma política que requer que a conta seja configurada para vários locais de gravação
  • Nenhuma das duas contas está em conformidade com uma política que tenha definido a implantação dos recursos em regiões permitidas do Azure.

Resultados de conformidade para as atribuições do Azure Policy listadas

Para corrigir os recursos que estão fora de conformidade, consulte Como corrigir recursos com o Azure Policy.

Próximas etapas