Protección de recursos de Azure Cosmos DB con bloqueos
SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table
Como administrador, puede ser que tengas que bloquear una cuenta, base de datos o contenedor de Azure Cosmos DB. Los bloqueos impiden que otros usuarios de la organización eliminen o modifiquen accidentalmente los recursos críticos. Puede establecer el nivel de bloqueo en CanNotDelete
o ReadOnly
.
Nivel | Descripción |
---|---|
CanNotDelete |
Los usuarios autorizados pueden leer y modificar recursos, pero no eliminarlos. |
ReadOnly |
Los usuarios autorizados solo pueden leer recursos, pero no actualizarlos ni eliminarlos. Aplicar este bloqueo es similar a restringir todos los usuarios autorizados a los permisos concedidos por el rol Lector. |
Requisitos previos
- Una cuenta existente de Azure Cosmos DB.
- Si tiene una suscripción de Azure, cree una nueva cuenta.
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Como alternativa, puede probar Azure Cosmos DB gratis antes de confirmarlo.
Cómo se aplican los bloqueos
Cuando se aplica un bloqueo en un ámbito primario, todos los recursos heredan el mismo bloqueo. Incluso los recursos que agregue posteriormente heredan el bloqueo del elemento primario. El bloqueo más restrictivo de toda la herencia tiene prioridad.
A diferencia del control de acceso basado en rol de Azure, los bloqueos de administración se usan para aplicar una restricción a todos los usuarios y roles.
Los bloqueos de Resource Manager solo se aplican a las operaciones que se producen en el plano de administración, que se compone de las operaciones enviadas a https://management.azure.com
. Los bloqueos no restringen cómo los recursos realizan sus propias funciones. Los cambios de recursos están restringidos, pero las operaciones de recursos no lo están. Por ejemplo, un bloqueo ReadOnly en un contenedor de Azure Cosmos DB impide que lo elimine o modifique. Pero no le impide crear, actualizar o eliminar datos de este. Se permiten las transacciones de datos porque esas operaciones no se envían a https://management.azure.com
.
Administración de bloqueos
Los bloqueos de recursos no funcionan para los cambios que realizan los usuarios que acceden a Azure Cosmos DB mediante claves de cuenta, a menos que la cuenta de Azure Cosmos DB se bloquee por primera vez habilitando la propiedad disableKeyBasedMetadataWriteAccess
. Asegúrese de que esta propiedad no interrumpa las aplicaciones existentes que realicen cambios en los recursos mediante ningún SDK, Azure Portal o herramientas de terceros. Al habilitar esta propiedad, se interrumpirán las aplicaciones que se conecten a través de claves de cuenta para modificar los recursos. Estas modificaciones pueden incluir el cambio de rendimiento, la actualización de directivas de índice, etc.
$RESOURCE_GROUP_NAME = "<resource-group>"
$ACCOUNT_NAME = "<account-name>"
$LOCK_NAME = "$ACCOUNT_NAME-lock"
En primer lugar, actualice la cuenta para evitar cambios por cualquier cosa que se conecte a través de claves de cuenta.
$parameters = @{
Name = $ACCOUNT_NAME
ResourceGroupName = $RESOURCE_GROUP_NAME
DisableKeyBasedMetadataWriteAccess = true
}
Update-AzCosmosDBAccount @parameters
Cree una eliminación de bloqueo en un recurso de cuenta de Azure Cosmos DB y todos los recursos secundarios.
$parameters = @{
ResourceGroupName = $RESOURCE_GROUP_NAME
ResourceName = $ACCOUNT_NAME
LockName = $LOCK_NAME
ApiVersion = "2020-04-01"
ResourceType = "Microsoft.DocumentDB/databaseAccounts"
LockLevel = "CanNotDelete"
}
New-AzResourceLock @parameters
Plantilla
Al aplicar un bloqueo a un recurso de Azure Cosmos DB, use el recurso Microsoft.Authorization/locks
de 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'))]"
}
Ejemplos
Administración de bloqueos de recursos para Azure Cosmos DB:
- Espacio de claves y tabla de API para Cassandra CLI de Azure | Azure PowerShell
- Base de datos y grafo de API para Gremlin CLI de Azure | Azure PowerShell
- Base de datos y colección de API para MongoDB CLI de Azure| Azure PowerShell
- Base de datos y contenedor de API para NoSQL CLI de Azure | Azure PowerShell
- Tabla de API para Table CLI de Azure | Azure PowerShell