Machtigingen beheren om een Azure Cosmos DB-account te herstellen

VAN TOEPASSING OP: Nosql MongoDB Gremlin Tabel

Met Azure Cosmos DB kunt u de herstelmachtigingen voor een doorlopend back-upaccount isoleren en beperken tot een specifieke rol of principal. Deze machtigingen kunnen worden toegepast op het abonnementsbereik of gedetailleerder op het bereik van het bronaccount, zoals wordt weergegeven in de volgende afbeelding:

List of roles required to perform restore operation.

Bereik is een set resources die toegang hebben, voor meer informatie over bereiken, raadpleeg de Documentatie van Azure RBAC . In Azure Cosmos DB zijn toepasselijke bereiken het bronabonnement en het databaseaccount voor de meeste gebruiksscenario's. De principal die de herstelacties uitvoert, moet schrijfmachtigingen hebben voor de doelresourcegroep.

Rollen toewijzen voor herstel met behulp van Azure Portal

Als u een herstelbewerking wilt uitvoeren, heeft een gebruiker of een principal de machtiging nodig om te herstellen (dat is de machtiging voor herstellen/actie) en de machtiging voor het inrichten van een nieuw account (dat een schrijfmachtiging is). Als u deze machtigingen wilt verlenen, kan de eigenaar van het abonnement de CosmosRestoreOperator en Cosmos DB Operator ingebouwde rollen toewijzen aan een principal.

  1. Meld u aan bij Azure Portal en navigeer naar uw abonnement. De CosmosRestoreOperator rol is beschikbaar op abonnementsniveau.

  2. Klik op Toegangsbeheer (IAM) .

  3. Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  4. Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

    Instelling Waarde
    - Rol CosmosRestoreOperator
    Toegang toewijzen aan Gebruiker, groep of service-principal
    Leden <Gebruiker van uw keuze>

    Screenshot that shows Add role assignment page in Azure portal.

  5. Herhaal stap 4 met de rol Cosmos DB-operator om de schrijfmachtiging te verlenen. Wanneer u deze rol toewijst vanuit Azure Portal, verleent deze de herstelmachtiging aan het hele abonnement.

Machtigingsbereik

Bereik voorbeeld
Abonnement /subscriptions/00000000-0000-0000-0000-0000000000000
Resourcegroep /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/Example-cosmosdb-rg
CosmosDB-accountresource die kan worden overgeslagen /subscriptions/00000000-0000-0000-0000000000000/providers/Microsoft.DocumentDB/locations/US - west/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

De restorable accountresource kan worden geëxtraheerd uit de uitvoer van de az cosmosdb restorable-database-account list --account-name <accountname> opdracht in CLI of Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> cmdlet in PowerShell. Het naamkenmerk in de uitvoer vertegenwoordigt het instanceID van het restorable account.

Machtigingen voor het bronaccount

De volgende machtigingen zijn vereist om de verschillende activiteiten uit te voeren die betrekking hebben op het herstellen voor accounts in de continue back-upmodus:

Notitie

De machtiging kan worden toegewezen aan een restorable databaseaccount op accountbereik of abonnementsbereik. Het toewijzen van machtigingen voor het bereik van de resourcegroep wordt niet ondersteund.

