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

Другие вопросы по тегам