Gestire le autorizzazioni per ripristinare un account Azure Cosmos DB

SI APPLICA A: NoSQL MongoDB Gremlin Tabella

Azure Cosmos DB consente di isolare e limitare le autorizzazioni di ripristino per un account di backup continuo a un ruolo o a un'entità di sicurezza specifica. Queste autorizzazioni possono essere applicate a livello dell'ambito della sottoscrizione o in modo più granulare a livello dell'ambito dell'account di origine, come illustrato nell'immagine seguente:

List of roles required to perform restore operation.

L'ambito è un set di risorse che hanno accesso. Per altre informazioni sugli ambiti, vedere la documentazione per il Controllo degli accessi in base al ruolo di Azure. In Azure Cosmos DB gli ambiti applicabili sono la sottoscrizione di origine e l'account del database per la maggior parte dei casi d'uso. L'entità di sicurezza che esegue le azioni di ripristino deve disporre delle autorizzazioni di scrittura per il gruppo di risorse di destinazione.

Assegnare i ruoli per il ripristino usando il portale di Azure

Per eseguire un ripristino, un utente o un'entità di sicurezza deve disporre dell'autorizzazione per il ripristino (ovvero l'autorizzazione di ripristino/azione) e l'autorizzazione per effettuare il provisioning di un nuovo account (ovvero l'autorizzazione di scrittura). Per concedere queste autorizzazioni, il proprietario della sottoscrizione può assegnare i ruoli predefiniti CosmosRestoreOperator e Cosmos DB Operator a un'entità di sicurezza.

  1. Accedere al portale di Azure e passare alla sottoscrizione. Il ruolo CosmosRestoreOperator è disponibile a livello di sottoscrizione.

  2. Seleziona Controllo di accesso (IAM).

  3. Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire il riquadro Aggiungi assegnazione di ruolo.

  4. Assegnare il ruolo seguente. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

    Impostazione Valore
    Ruolo CosmosRestoreOperator
    Assegna accesso a Utente, gruppo o entità servizio
    Membri <Utente desiderato>

    Screenshot that shows Add role assignment page in Azure portal.

  5. Ripetere il passaggio 4 con il ruolo di Operatore di Cosmos DB per concedere l'autorizzazione di scrittura. Quando si assegna questo ruolo dal portale di Azure, l'autorizzazione di ripristino viene concessa all'intera sottoscrizione.

Ambiti di autorizzazione

Ambito Esempio
Abbonamento /subscriptions/00000000-0000-0000-0000-000000000000
Gruppo di risorse /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg
Risorsa account ripristinabile CosmosDB /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

La risorsa account ripristinabile può essere estratta dall'output del comando az cosmosdb restorable-database-account list --account-name <accountname> nell'interfaccia della riga di comando o del cmdlet Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> in PowerShell. L'attributo name nell'output rappresenta l'instanceID dell'account ripristinabile.

Autorizzazioni per l'account di origine

Per eseguire le diverse attività relative al ripristino per gli account in modalità di backup continuo sono necessarie le autorizzazioni seguenti:

Nota

L'autorizzazione può essere assegnata all'account di database ripristinabile a livello dell'ambito dell'account o della sottoscrizione. L'assegnazione di autorizzazioni a livello dell'ambito del gruppo di risorse non è supportata.

Autorizzazione Impatto Ambito minimo Ambito massimo
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Queste autorizzazioni sono necessarie per la distribuzione del modello di ARM per creare l'account ripristinato. Vedere l'autorizzazione di esempio RestorableAction di seguito per informazioni su come impostare questo ruolo. Non applicabile Non applicabile
Microsoft.DocumentDB/databaseAccounts/write Questa autorizzazione è necessaria per ripristinare un account in un gruppo di risorse Gruppo di risorse in cui viene creato l'account ripristinato. Sottoscrizione in cui viene creato l'account ripristinato
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
Non è possibile scegliere il gruppo di risorse come ambito di autorizzazione.
Questa autorizzazione è necessaria nell'ambito dell'account di database ripristinabile di origine per consentire l'esecuzione di azioni di ripristino. Risorsa RestorableDatabaseAccount appartenente all'account di origine da ripristinare. Questo valore viene fornito anche dalla proprietà ID della risorsa account di database ripristinabile. Un esempio di account ripristinabile è /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Sottoscrizione contenente l'account di database ripristinabile.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
Non è possibile scegliere il gruppo di risorse come ambito di autorizzazione.
Questa autorizzazione è necessaria nell'ambito dell'account di database ripristinabile di origine per elencare gli account di database che possono essere ripristinati. Risorsa RestorableDatabaseAccount appartenente all'account di origine da ripristinare. Questo valore viene fornito anche dalla proprietà ID della risorsa account di database ripristinabile. Un esempio di account ripristinabile è /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Sottoscrizione contenente l'account di database ripristinabile.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
Non è possibile scegliere il gruppo di risorse come ambito di autorizzazione.
Questa autorizzazione è necessaria nell'ambito dell'account ripristinabile di origine per consentire la lettura delle risorse ripristinabili, ad esempio l'elenco di database e contenitori per un account ripristinabile. Risorsa RestorableDatabaseAccount appartenente all'account di origine da ripristinare. Questo valore viene fornito anche dalla proprietà ID della risorsa account di database ripristinabile. Un esempio di account ripristinabile è /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Sottoscrizione contenente l'account di database ripristinabile.

Autorizzazioni per l'account di destinazione

Per eseguire le diverse attività relative al ripristino per gli account in modalità di backup continuo sono necessarie le autorizzazioni seguenti:

Autorizzazione Impatto
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Queste autorizzazioni sono necessarie per la distribuzione del modello di ARM per creare l'account ripristinato. Vedere l'autorizzazione di esempio RestorableAction di seguito per informazioni su come impostare questo ruolo.
Microsoft.DocumentDB/databaseAccounts/write Questa autorizzazione è necessaria per ripristinare un account in un gruppo di risorse

Scenari di assegnazione di ruolo dell'interfaccia della riga di comando di Azure per il ripristino in ambiti diversi

I ruoli con autorizzazione possono essere assegnati ad ambiti diversi per ottenere un controllo granulare su chi può eseguire l'operazione di ripristino all'interno di una sottoscrizione o di un account specifico.

Assegnare la funzionalità di ripristino da qualsiasi account ripristinabile in una sottoscrizione

  • Assegnare il ruolo predefinito CosmosRestoreOperator al livello della sottoscrizione specifica
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Assegnare la funzionalità di ripristino da un account specifico

  • Assegnare un'azione di scrittura dell'utente nel gruppo di risorse specifico. Questa azione è necessaria per creare un nuovo account nel gruppo di risorse.
  • Assegnare il ruolo predefinito CosmosRestoreOperator all'account di database ripristinabile specifico che deve essere ripristinato. Nel comando seguente l'ambito di RestorableDatabaseAccount viene estratto dalla proprietà ID del risultato dell'esecuzione di az cosmosdb restorable-database-account list (se si usa l'interfaccia della riga di comando) o Get-AzCosmosDBRestorableDatabaseAccount (se si usa PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

Assegnare la funzionalità di ripristino da qualsiasi account di origine in un gruppo di risorse.

Questa operazione non è attualmente supportata.

Creazione di ruoli personalizzati per l'azione di ripristino con l'interfaccia della riga di comando

Il proprietario della sottoscrizione può fornire l'autorizzazione per eseguire il ripristino a qualsiasi altra identità di Microsoft Entra. L'autorizzazione di ripristino è basata sull'azione Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action e deve essere inclusa nell'autorizzazione di ripristino. Esiste un ruolo predefinito denominato CosmosRestoreOperator con questo ruolo incluso. È possibile assegnare l'autorizzazione usando questo ruolo predefinito o creare un ruolo personalizzato.

Il ruolo RestorableAction mostrato di seguito rappresenta un ruolo personalizzato. È necessario creare questo ruolo in modo esplicito. Il modello JSON seguente crea un ruolo personalizzato RestorableAction con l'autorizzazione di ripristino:

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

Usare quindi il comando di distribuzione del modello seguente per creare un ruolo con l'autorizzazione di ripristino usando il modello di ARM:

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

Passaggi successivi