Руководство: добавление условия назначения роли для ограничения доступа к BLOB-объектам с помощью портала Azure
В большинстве случаев назначение ролей предоставляет необходимые разрешения ресурсам Azure. Однако в некоторых случаях может потребоваться обеспечить более детализированный контроль доступа, добавив условие назначения роли.
В этом руководстве описано следующее:
- Добавление условия для назначения роли
- Ограничение доступа к BLOB-объектам на основе тега индекса большого двоичного объекта
Внимание
Управление доступом на основе атрибутов Azure (Azure ABAC) общедоступен для управления доступом к Хранилище BLOB-объектов Azure, Azure Data Lake Storage 2-го поколения и очередям Azure с помощью request
, resource
environment
а principal
также атрибутов в уровнях производительности учетной записи хранения уровня "Стандартный" и "Премиум". В настоящее время атрибут ресурса метаданных контейнера и большой двоичный объект списка включают атрибут запроса в предварительной версии. Полные сведения о состоянии функции ABAC для служба хранилища Azure см. в разделе "Состояние функций условий" в служба хранилища Azure.
Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.
Необходимые компоненты
Дополнительные сведения о предварительных требованиях для добавления и изменения условий назначения ролей см. в разделе Требования к условиям.
Condition
В этом учебнике описано, как ограничивать доступ к BLOB-объектам с помощью определенного тега. Например, можно добавить условие к назначению роли, чтобы Чандра мог только считывать файлы с тегом Project=Cascade
.
Если Chandra пытается считывать большой двоичный объект без тега Project=Cascade
, доступ не допускается.
Вот как выглядит условие в коде:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
AND NOT
SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
)
)
Шаг 1. Создание пользователя
Войдите на портал Azure в качестве владельца подписки.
Выберите Microsoft Entra ID.
Создайте нового или найдите имеющегося пользователя. В этом учебнике в качестве примера используется сотрудник с именем Чандра.
Шаг 2. Настройка хранилища
Создайте учетную запись хранения, совместимую с функцией тегов индекса BLOB-объектов. Дополнительные сведения см. в статье Управление данными BLOB-объектов Azure и их поиск с помощью тегов индекса BLOB-объектов.
Создайте контейнер в учетной записи хранения и задайте для анонимного уровня доступа значение Private (без анонимного доступа).
В контейнере выберите "Отправить", чтобы открыть панель "Отправить BLOB-объект".
Найдите текстовый файл для отправки.
Выберите "Дополнительно" , чтобы развернуть область.
В разделе Blob index tags (Теги индекса BLOB-объектов) добавьте следующий тег индекса BLOB-объекта в текстовый файл.
Если раздел Blob index tags (Теги индекса BLOB-объектов) не отображается, а подписка только что зарегистрирована, возможно, потребуется подождать несколько минут для распространения изменений. Дополнительные сведения см. в статье Использование тегов индекса BLOB-объектов для поиска данных и управления ими в Хранилище BLOB-объектов Azure.
Примечание.
BLOB-объекты также поддерживают возможность хранения произвольных метаданных "ключ-значение", определяемых пользователем. Несмотря на то что метаданные похожи на теги индекса BLOB-объектов, необходимо использовать теги индекса BLOB-объектов с условиями.
Ключ Значение Project Cascade
Нажмите кнопку "Отправить", чтобы отправить файл.
Отправьте второй текстовый файл.
Добавьте следующий тег индекса BLOB-объекта во второй текстовый файл.
Ключ Значение Project Baker
Шаг 3. Назначение роли данных BLOB-объекта хранилища
Откройте группу ресурсов.
Выберите Управление доступом (IAM) .
Откройте вкладку Назначения ролей, чтобы просмотреть назначения ролей в этой области.
Выберите Добавить>Добавить назначение ролей. Откроется страница добавления назначения ролей:
- На вкладке Роли выберите роль Модуль чтения данных BLOB-объектов хранилища.
- На вкладке Члены выберите ранее созданного пользователя.
(Необязательно.) В поле Описание введите Доступ на чтение к BLOB-объектам с тегом Project=Cascade.
Выберите Далее.
Шаг 4. Добавление условия
- На вкладке "Условия" (необязательно) выберите "Добавить условие". Откроется страница "Добавить условие назначения ролей":
В разделе "Добавление действия" выберите "Добавить действие".
Отобразится область "Выберите действие". Эта область представляет собой отфильтрованный список действий с данными на основе назначения роли, который будет целевым объектом условия. Установите флажок рядом с чтением большого двоичного объекта, а затем нажмите кнопку "Выбрать":
В разделе "Выражение сборки" выберите "Добавить выражение".
Развернется раздел "Выражение".
Укажите следующие параметры выражения:
Параметр Значение Источник атрибута Ресурс Атрибут Теги индекса BLOB-объектов [значения в ключе] Ключ Project Оператор StringEqualsIgnoreCase Значение Cascade
Прокрутите до типа редактора и выберите "Код".
Условие отобразится в виде кода. В этом редакторе кода можно внести в условие изменения. Чтобы вернуться к визуальному редактору, выберите Visual.
Нажмите кнопку "Сохранить", чтобы добавить условие и вернуться на страницу "Добавить назначение ролей".
Выберите Далее.
На вкладке "Рецензирование и назначение" выберите "Рецензирование" и " Назначить роль" условием.
Через несколько секунд субъекту безопасности будет назначена роль в выбранной области.
Шаг 5. Назначение роли читателя
Повторите предыдущие шаги, чтобы назначить роль читателя пользователю, созданному ранее в области группы ресурсов.
Примечание.
Обычно не требуется назначать роль читателя. Однако это делается, чтобы можно было проверить условие с помощью портала Azure.
Шаг 6. Проверка условия
В новом окне войдите на портал Azure.
Войдите как пользователь, созданный ранее.
Откройте созданную учетную запись хранения и контейнер.
Убедитесь, что для метода проверки подлинности задана учетная запись пользователя Microsoft Entra, а не ключ доступа.
Выберите текстовый файл Бейкера.
Вы не сможете просматривать или скачивать BLOB-объект, поэтому должно отобразиться сообщение о сбое авторизации.
Выберите каскадный текстовый файл.
Вы сможете просматривать и скачивать BLOB-объект.
Шаг 7. Очистка ресурсов
Удалите добавленное назначения роли.
Удалите созданную тестовую учетную запись хранения.
Удалите пользователя, которого вы создали.