Azure CosmosDB: можно ли установить RBAC для базы данных / коллекции
С учетом экземпляра базы данных Azure CosmosDB, созданного на портале Azure, можно создать несколько баз данных из подключения оболочки с помощью следующих команд:
use someNewDbName;
db.someNewCollectionName.insert({});
С другими поставщиками БД, которые предоставляют API MongoDB, можно настраивать роли пользователей либо на уровне базы данных, либо на уровне группы (для пользователей, которые существуют в одном и том же экземпляре БД).
Например, с самодостаточным MongoDB, db.createUser()
позволяет roles
параметр, который принимает db
вариант. MongoDB Atlas позволяет выполнять аналогичные операции через их пользовательский интерфейс.
Можно ли сделать то же самое с CosmosDB? На портале Azure выберите CosmosDB, а затем Access control (IAM)
а потом Roles
приводит список встроенных ролей, а также текст, в котором говорится, что можно определить свои собственные роли, но нет указаний на то, как это сделать.
2 ответа
Я также пытался создать пользователей и роли для Azure CosmosDB с помощью интерфейса MongoDB и следовал этой документации: https://docs.microsoft.com/en-GB/azure/cosmos-db/secure-access-to-data?tabs= с использованием первичного ключа .
Однако похоже, что это просто не поддерживается интерфейсом MongoDB. Я следил за приведенной выше документацией, используя подход к управлению доступом на основе ролей, и в конечном итоге столкнулся со следующей проблемой при выполнении следующей команды:
az cosmosdb sql role definition create --account-name <some-account> --resource-group <some-resource-group> --body @role-definition.json
(BadRequest) У учетной записи базы данных [<some-database>] тип API [MongoDB] недопустим для обработки определений ролей SQL.
Вышеупомянутая также подтвержденная документация по подходу на основе токенов (ресурсов): https://docs.microsoft.com/en-us/rest/api/cosmos-db/permissions (см. Первую строку):
Azure Cosmos DB - это глобально распределенная многомодельная база данных, которая поддерживает модели данных документа, графика и ключа-значения. Содержимое этого раздела предназначено для управления ресурсами разрешений с помощью SQL API через REST.
Надеюсь, это поможет.
Я могу создать пользовательскую роль с помощью следующего метода с помощью Powershell. Эта роль была показана в списке доступных ролей на вкладке "Добавить назначение роли".
Эти ссылки могут помочь вам
https://docs.microsoft.com/en-us/azure/role-based-access-control/tutorial-custom-role-powershell
https://docs.microsoft.com/en-us/azure/role-based-access-control/custom-roles