Gerenciar permissões para restaurar uma conta do Azure Cosmos DB
APLICA-SE A: NoSQL MongoDB Gremlin Tabela
O Azure Cosmos DB permite isolar e restringir as permissões de restauração para uma conta de backup contínuo para uma função específica ou uma entidade de segurança. Essas permissões podem ser aplicadas no escopo da assinatura ou de forma mais granular no escopo da conta de origem, conforme mostrado na imagem a seguir:
Escopo é um conjunto de recursos que têm acesso, para saber mais sobre escopos, consulte a documentação do RBAC do Azure. No Azure Cosmos DB, os escopos aplicáveis são a assinatura de origem e a conta de banco de dados para a maioria dos casos de uso. A entidade que executa as ações de restauração deve ter permissões de gravação para o grupo de recursos de destino.
Atribuir funções para restauração usando o portal do Azure
Para executar uma restauração, um usuário ou uma entidade de segurança precisa da permissão para restaurar (ou seja , permissão de restauração/ação ) e permissão para provisionar uma nova conta (ou seja , permissão de gravação ). Para conceder essas permissões, o proprietário da assinatura pode atribuir as CosmosRestoreOperator
funções internas a Cosmos DB Operator
uma entidade de segurança.
Entre no portal do Azure e navegue até sua assinatura. A
CosmosRestoreOperator
função está disponível no nível de assinatura.Selecione Controlo de acesso (IAM) .
Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.
Atribua a seguinte função. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.
Definição Value Role CosmosRestoreOperator Atribuir acesso a Usuário, grupo ou entidade de serviço Membros <Utilizador à sua escolha> Repita a etapa 4 com a função Operador do Cosmos DB para conceder a permissão de gravação. Ao atribuir essa função a partir do portal do Azure, ele concede a permissão de restauração para toda a assinatura.
Âmbitos de permissões
Âmbito | Exemplo |
---|---|
Subscrição | /assinaturas/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Grupo de recursos | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e/resourceGroups/Example-cosmosdb-rg |
Recurso de conta restaurável do CosmosDB | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
O recurso de conta restaurável pode ser extraído da saída do az cosmosdb restorable-database-account list --account-name <accountname>
comando na CLI ou Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname>
cmdlet no PowerShell. O atributo name na saída representa o instanceID
da conta restaurável.
Permissões na conta de origem
As seguintes permissões são necessárias para executar as diferentes atividades referentes à restauração para contas de modo de backup contínuo:
Nota
A permissão pode ser atribuída à conta de banco de dados restaurável no escopo da conta ou no escopo da assinatura. Não há suporte para a atribuição de permissões no escopo do grupo de recursos.
Permissão | Impacto | Âmbito mínimo | Âmbito máximo |
---|---|---|---|
Microsoft.Resources/deployments/validate/action , Microsoft.Resources/deployments/write |
Essas permissões são necessárias para a implantação do modelo ARM para criar a conta restaurada. Consulte o exemplo de permissão RestorableAction abaixo para saber como definir essa função. | Não aplicável | Não aplicável |
Microsoft.DocumentDB/databaseAccounts/write |
Essa permissão é necessária para restaurar uma conta em um grupo de recursos | Grupo de recursos sob o qual a conta restaurada é criada. | Subscrição ao abrigo da qual a conta restaurada é criada |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action Não é possível escolher o grupo de recursos como o escopo de permissão. |
Essa permissão é necessária no escopo da conta de banco de dados restaurável de origem para permitir que ações de restauração sejam executadas nela. | O recurso RestorableDatabaseAccount pertencente à conta de origem que está sendo restaurada. Esse valor também é dado pela ID propriedade do recurso de conta de banco de dados restaurável. Um exemplo de conta restaurável é /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> |
A assinatura que contém a conta de banco de dados restaurável. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read Não é possível escolher o grupo de recursos como o escopo de permissão. |
Essa permissão é necessária no escopo da conta de banco de dados restaurável de origem para listar as contas de banco de dados que podem ser restauradas. | O recurso RestorableDatabaseAccount pertencente à conta de origem que está sendo restaurada. Esse valor também é dado pela ID propriedade do recurso de conta de banco de dados restaurável. Um exemplo de conta restaurável é /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> |
A assinatura que contém a conta de banco de dados restaurável. |
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read Não é possível escolher o grupo de recursos como o escopo de permissão. |
Essa permissão é necessária no escopo da conta restaurável de origem para permitir a leitura de recursos restauráveis, como lista de bancos de dados e contêineres para uma conta restaurável. | O recurso RestorableDatabaseAccount pertencente à conta de origem que está sendo restaurada. Esse valor também é dado pela ID propriedade do recurso de conta de banco de dados restaurável. Um exemplo de conta restaurável é /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> |
A assinatura que contém a conta de banco de dados restaurável. |
Permissões na conta de destino
As seguintes permissões são necessárias para executar as diferentes atividades referentes à restauração para contas de modo de backup contínuo:
Permissão | Impacto |
---|---|
Microsoft.Resources/deployments/validate/action , Microsoft.Resources/deployments/write |
Essas permissões são necessárias para a implantação do modelo ARM para criar a conta restaurada. Consulte o exemplo de permissão RestorableAction abaixo para saber como definir essa função. |
Microsoft.DocumentDB/databaseAccounts/write |
Essa permissão é necessária para restaurar uma conta em um grupo de recursos |
Cenários de atribuição de função da CLI do Azure para restaurar em escopos diferentes
Funções com permissão podem ser atribuídas a escopos diferentes para obter controle granular sobre quem pode executar a operação de restauração em uma assinatura ou em uma determinada conta.
Atribuir capacidade de restauração a partir de qualquer conta restaurável numa subscrição
- Atribuir a
CosmosRestoreOperator
função incorporada ao nível de subscrição específico
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>
Atribuir capacidade de restauração a partir de uma conta específica
- Atribua uma ação de gravação do usuário no grupo de recursos específico. Esta ação é necessária para criar uma nova conta no grupo de recursos.
- Atribua a
CosmosRestoreOperator
função interna à conta de banco de dados restaurável específica que precisa ser restaurada. No comando a seguir, o escopo para oRestorableDatabaseAccount
é extraído daID
propriedade de resultado da execução deaz cosmosdb restorable-database-account list
(se estiver usando CLI) ouGet-AzCosmosDBRestorableDatabaseAccount
(se estiver usando o PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope <RestorableDatabaseAccount>
Atribua capacidade de restauração a partir de qualquer conta de origem em um grupo de recursos.
Esta operação não é suportada no momento.
Criação de função personalizada para ação de restauração com CLI
O proprietário da assinatura pode fornecer a permissão para restaurar qualquer outra identidade do Microsoft Entra. A permissão de restauração é baseada na ação: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
, e deve ser incluída na permissão de restauração. Há uma função interna chamada CosmosRestoreOperator que tem essa função incluída. Você pode atribuir a permissão usando essa função interna ou criar uma função personalizada.
O RestorableAction abaixo representa uma função personalizada. Você tem que criar explicitamente essa função. O modelo JSON a seguir cria uma função personalizada RestorableAction com permissão de restauração:
{
"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"
}
Em seguida, use o seguinte comando de implantação de modelo para criar uma função com permissão de restauração usando o modelo ARM:
az role definition create --role-definition <JSON_Role_Definition_Path>
Próximos passos
- Provisione o backup contínuo usando o portal do Azure, PowerShell, CLI ou Azure Resource Manager.
- Obtenha o carimbo de data/hora restaurável mais recente para contas SQL e MongoDB.
- Restaure uma conta usando o portal do Azure, PowerShell, CLI ou Azure Resource Manager.
- Migre para uma conta do backup periódico para o backup contínuo.
- Modelo de recursos do modo de backup contínuo