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:

List of roles required to perform restore operation.

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.

  1. Inicie sesión en Azure Portal y vaya a la suscripción. El rol CosmosRestoreOperator está disponible en el nivel de suscripción.

  2. Seleccione Access Control (IAM) .

  3. Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.

  4. 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>

    Screenshot that shows Add role assignment page in Azure portal.

  5. 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
Suscripción /subscriptions/00000000-0000-0000-0000-000000000000
Grupo de recursos /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg
Recurso de cuenta restaurable de CosmosDB /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

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 de RestorableDatabaseAccount se extrae de la propiedad ID del resultado de la ejecución de az cosmosdb restorable-database-account list (si usa la CLI) o Get-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/23587e98-b6ac-4328-a753-03bcd3c8e744"
  ],
  "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