Gerenciar as permissões para restaurar uma conta do Azure Cosmos DB

APLICA-SE AO: NoSQL MongoDB Gremlin Table

O Azure Cosmos DB permite isolar e restringir as permissões de restauração para a conta de backup contínuo a uma função específica ou a uma entidade de segurança. Essas permissões podem ser aplicadas no escopo da assinatura ou, de maneira mais granular, no escopo da conta de origem, conforme mostrado na seguinte imagem:

List of roles required to perform restore operation.

Escopo é um conjunto de recursos que têm acesso. Para saber mais sobre escopos, confira 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 de segurança que executa as ações de restauração deve ter permissões de gravação sobre o grupo de recursos de destino.

Atribuir funções para restaurar usando o portal do Azure

Para executar uma restauração, o usuário ou a entidade de segurança precisa de permissão para restaurar (ou seja, permissão de restauração/ação) e 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 funções integradas CosmosRestoreOperator e Cosmos DB Operator a uma entidade de segurança.

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

  2. Selecione IAM (Controle de acesso) .

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

  4. Atribua a função a seguir. Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

    Configuração Valor
    Função CosmosRestoreOperator
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Membros <Usuário de sua escolha>

    Screenshot that shows Add role assignment page in Azure portal.

  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 do portal do Azure, ela concede a permissão de restauração para toda a assinatura.

Escopos de permissão

Escopo Exemplo
Subscription /subscriptions/00000000-0000-0000-0000-000000000000
Resource group /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg
Recurso de conta restaurável do CosmosDB /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

O recurso de conta restaurável pode ser extraído da saída do comando az cosmosdb restorable-database-account list --account-name <accountname> na CLI ou do cmdlet Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> no PowerShell. O atributo Nome, 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 no modo de backup contínuo:

Observação

A permissão pode ser atribuída à conta de banco de dados restaurável no escopo da conta ou no escopo da assinatura. A atribuição de permissões no escopo do grupo de recursos não é compatível.

Permissão Impacto Escopo mínimo Escopo máximo
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Essas permissões são necessárias para a implantação do modelo do ARM a fim de criar a conta restaurada. Confira a permissão de exemplo 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. Assinatura sob a qual a conta restaurada é criada
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
Você não pode escolher o grupo de recursos como o escopo de permissão.
Essa permissão é necessária no escopo da conta restaurável do banco de dados de origem a fim de permitir que as ações de restauração sejam executadas nela. O recurso RestorableDatabaseAccount pertence à conta de origem que está sendo restaurada. Esse valor também é fornecido pela propriedade ID do recurso da conta restaurável do banco de dados. Um exemplo de conta restaurável é /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> A assinatura que contém a conta restaurável do banco de dados.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
Você não pode escolher o grupo de recursos como o escopo de permissão.
Essa permissão é necessária no escopo da conta restaurável do banco de dados de origem para listar as contas do banco de dados que podem ser restauradas. O recurso RestorableDatabaseAccount pertence à conta de origem que está sendo restaurada. Esse valor também é fornecido pela propriedade ID do recurso da conta restaurável do banco de dados. Um exemplo de conta restaurável é /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> A assinatura que contém a conta restaurável do banco de dados.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
Você não pode 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 a lista de bancos de dados e contêineres para uma conta restaurável. O recurso RestorableDatabaseAccount pertence à conta de origem que está sendo restaurada. Esse valor também é fornecido pela propriedade ID do recurso da conta restaurável do banco de dados. Um exemplo de conta restaurável é /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> A assinatura que contém a conta restaurável do banco de dados.

Permissões na conta de destino

As seguintes permissões são necessárias para executar as diferentes atividades referentes à restauração para contas no 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 do ARM a fim de criar a conta restaurada. Confira a permissão de exemplo 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 diferentes escopos

Funções com permissão podem ser atribuídas a diferentes escopos para obter um controle granular sobre quem pode executar a operação de restauração em uma assinatura ou em determinada conta.

Atribuir a capacidade de restauração com base em qualquer conta restaurável em uma assinatura

  • Atribuir a função integrada CosmosRestoreOperator ao nível de assinatura específico
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Atribuir a capacidade de restaurar com base em uma conta específica

  • Atribua uma ação de gravação do usuário no grupo de recursos específico. Essa ação é obrigatória para criar uma conta no grupo de recursos.
  • Atribua a CosmosRestoreOperator função integrada à conta de banco de dados restaurável específica que precisa ser restaurada. No seguinte comando, o escopo para RestorableDatabaseAccount é extraído da propriedade ID do resultado da execução de az cosmosdb restorable-database-account list(se estiver usando a CLI) ou Get-AzCosmosDBRestorableDatabaseAccount(se estiver usando o PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

Atribua a capacidade de restaurar com base em qualquer conta de origem em um grupo de recursos.

Essa operação não tem suporte no momento.

Criação de função personalizada para ação de restauração com a CLI

O proprietário da assinatura pode fornecer a permissão para restaurar em qualquer outra identidade do Microsoft Entra. A permissão de restauração baseia-se na ação Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action e deve ser incluída na permissão de restauração dela. 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.

A RestorableAction, abaixo, representa uma função personalizada. Você precisa criar essa função explicitamente. O seguinte modelo JSON cria uma função personalizada RestorableAction com permissão de restauração:

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

Depois, use o seguinte comando de implantação de modelo para criar uma função com a permissão de restauração usando o modelo do ARM:

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

Próximas etapas