Machtiging Impact Minimumbereik Maximumbereik
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Deze machtigingen zijn vereist voor de implementatie van de ARM-sjabloon om het herstelde account te maken. Zie de voorbeeldmachtiging RestorableAction hieronder voor het instellen van deze rol. Niet van toepassing Niet van toepassing
Microsoft.DocumentDB/databaseAccounts/write Deze machtiging is vereist om een account te herstellen in een resourcegroep Resourcegroep waaronder het herstelde account wordt gemaakt. Abonnement waaronder het herstelde account wordt gemaakt
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
U kunt geen resourcegroep kiezen als machtigingsbereik.
Deze machtiging is vereist voor het bereik van het bronherstelbare databaseaccount, zodat er herstelacties op kunnen worden uitgevoerd. De RestorableDatabaseAccount-resource die hoort bij het bronaccount dat wordt hersteld. Deze waarde wordt ook gegeven door de ID eigenschap van de restorable databaseaccountresource. Een voorbeeld van een restorable account is /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Het abonnement met het restorable databaseaccount.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
U kunt geen resourcegroep kiezen als machtigingsbereik.
Deze machtiging is vereist voor het bereik van het bronherstelbare databaseaccount om de databaseaccounts weer te geven die kunnen worden hersteld. De RestorableDatabaseAccount-resource die hoort bij het bronaccount dat wordt hersteld. Deze waarde wordt ook gegeven door de ID eigenschap van de restorable databaseaccountresource. Een voorbeeld van een restorable account is /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Het abonnement met het restorable databaseaccount.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
U kunt geen resourcegroep kiezen als machtigingsbereik.
Deze machtiging is vereist voor het bereik van het bronreorable account om leesbare resources toe te staan, zoals een lijst met databases en containers voor een restoreerbaar account. De RestorableDatabaseAccount-resource die hoort bij het bronaccount dat wordt hersteld. Deze waarde wordt ook gegeven door de ID eigenschap van de restorable databaseaccountresource. Een voorbeeld van een restorable account is /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Het abonnement met het restorable databaseaccount.

Machtigingen voor het doelaccount

De volgende machtigingen zijn vereist om de verschillende activiteiten uit te voeren die betrekking hebben op het herstellen voor accounts in de continue back-upmodus:

Machtiging Impact
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Deze machtigingen zijn vereist voor de implementatie van de ARM-sjabloon om het herstelde account te maken. Zie de voorbeeldmachtiging RestorableAction hieronder voor het instellen van deze rol.
Microsoft.DocumentDB/databaseAccounts/write Deze machtiging is vereist om een account te herstellen in een resourcegroep

Scenario's voor Azure CLI-roltoewijzing om te herstellen in verschillende bereiken

Rollen met machtigingen kunnen worden toegewezen aan verschillende bereiken om gedetailleerde controle te bereiken over wie de herstelbewerking binnen een abonnement of een bepaald account kan uitvoeren.

Mogelijkheid toewijzen om te herstellen vanuit een herstelbaar account in een abonnement

  • CosmosRestoreOperator De ingebouwde rol toewijzen aan het specifieke abonnementsniveau
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Mogelijkheid toewijzen om te herstellen vanuit een specifiek account

  • Wijs een schrijfactie van een gebruiker toe aan de specifieke resourcegroep. Deze actie is vereist om een nieuw account in de resourcegroep te maken.
  • Wijs de CosmosRestoreOperator ingebouwde rol toe aan het specifieke herstelbare databaseaccount dat moet worden hersteld. In de volgende opdracht wordt het bereik voor de RestorableDatabaseAccount opdracht geëxtraheerd uit de eigenschap van het ID resultaat van de uitvoering van az cosmosdb restorable-database-account list(als u CLI gebruikt) of Get-AzCosmosDBRestorableDatabaseAccount(als u de PowerShell gebruikt)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

Wijs de mogelijkheid toe om te herstellen vanuit een bronaccount in een resourcegroep.

Deze bewerking wordt momenteel niet ondersteund.

Aangepaste rol maken voor herstelactie met CLI

De eigenaar van het abonnement kan de machtiging verlenen om te herstellen naar een andere Microsoft Entra-identiteit. De herstelmachtiging is gebaseerd op de actie: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/actionen deze moet worden opgenomen in de herstelmachtiging. Er is een ingebouwde rol met de naam CosmosRestoreOperator die deze rol bevat. U kunt de machtiging toewijzen met behulp van deze ingebouwde rol of een aangepaste rol maken.

De onderstaande RestorableAction vertegenwoordigt een aangepaste rol. U moet deze rol expliciet maken. Met de volgende JSON-sjabloon maakt u een aangepaste rol RestorableAction met een herstelmachtiging:

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

Gebruik vervolgens de volgende sjabloonimplementatieopdracht om een rol te maken met een herstelmachtiging met behulp van een ARM-sjabloon:

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

Volgende stappen