Partilhar via


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:

Lista de funções necessárias para executar a operação de restauração.

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.

  1. Entre no portal do Azure e navegue até sua assinatura. A CosmosRestoreOperator função está disponível no nível de assinatura.

  2. Selecione Controlo de acesso (IAM) .

  3. Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.

  4. 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>

    Captura de ecrã que mostra a página Adicionar atribuição de função no portal do Azure.

  5. 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 o RestorableDatabaseAccount é extraído da ID propriedade de resultado da execução de az cosmosdb restorable-database-account list(se estiver usando CLI) ou Get-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