Gérer les autorisations de restauration d’un compte Azure Cosmos DB

S’APPLIQUE À : NoSQL MongoDB Gremlin Table

Azure Cosmos DB vous permet d’isoler et de restreindre les autorisations de restauration pour le compte de sauvegarde continue à un rôle ou à un principal spécifique. Ces autorisations peuvent être appliquées au niveau de l’étendue de l’abonnement ou plus précisément au niveau de l’étendue du compte source, comme illustré dans l’image suivante :

List of roles required to perform restore operation.

L’étendue est un ensemble de ressources ayant accès. Pour en savoir plus sur les étendues, consultez la documentation d’Azure RBAC. Dans Azure Cosmos DB, les étendues applicables sont l’abonnement source et le compte de base de données pour la plupart des cas d’usage. Le principal effectuant les actions de restauration doit disposer d’autorisations en écriture sur le groupe de ressources de destination.

Attribuer des rôles pour la restauration à l’aide du portail Azure

Pour effectuer une restauration, un utilisateur ou un principal doit avoir l’autorisation de restaurer (qui est l’autorisation restore/action) et l’autorisation de provisionner un nouveau compte (qui est l’autorisation write). Pour accorder ces autorisations, le propriétaire de l’abonnement peut attribuer les rôles intégrés CosmosRestoreOperator et Cosmos DB Operator à un principal.

  1. Connectez-vous au portail Azure et accédez à votre abonnement. Le rôle CosmosRestoreOperator est disponible au niveau de l’abonnement.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.

  4. Attribuez le rôle suivant. Pour connaître les étapes détaillées, consultez Attribuer des rôles Azure à l’aide du portail Azure.

    Paramètre Valeur
    Role CosmosRestoreOperator
    Attribuer l’accès à Utilisateur, groupe ou principal de service
    Membres <Utilisateur de votre choix>

    Screenshot that shows Add role assignment page in Azure portal.

  5. Répétez l’étape 4 avec le rôle Opérateur Cosmos DB pour accorder l’autorisation en écriture. Lorsque vous attribuez ce rôle à partir du portail Azure, il accorde l’autorisation de restauration à l’intégralité de l’abonnement.

Étendues d’autorisation

Étendue Exemple
Abonnement /subscriptions/00000000-0000-0000-0000-000000000000
Resource group /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg
Ressource de compte restaurable CosmosDB /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

La ressource de compte restaurable peut être extraite de la sortie de la commande az cosmosdb restorable-database-account list --account-name <accountname> dans l’interface CLI ou de la cmdlet Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> dans PowerShell. L’attribut « name » dans la sortie représente l’instanceID du compte restaurable.

Autorisations sur le compte source

Les autorisations suivantes sont requises pour effectuer les différentes activités relatives à la restauration des comptes en mode de sauvegarde continue :

Notes

L’autorisation peut être affectée à un compte de base de données pouvant être restauré au niveau de l’étendue du compte ou de l’abonnement. L’attribution d’autorisations au niveau de l’étendue du groupe de ressources n’est pas prise en charge.

