Utilizar Azure Policy para implementar governação e controlos para recursos do Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Azure Policy ajuda a impor normas de governação organizacional, avaliar a conformidade de recursos e implementar a remediação automática. Os casos de utilização comuns incluem segurança, gestão de custos e consistência de configuração.

Azure Policy fornece definições de política incorporadas. Pode criar definições de política personalizada para cenários que não são abordados pelas definições de política incorporadas. Veja a documentação do Azure Policy para obter mais detalhes.

Importante

Azure Policy é imposta ao nível do fornecedor de recursos dos serviços do Azure. Os SDKs do Azure Cosmos DB podem realizar a maioria das operações de gestão em recursos de base de dados, contentores e débito que ignoram o fornecedor de recursos do Azure Cosmos DB, ignorando assim todas as políticas criadas com Azure Policy. Para garantir a imposição de políticas, veja Impedir 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 dos recursos e o efeito que ocorre se a condição for cumprida. As atribuições de políticas são criadas a partir de definições de política. Pode utilizar definições de política incorporadas ou personalizadas para os seus recursos do Azure Cosmos DB. As atribuições de políticas estão confinadas a um grupo de gestão do Azure, a uma subscrição do Azure ou a um grupo de recursos e são aplicadas aos recursos no âmbito selecionado. Opcionalmente, pode excluir recursos específicos do âmbito.

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

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

No passo para selecionar uma definição de política, introduza Azure Cosmos DB no campo Procurar para filtrar a lista de definições de política incorporada disponíveis. Selecione uma das definições de política incorporadas disponíveis e, em seguida, selecione Selecionar para continuar a criar a atribuição de política.

Dica

Também pode utilizar os nomes de definição de políticas incorporados apresentados no painel Definições Disponíveis com Azure PowerShell, a CLI do Azure ou os modelos do ARM para criar atribuições de políticas.

Procurar definições de política incorporadas do 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, irá criar uma atribuição de Política a partir da definição de política personalizada.

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

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

Para identificar aliases de propriedade específicos do Azure Cosmos DB, utilize o espaço de nomes Microsoft.DocumentDB com um dos métodos apresentados no artigo de passos de definição de política personalizada.

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

Utilize 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 produzem a lista de nomes de alias de propriedade para a propriedade do Azure Cosmos DB. 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",
  "..."
]

Pode utilizar qualquer um destes nomes de alias 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 do Azure Cosmos DB está configurada para várias localizações de escrita. A definição de política personalizada inclui duas regras: uma para verificar o tipo específico de alias de propriedade e a segunda para a propriedade específica do tipo, neste caso o campo que armazena a definição de localização de escrita múltipla. Ambas as regras utilizam 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 utilizadas para criar atribuições de políticas, tal como as definições de política incorporadas são utilizadas.

Conformidade com a política

Após a criação das atribuições de políticas, Azure Policy avalia os recursos no âmbito da atribuição. A conformidade de cada recurso com a política é avaliada. Em seguida, o efeito especificado na política é aplicado a recursos não conformes.

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

A captura de ecrã seguinte mostra duas atribuições de política de exemplo.

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

A outra atribuição baseia-se numa definição de política personalizada. Esta atribuição verifica se as contas do Azure Cosmos DB estão configuradas para várias localizações de escrita.

Após a implementação das atribuições de política, o dashboard de conformidade mostra os resultados da avaliação. Tenha em atenção que esta ação 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 de políticas.

A captura de ecrã mostra os seguintes resultados de avaliação de compatibilidade para contas do Azure Cosmos DB no âmbito:

  • Zero de duas contas estão em conformidade com uma política que Rede Virtual filtragem (VNet) tem de ser configurada.
  • Zero de duas contas estão em conformidade com uma política que requer que a conta seja configurada para várias localizações de escrita
  • Zero de duas contas estão em conformidade com uma política que os recursos foram implementados em regiões do Azure permitidas.

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

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

Passos seguintes