Gestire le autorizzazioni per ripristinare un account Azure Cosmos DB
Articolo
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.
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.
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.
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:
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/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>
Scrivere query efficienti, creare criteri di indicizzazione, gestire e effettuare il provisioning delle risorse nell'API SQL e nell'SDK con Microsoft Azure Cosmos DB.
Ripristinare un contenitore o un database eliminato nello stesso account Azure Cosmos DB esistente usando il portale di Azure, l'interfaccia della riga di comando di Azure, Azure PowerShell o un modello di Azure Resource Manager in modalità di backup continuo.
Azure Cosmos DB supporta attualmente una migrazione unidirezionale dalla modalità periodica alla modalità continua ed è irreversibile. Dopo la migrazione dalla modalità periodica alla modalità continua, è possibile applicare i vantaggi della modalità continua.
Informazioni su come effettuare il provisioning di un account con backup continuo e ripristino temporizzato usando il portale di Azure, PowerShell, l'interfaccia della riga di comando e i modelli di Resource Manager.
Informazioni su come identificare l'ora di ripristino e ripristinare un account Azure Cosmos DB attivo o eliminato. Illustra come usare il feed di eventi per identificare l'ora di ripristino e ripristinare l'account usando il portale di Azure, PowerShell, l'interfaccia della riga di comando o un modello di Azure Resource Manager.
Informazioni su come ottenere il timestamp ripristinabile più recente per gli account abilitati con la modalità di backup continuo. Illustra come ottenere il tempo ripristinabile più recente per i contenitori SQL e le raccolte MongoDB usando Azure PowerShell e l'interfaccia della riga di comando di Azure.
Aggiornare la ridondanza dell'archiviazione di backup usando l'interfaccia della riga di comando di Azure o Azure PowerShell e applicare una ridondanza minima dell'archiviazione usando Criteri di Azure.