Utilize Azure Policy para implementar a governação e os controlos dos recursos DB da Azure Cosmos

APLICA-SE A: NoSQL MongoDB Cassandra Rio Gremlin Tabela

Azure Policy ajuda a impor normas de governança organizacional, avaliar o cumprimento dos recursos e implementar a remediação automática. Os casos de uso comum incluem segurança, gestão de custos e consistência de configuração.

Azure Policy fornece definições políticas incorporadas. Pode criar definições de políticas personalizadas para cenários que não sejam abordados pelas definições políticas incorporadas. Consulte a documentação Azure Policy para mais detalhes.

Importante

Azure Policy é aplicada ao nível do fornecedor de recursos para os serviços da Azure. A Azure Cosmos DB SDKs pode realizar a maioria das operações de gestão em bases de dados, contentores e recursos de produção que contornam o fornecedor de recursos da Azure Cosmos DB, ignorando assim quaisquer políticas criadas com Azure Policy. Para garantir a aplicação das políticas ver, Prevenção de alterações dos DB SDKs Azure Cosmos

Atribuir uma definição de política incorporada

As definições de política descrevem as condições de conformidade dos recursos e o efeito que ocorre se a condição for cumprida. As atribuições políticas são criadas a partir de definições políticas. Você pode usar definições de política incorporadas ou personalizadas para os seus recursos DB Azure Cosmos. As atribuições de política são scopedas a um grupo de gestão Azure, a uma subscrição do Azure ou a um grupo de recursos e são aplicadas aos recursos dentro do âmbito selecionado. Opcionalmente, pode excluir recursos específicos do âmbito de aplicação.

Pode criar atribuições de política com o modelo portal do Azure, Azure PowerShell, Azure CLI ou ARM.

Para criar uma atribuição de política a partir de uma definição de política incorporada para Azure Cosmos DB, use os passos para criar uma atribuição política com o artigo portal do Azure.

Na etapa para selecionar uma definição de política, insira Azure Cosmos DB no campo Procurar para filtrar a lista de definições de política incorporadas disponíveis. Selecione uma das definições de política incorporadas disponíveis e, em seguida, escolha Selecione para continuar a criar a atribuição de políticas.

Dica

Também pode utilizar os nomes de definição de política incorporados indicados no painel definições disponíveis com Azure PowerShell, Azure CLI ou ARM para criar atribuições de políticas.

Pesquisa rumo às definições de políticas incorporadas da Azure Cosmos DB

Criar uma definição de política personalizada

Para cenários específicos que não são abordados por políticas incorporadas, pode criar uma definição de política personalizada. Mais tarde, cria uma atribuição de Política a partir da definição de política personalizada.

Tipos de propriedade e pseudónimos de propriedade nas regras políticas

Use as etapas de definição de política personalizada para identificar as propriedades dos recursos e os pseudónimos de propriedade, que são necessários para criar regras de política.

Para identificar pseudónimos de propriedade específica Azure Cosmos DB, utilize o espaço Microsoft.DocumentDB de nome com um dos métodos mostrados no artigo de definição de política personalizada.

Utilize o Azure CLI:

# 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"

Utilizar Azure PowerShell:

# 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

Estes comandos derão a lista de nomes de pseudónimos de propriedade para a propriedade DB Azure Cosmos. Segue-se um excerto 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 destes nomes de pseudónimos de propriedade nas regras de definição de política personalizada.

Segue-se uma definição de política de exemplo que verifica se uma conta DB Azure Cosmos está configurada para vários locais de escrita. A definição de política personalizada inclui duas regras: uma para verificar o tipo específico de pseudónimo de propriedade, e a segunda para a propriedade específica do tipo, neste caso o campo que armazena a configuração de localização de escrita múltipla. Ambas as regras usam os nomes do pseudónimo.

"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 personalizada podem ser usadas para criar atribuições políticas, tal como as definições de política incorporada são utilizadas.

Conformidade com a política

Após a criação das atribuições políticas, Azure Policy avalia os recursos no âmbito da atribuição. O cumprimento da política de cada recurso é avaliado. O efeito especificado na política é então aplicado a recursos não conformes.

Pode rever os resultados de conformidade e os detalhes de reparação no portal do Azure ou através dos registos Azure CLI ou Azure Monitor.

A imagem que se segue mostra duas atribuições de política de exemplo.

Uma atribuição baseia-se numa definição de política incorporada, que verifica que os recursos DB do Azure Cosmos são implantados apenas nas regiões de Azure permitidas. A conformidade com os recursos mostra o resultado da avaliação da política (conforme ou não conforme) para recursos em âmbito.

A outra atribuição baseia-se numa definição de política personalizada. Esta atribuição verifica se as contas DB da Azure Cosmos estão configuradas para vários locais de escrita.

Após a implementação das atribuições políticas, o painel de conformidade apresenta os resultados da avaliação. Note que isto pode demorar até 30 minutos após a implementação de uma atribuição de política. Além disso, as análises de avaliação de políticas podem ser iniciadas a pedido imediatamente após a criação de atribuições políticas.

A imagem mostra os seguintes resultados de avaliação de conformidade para contas DB da Azure Cosmos no âmbito:

  • Zero de duas contas estão em conformidade com uma política que Rede Virtual filtragem (VNet) deve ser configurada.
  • Zero de duas contas estão em conformidade com uma política que exige que a conta seja configurada para vários locais de escrita
  • Zero de duas contas estão em conformidade com uma política que os recursos foram implantados para permitir que as regiões de Azure.

Resultados de conformidade para Azure Policy atribuições listadas

Para remediar os recursos não conformes, ver como remediar recursos com Azure Policy.

Passos seguintes