Administración de permisos para restaurar una cuenta de Azure Cosmos DB
SE APLICA A: NoSQL MongoDB Gremlin Table
Azure Cosmos DB permite aislar y restringir los permisos de restauración de una cuenta de copia de seguridad continua a un rol o una entidad de seguridad concretos. Estos permisos se pueden aplicar en el ámbito de la suscripción o de forma más pormenorizada en el ámbito de la cuenta de origen, como se muestra en la siguiente imagen:
El ámbito es un conjunto de recursos con acceso; para obtener más información sobre los ámbitos, vea la documentación de RBAC de Azure. En Azure Cosmos DB, los ámbitos aplicables son la suscripción de origen y la cuenta de base de datos en la mayoría de los casos de uso. La entidad de seguridad que realiza las acciones de restauración debe tener permisos de escritura en el grupo de recursos de destino.
Asignación de roles para restaurar mediante Azure Portal
Para realizar una restauración, un usuario o una entidad de seguridad necesita el permiso para restaurar (es decir, permiso restore/action) y el permiso para aprovisionar una nueva cuenta (es decir, permiso write). Para conceder estos permisos, el propietario de la suscripción puede asignar los roles integrados CosmosRestoreOperator
y Cosmos DB Operator
a una entidad de seguridad.
Inicie sesión en Azure Portal y vaya a la suscripción. El rol
CosmosRestoreOperator
está disponible en el nivel de suscripción.Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Role CosmosRestoreOperator Asignar acceso a Usuario, grupo o entidad de servicio Miembros <Usuario de su elección> Repita el paso 4 con el rol Operador de Cosmos DB para conceder el permiso de escritura. Al asignar este rol desde Azure Portal, se concede el permiso de restauración a toda la suscripción.
Ámbitos de permiso
Ámbito | Ejemplo |
---|---|
Subscription | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Resource group | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/Example-cosmosdb-rg |
Recurso de cuenta restaurable de CosmosDB | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
El recurso de cuenta restaurable se puede extraer de la salida del comando az cosmosdb restorable-database-account list --account-name <accountname>
de la CLI o el cmdlet Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname>
de PowerShell. El atributo name de la salida representa al elemento instanceID
de la cuenta restaurable.
Permisos en la cuenta de origen
Los siguientes permisos son necesarios para realizar las distintas actividades relativas a la restauración de cuentas en modo de copia de seguridad continua:
Nota:
Los permisos se pueden asignar a una cuenta de base de datos restaurable en el ámbito de la cuenta o en el ámbito de la suscripción. No se admite la asignación de permisos en el ámbito del grupo de recursos.
Permiso | Impacto | Ámbito mínimo | Ámbito máximo |
---|---|---|---|
Microsoft.Resources/deployments/validate/action , Microsoft.Resources/deployments/write |
Estos permisos son necesarios para que la implementación de la plantilla de ARM cree la cuenta restaurada. Vea el permiso de ejemplo RestorableAction siguiente para aprender a establecer este rol. | No aplicable | No aplicable |
Microsoft.DocumentDB/databaseAccounts/write |
Este permiso es necesario para restaurar una cuenta en un grupo de recursos. | Grupo de recursos en el que se crea la cuenta restaurada. | Suscripción en la que se crea la cuenta restaurada. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action No puede elegir el grupo de recursos como ámbito de permiso. |
Este permiso es necesario en el ámbito de la cuenta de base de datos restaurable de origen para permitir la realización de acciones de restauración en él. | Recurso RestorableDatabaseAccount perteneciente a la cuenta de origen que se va a restaurar. Este valor también lo proporciona la propiedad ID del recurso de cuenta de base de datos restaurable. Un ejemplo de cuenta restaurable es /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>. |
Suscripción que contiene la cuenta de base de datos restaurable. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read No puede elegir el grupo de recursos como ámbito de permiso. |
Este permiso es necesario en el ámbito de la cuenta de base de datos restaurable de origen para indicar las cuentas de base de datos que se pueden restaurar. | Recurso RestorableDatabaseAccount perteneciente a la cuenta de origen que se va a restaurar. Este valor también lo proporciona la propiedad ID del recurso de cuenta de base de datos restaurable. Un ejemplo de cuenta restaurable es /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>. |
Suscripción que contiene la cuenta de base de datos restaurable. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read No puede elegir el grupo de recursos como ámbito de permiso. |
Este permiso es necesario en el ámbito de la cuenta restaurable de origen para permitir la lectura de recursos restaurables, como listas de bases de datos y contenedores de una cuenta restaurable. | Recurso RestorableDatabaseAccount perteneciente a la cuenta de origen que se va a restaurar. Este valor también lo proporciona la propiedad ID del recurso de cuenta de base de datos restaurable. Un ejemplo de cuenta restaurable es /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>. |
Suscripción que contiene la cuenta de base de datos restaurable. |
Permisos en la cuenta de destino
Los siguientes permisos son necesarios para realizar las distintas actividades relativas a la restauración de cuentas en modo de copia de seguridad continua:
Permiso | Impacto |
---|---|
Microsoft.Resources/deployments/validate/action , Microsoft.Resources/deployments/write |
Estos permisos son necesarios para que la implementación de la plantilla de ARM cree la cuenta restaurada. Vea el permiso de ejemplo RestorableAction siguiente para aprender a establecer este rol. |
Microsoft.DocumentDB/databaseAccounts/write |
Este permiso es necesario para restaurar una cuenta en un grupo de recursos. |
Escenarios de asignación de roles de la CLI de Azure para restaurar en ámbitos diferentes
Los roles con permiso se pueden asignar a distintos ámbitos para lograr un control pormenorizado sobre quién puede realizar la operación de restauración en una suscripción o una cuenta determinada.
Asignación de la capacidad de restaurar desde cualquier cuenta restaurable de una suscripción
- Asignar el rol integrado
CosmosRestoreOperator
al nivel de suscripción específico
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>
Asignación de la capacidad de restaurar desde una cuenta determinada
- Asigne una acción de escritura de usuario en el grupo de recursos específico. Esta acción es necesaria para crear una cuenta nueva en el grupo de recursos.
- Asigne el rol integrado
CosmosRestoreOperator
a la cuenta de base de datos restaurable específica que debe restaurarse. En el siguiente comando, el ámbito deRestorableDatabaseAccount
se extrae de la propiedadID
del resultado de la ejecución deaz cosmosdb restorable-database-account list
(si usa la CLI) oGet-AzCosmosDBRestorableDatabaseAccount
(si usa PowerShell).
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope <RestorableDatabaseAccount>
Asignación de la capacidad de restaurar desde cualquier cuenta de origen de un grupo de recursos
Esta operación no se admite actualmente.
Creación de roles personalizados para la acción de restauración con la CLI
El propietario de la suscripción puede proporcionar el permiso para restaurar a cualquier otra identidad de Microsoft Entra. El permiso de restauración se basa en la acción: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
, y debe incluirse en el permiso de restauración. Hay un rol integrado denominado CosmosRestoreOperator que tiene este rol incluido. Puede asignar el permiso mediante este rol integrado o crear uno personalizado.
El elemento RestorableAction siguiente representa un rol personalizado. Este rol debe crearse de manera explícita. La siguiente plantilla JSON crea un rol personalizado RestorableAction con permiso de restauración:
{
"assignableScopes": [
"/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
],
"description": "Can do a restore request for any Azure Cosmos DB database account with continuous backup",
"permissions": [
{
"actions": [
"Microsoft.Resources/deployments/validate/action",
"Microsoft.DocumentDB/databaseAccounts/write",
"Microsoft.Resources/deployments/write",
"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read",
"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"Name": "RestorableAction",
"roleType": "CustomRole"
}
Luego, use el siguiente comando de implementación de plantillas para crear un rol con permiso de restauración mediante la plantilla de ARM:
az role definition create --role-definition <JSON_Role_Definition_Path>
Pasos siguientes
- Aprovisione la copia de seguridad continua mediante Azure Portal, PowerShell, la CLI o Azure Resource Manager.
- Obtenga la marca de tiempo restaurable más reciente para cuentas de SQL y MongoDB.
- Restaure una cuenta mediante Azure Portal, PowerShell, la CLI o Azure Resource Manager.
- Realice la migración a una cuenta desde una copia de seguridad periódica a una copia de seguridad continua.
- Modelo de recursos del modo de copia de seguridad continua