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:
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.
Accedere al portale di Azure e passare alla sottoscrizione. Il ruolo
CosmosRestoreOperator
è disponibile a livello di sottoscrizione.Seleziona Controllo di accesso (IAM).
Selezionare Aggiungi>Aggiungi assegnazione di ruolo per aprire la pagina Aggiungi assegnazione di ruolo.
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> 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e |
Gruppo di risorse | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeee4e4e4e/resourceGroups/Example-cosmosdb-rg |
Risorsa account ripristinabile CosmosDB | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e4e4e |
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 diRestorableDatabaseAccount
viene estratto dalla proprietàID
del risultato dell'esecuzione diaz cosmosdb restorable-database-account list
(se si usa l'interfaccia della riga di comando) oGet-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/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"
}
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
- Effettuare il provisioning del backup continuo usando il portale di Azure, PowerShell, l'interfaccia della riga di comando o Azure Resource Manager.
- Ottenere il timestamp ripristinabile più recente gli account SQL e MongoDB.
- Ripristinare un account usando il portale di Azure, PowerShell, l'interfaccia della riga di comando o Azure Resource Manager.
- Eseguire la migrazione di un account dal backup periodico al backup continuo.
- Modello di risorsa della modalità di backup continuo