Autorisation Impact Étendue minimale Étendue maximale
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Ces autorisations sont requises pour le déploiement du modèle ARM afin de créer le compte restauré. Consultez l’exemple d’autorisation RestorableAction ci-dessous pour savoir comment définir ce rôle. Non applicable Non applicable
Microsoft.DocumentDB/databaseAccounts/write Cette autorisation est requise pour restaurer un compte dans un groupe de ressources. Groupe de ressources sous lequel le compte restauré est créé. Abonnement sous lequel le compte restauré est créé.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
Vous ne pouvez pas choisir le groupe de ressources comme étendue d’autorisation.
Cette autorisation est requise sur l’étendue du compte de base de données restaurable source pour permettre l’exécution d’actions de restauration sur celle-ci. Ressource RestorableDatabaseAccount appartenant au compte source en cours de restauration. Cette valeur est également fournie par la propriété ID de la ressource de compte de base de données restaurable. Un exemple de compte pouvant être restauré est /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>. Abonnement contenant le compte de base de données restaurable.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
Vous ne pouvez pas choisir le groupe de ressources comme étendue d’autorisation.
Cette autorisation est requise sur l’étendue du compte de base de données restaurable source pour répertorier les comptes de base de données qui peuvent être restaurés. Ressource RestorableDatabaseAccount appartenant au compte source en cours de restauration. Cette valeur est également fournie par la propriété ID de la ressource de compte de base de données restaurable. Un exemple de compte pouvant être restauré est /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>. Abonnement contenant le compte de base de données restaurable.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
Vous ne pouvez pas choisir le groupe de ressources comme étendue d’autorisation.
Cette autorisation est requise sur l’étendue du compte restaurable source pour permettre la lecture des ressources restaurables telles que la liste des bases de données et des conteneurs pour un compte restaurable. Ressource RestorableDatabaseAccount appartenant au compte source en cours de restauration. Cette valeur est également fournie par la propriété ID de la ressource de compte de base de données restaurable. Un exemple de compte pouvant être restauré est /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid>. Abonnement contenant le compte de base de données restaurable.

Autorisations sur le compte de destination

Les autorisations suivantes sont requises pour effectuer les différentes activités relatives à la restauration des comptes en mode de sauvegarde continue :

Autorisation Impact
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Ces autorisations sont requises pour le déploiement du modèle ARM afin de créer le compte restauré. Consultez l’exemple d’autorisation RestorableAction ci-dessous pour savoir comment définir ce rôle.
Microsoft.DocumentDB/databaseAccounts/write Cette autorisation est requise pour restaurer un compte dans un groupe de ressources.

Scénarios d’attribution de rôle Azure CLI pour restaurer dans différentes étendues

Les rôles avec autorisation peuvent être attribués à différentes étendues afin d’obtenir un contrôle granulaire sur les personnes autorisées à effectuer l’opération de restauration au sein d’un abonnement ou d’un compte donné.

Attribuer la capacité de restauration à partir d’un compte restaurable dans un abonnement

  • Affecter le rôle intégré CosmosRestoreOperator au niveau spécifique de l’abonnement
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Attribuer la capacité de restauration à partir d’un compte spécifique

  • Attribuez une action d’écriture utilisateur sur le groupe de ressources spécifique. Cette action est nécessaire pour créer un nouveau compte dans le groupe de ressources.
  • Attribuez le rôle intégré CosmosRestoreOperator au compte de base de données restaurable spécifique qui doit être restauré. Dans la commande suivante, l’étendue du RestorableDatabaseAccount est extraite de la ID propriété de résultat de l’exécution de az cosmosdb restorable-database-account list(si vous utilisez l’interface CLI) ou Get-AzCosmosDBRestorableDatabaseAccount(si vous utilisez PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

Attribuer la capacité de restauration à partir d’un compte source dans un groupe de ressources

Cette opération n’est pas prise en charge actuellement.

Création d’un rôle personnalisé pour l’action de restauration à l’aide de l’interface CLI

Le propriétaire de l’abonnement peut fournir l’autorisation de restauration à n’importe quelle autre identité Microsoft Entra. L’autorisation de restauration est basée sur l’action Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action et doit être incluse dans son autorisation de restauration. Un rôle intégré appelé CosmosRestoreOperator est inclus dans ce rôle. Vous pouvez soit attribuer l’autorisation à l’aide de ce rôle intégré, soit créer un rôle personnalisé.

RestorableAction ci-dessous représente un rôle personnalisé. Vous devez créer explicitement ce rôle. Le modèle JSON suivant crée un rôle personnalisé RestorableAction avec autorisation de restauration :

{
  "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"
}

Utilisez ensuite la commande de déploiement de modèle suivante pour créer un rôle avec autorisation de restauration à l’aide du modèle ARM :

az role definition create --role-definition <JSON_Role_Definition_Path>

Étapes suivantes