Поделиться через


Управление разрешениями для восстановления учетной записи Azure Cosmos DB

Область применения: Nosql Mongodb Гремлин Таблица

Azure Cosmos DB позволяет изолировать и ограничить разрешения на восстановление для учетной записи непрерывного резервного копирования определенной ролью или субъектом. Эти разрешения могут применяться для области действия подписки или более точно в области исходной учетной записи, как показано на следующем изображении:

Список ролей, необходимых для выполнения операции восстановления.

Область — это набор ресурсов с доступом. Дополнительные сведения об областях см. в документации по Azure RBAC. В Azure Cosmos DB применимые области для большинства вариантов использования — это исходная подписка и учетная запись базы данных. Субъект, выполняющий действия по восстановлению, должен иметь разрешения на запись в целевую группу ресурсов.

Восстановление удаленной базы данных на портале Azure

Для выполнения восстановления пользователю или участнику требуется разрешение на восстановление (то есть разрешение восстановление/действие) и разрешение на предоставление новой учетной записи (разрешение на запись). Чтобы предоставить эти разрешения, владелец подписки может назначить CosmosRestoreOperator Cosmos DB Operator и встроенные роли субъекту.

  1. Войдите в портал Azure и перейдите к подписке. Роль CosmosRestoreOperator доступна на уровне подписки.

  2. Выберите Управление доступом (IAM) .

  3. Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.

  4. Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.

    Параметр Значение
    Роль CosmosRestoreOperator
    Назначить доступ для Пользователь, группа или субъект-служба
    Участники <Имя (на ваш выбор)>

    Снимок экрана: страница

  5. Повторите шаг 4 с ролью оператора Cosmos DB, чтобы предоставить разрешение на запись. При назначении этой роли из портала Azure она получает разрешение на восстановление всей подписки.

Области действия разрешений

Область Пример
Отток подписок /subscriptions/00000000-0000-0000-0000-000000000000
Группа ресурсов /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-cosmosdb-rg
Ресурс восстановленной учетной записи CosmosDB /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995

Ресурс восстановленной учетной записи можно извлечь из выходных данных команды az cosmosdb restorable-database-account list --account-name <accountname> в CLI или командлета Get-AzCosmosDBRestorableDatabaseAccount -DatabaseAccountName <accountname> в PowerShell. Атрибут "Имя" в выходных данных представляет instanceID для восстановленной учетной записи.

Разрешения для исходной учетной записи

Для выполнения различных действий, относящихся к восстановлению учетных записей режима непрерывной архивации, требуются следующие разрешения.

Примечание.

Разрешение можно назначить учетной записи базы данных с поддержкой восстановления в области действия учетной записи или подписки. Назначение разрешений в области группы ресурсов не поддерживается.

Разрешение Воздействие Минимальная область Максимальная область
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Эти разрешения необходимы для развертывания шаблона ARM и создания восстановленной учетной записи. Описание того, как задать эту роль, см. в примере разрешения RestorableAction. Неприменимо Неприменимо
Microsoft.DocumentDB/databaseAccounts/write Это разрешение требуется для восстановления учетной записи в группе ресурсов. Группа ресурсов, в которой создана восстановленная учетная запись. Подписка, в которой создана восстановленная учетная запись
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action
Вы не можете выбрать группу ресурсов в качестве области разрешений.
Это разрешение необходимо для области восстановленной исходной учетной записи базы данных, чтобы разрешить выполнение действий по восстановлению. Ресурс RestorableDatabaseAccount принадлежит к восстановленной исходной учетной записи. Это значение также задается свойством ID ресурса восстановленной учетной записи базы данных. Примером восстановленной учетной записи является /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Подписка, содержащая восстановленную учетную запись базы данных.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read
Вы не можете выбрать группу ресурсов в качестве области разрешений.
Это разрешение необходимо для области восстановленной исходной учетной записи базы данных, чтобы получить список учетных записей базы данных, которые можно восстановить. Ресурс RestorableDatabaseAccount принадлежит к восстановленной исходной учетной записи. Это значение также задается свойством ID ресурса восстановленной учетной записи базы данных. Примером восстановленной учетной записи является /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Подписка, содержащая восстановленную учетную запись базы данных.
Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read
Вы не можете выбрать группу ресурсов в качестве области разрешений.
Это разрешение необходимо для области исходной восстанавливаемой учетной записи restorable, чтобы разрешить чтение восстанавливаемых ресурсов, таких как список баз данных и контейнеров для учетной записи. Ресурс RestorableDatabaseAccount принадлежит к восстановленной исходной учетной записи. Это значение также задается свойством ID ресурса восстановленной учетной записи базы данных. Примером восстановленной учетной записи является /subscriptions/subscriptionId/providers/Microsoft.DocumentDB/locations/regionName/restorableDatabaseAccounts/<guid-instanceid> Подписка, содержащая восстановленную учетную запись базы данных.

Разрешения для целевой учетной записи

Для выполнения различных действий, относящихся к восстановлению учетных записей режима непрерывной архивации, требуются следующие разрешения.

Разрешение Воздействие
Microsoft.Resources/deployments/validate/action, Microsoft.Resources/deployments/write Эти разрешения необходимы для развертывания шаблона ARM и создания восстановленной учетной записи. Описание того, как задать эту роль, см. в примере разрешения RestorableAction.
Microsoft.DocumentDB/databaseAccounts/write Это разрешение требуется для восстановления учетной записи в группе ресурсов.

Сценарии Azure CLI назначения ролей для восстановления в разных областях

Роли с разрешением можно назначить для разных областей, чтобы обеспечить детальный контроль над тем, кто может выполнять операции восстановления в рамках подписки или указанной учетной записи.

Назначение возможности восстановления из любой восстановленной учетной записи в подписке

  • Назначение встроенной CosmosRestoreOperator роли определенному уровню подписки
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope /subscriptions/<subscriptionId>

Назначение возможности для восстановления из определенной учетной записи

  • Назначение действия записи пользователя для определенной группы ресурсов. Это действие необходимо для создания новой учетной записи в группе ресурсов.
  • Назначьте встроенную CosmosRestoreOperator роль определенной учетной записи базы данных, которую необходимо восстановить. В следующей команде область для объекта RestorableDatabaseAccount извлекается из ID свойства результата выполнения az cosmosdb restorable-database-account list(если используется CLI) или Get-AzCosmosDBRestorableDatabaseAccount(если используется PowerShell)
az role assignment create --role "CosmosRestoreOperator" --assignee <email> --scope  <RestorableDatabaseAccount>

Назначьте возможность восстановления из любой исходной учетной записи в группе ресурсов.

В настоящее время операция не поддерживается.

Создание настраиваемой роли для восстановления с помощью интерфейса командной строки

Владелец подписки может предоставить разрешение на восстановление любого другого удостоверения Microsoft Entra. Разрешение на восстановление основано на действии: Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action и должно быть включено в разрешение на восстановление. Существует встроенная роль с именем CosmosRestoreOperator, которая включает эту роль. Можно либо назначить разрешение с помощью этой встроенной роли, либо создать настраиваемую роль.

Приведенный ниже параметр RestorableAction представляет настраиваемую роль. Вам необходимо прямо создать эту роль. Следующий шаблон JSON создает пользовательскую роль RestorableAction с разрешением на восстановление:

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

Затем используйте следующую команду развертывания шаблона, чтобы создать роль с разрешением на восстановление с помощью шаблона ARM:

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

Следующие шаги