Proteja os recursos do Azure Cosmos DB com bloqueios
APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela
Como administrador, talvez seja necessário bloquear uma conta, banco de dados ou contêiner do Azure Cosmos DB. Os bloqueios impedem que outros usuários em sua organização excluam ou modifiquem acidentalmente recursos críticos. Pode definir o nível de bloqueio como CanNotDelete
ou ReadOnly
.
Level | Description |
---|---|
CanNotDelete |
Os usuários autorizados ainda podem ler e modificar um recurso, mas não podem excluí-lo. |
ReadOnly |
Os usuários autorizados podem ler um recurso, mas não podem excluí-lo ou atualizá-lo. A aplicação desse bloqueio é semelhante a restringir todos os usuários autorizados às permissões concedidas pela função Leitor . |
Pré-requisitos
- Uma conta existente do Azure Cosmos DB.
- Se você tiver uma assinatura do Azure, crie uma nova conta.
- Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- Como alternativa, você pode experimentar o Azure Cosmos DB gratuitamente antes de confirmar.
Como os bloqueios são aplicados
Quando você aplica um bloqueio em um escopo pai, todos os recursos dentro desse escopo herdam o mesmo bloqueio. Mesmo os recursos que você adicionar posteriormente herdam o bloqueio do pai. O bloqueio mais restritivo na herança tem precedência.
Ao contrário do controle de acesso baseado em função do Azure, você usa bloqueios de gerenciamento para aplicar uma restrição em todos os usuários e funções.
Os bloqueios do Resource Manager aplicam-se apenas a operações que ocorrem no painel de gestão, o que consiste em operações enviadas para https://management.azure.com
. Os bloqueios não restringem a forma como os recursos desempenham as suas próprias funções. As alterações dos recursos são restritas, mas as operações dos recursos não são restritas. Por exemplo, um bloqueio ReadOnly em um contêiner do Azure Cosmos DB impede que você exclua ou modifique o contêiner. Isso não impede que você crie, atualize ou exclua dados no contêiner. As transações de dados são permitidas porque essas operações não são enviadas para https://management.azure.com
.
Gerenciar bloqueios
Os bloqueios de recursos não funcionam para alterações feitas por usuários que acessam o Azure Cosmos DB usando chaves de conta, a menos que a conta do Azure Cosmos DB seja bloqueada pela primeira vez habilitando a disableKeyBasedMetadataWriteAccess
propriedade. Certifique-se de que essa propriedade não interrompa aplicativos existentes que fazem alterações em recursos usando qualquer SDK, portal do Azure ou ferramentas de terceiros. A ativação dessa propriedade interrompe os aplicativos que se conectam por meio de chaves de conta para modificar recursos. Essas modificações podem incluir a alteração da taxa de transferência, a atualização de políticas de índice, etc.
$RESOURCE_GROUP_NAME = "<resource-group>"
$ACCOUNT_NAME = "<account-name>"
$LOCK_NAME = "$ACCOUNT_NAME-lock"
Primeiro, atualize a conta para evitar alterações por qualquer coisa que se conecte por meio de chaves de conta.
$parameters = @{
Name = $ACCOUNT_NAME
ResourceGroupName = $RESOURCE_GROUP_NAME
DisableKeyBasedMetadataWriteAccess = true
}
Update-AzCosmosDBAccount @parameters
Crie um Bloqueio de Exclusão em um recurso de conta do Azure Cosmos DB e todos os recursos filho.
$parameters = @{
ResourceGroupName = $RESOURCE_GROUP_NAME
ResourceName = $ACCOUNT_NAME
LockName = $LOCK_NAME
ApiVersion = "2020-04-01"
ResourceType = "Microsoft.DocumentDB/databaseAccounts"
LockLevel = "CanNotDelete"
}
New-AzResourceLock @parameters
Template
Ao aplicar um bloqueio a um recurso do Azure Cosmos DB, use o Microsoft.Authorization/locks
recurso Azure Resource Manager (ARM).
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2017-04-01",
"name": "cosmoslock",
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
],
"properties": {
"level": "CanNotDelete",
"notes": "Do not delete Azure Cosmos DB account."
},
"scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
}
Exemplos
Gerenciar bloqueios de recursos para o Azure Cosmos DB:
- API para espaço de chave Cassandra e tabela Azure CLI | Azure PowerShell
- API para banco de dados Gremlin e gráfico Azure CLI | Azure PowerShell
- API para banco de dados e coleção MongoDB Azure CLI| Azure PowerShell
- API para banco de dados NoSQL e contêiner Azure CLI | Azure PowerShell
- API para tabela Tabela Azure CLI | Azure PowerShell