Управление разрешениями для восстановления учетной записи Azure Cosmos DB
Область применения: Nosql Mongodb Гремлин Таблица
Azure Cosmos DB позволяет изолировать и ограничить разрешения на восстановление для учетной записи непрерывного резервного копирования определенной ролью или субъектом. Эти разрешения могут применяться для области действия подписки или более точно в области исходной учетной записи, как показано на следующем изображении:
Область — это набор ресурсов с доступом. Дополнительные сведения об областях см. в документации по Azure RBAC. В Azure Cosmos DB применимые области для большинства вариантов использования — это исходная подписка и учетная запись базы данных. Субъект, выполняющий действия по восстановлению, должен иметь разрешения на запись в целевую группу ресурсов.
Восстановление удаленной базы данных на портале Azure
Для выполнения восстановления пользователю или участнику требуется разрешение на восстановление (то есть разрешение восстановление/действие) и разрешение на предоставление новой учетной записи (разрешение на запись). Чтобы предоставить эти разрешения, владелец подписки может назначить CosmosRestoreOperator
Cosmos DB Operator
и встроенные роли субъекту.
Войдите в портал Azure и перейдите к подписке. Роль
CosmosRestoreOperator
доступна на уровне подписки.Выберите Управление доступом (IAM) .
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
Параметр Значение Роль CosmosRestoreOperator Назначить доступ для Пользователь, группа или субъект-служба Участники <Имя (на ваш выбор)> Повторите шаг 4 с ролью оператора Cosmos DB, чтобы предоставить разрешение на запись. При назначении этой роли из портала Azure она получает разрешение на восстановление всей подписки.
Области действия разрешений
Область | Пример |
---|---|
Отток подписок | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeee4e4e4e4e4e4e4e4e |
Группа ресурсов | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeee4e4e4e4e/resourceGroups/Example-cosmosdb-rg |
Ресурс восстановленной учетной записи CosmosDB | /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeee4e4e4e4e/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/aaaa0a0a-bb1b-cc2c-dd3d-ee4e4e4e4e4e |
Ресурс восстановленной учетной записи можно извлечь из выходных данных команды 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/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"
}
Затем используйте следующую команду развертывания шаблона, чтобы создать роль с разрешением на восстановление с помощью шаблона ARM:
az role definition create --role-definition <JSON_Role_Definition_Path>
Следующие шаги
- Подготовка непрерывного резервного копирования с помощью портал Azure, PowerShell, CLI или Azure Resource Manager.
- Получите последнюю метку времени с поддержкой восстановления для учетных записей SQL и MongoDB.
- Восстановите учетную запись с помощью портал Azure, PowerShell, CLI или Azure Resource Manager.
- Переход на учетную запись с периодического резервного копирования на непрерывное.
- Модель ресурсов режима непрерывного резервного копирования