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


Руководство: Установка условия назначения ролей для ограничения доступа к 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.

Предпосылки

Дополнительные сведения о предварительных требованиях для добавления и изменения условий назначения ролей см. в разделе Требования к условиям.

Состояние

В этом руководстве описано, как ограничить доступ к blob-объектам с определенным тегом. Например, вы добавляете условие в назначение роли, чтобы Chandra могли считывать только файлы с тегом Project=Cascade.

схема назначения ролей с условием.

Если Chandra пытается считывать большой двоичный объект без тега Project=Cascade, доступ не разрешен.

Схема, показывающая доступ для чтения объектов BLOB с тегом 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. Создание пользователя

  1. Войдите на портал Azure в качестве владельца подписки.

  2. Выберите Microsoft Entra ID.

  3. Создайте пользователя или найдите существующего пользователя. В этом руководстве в качестве примера используется Chandra.

Шаг 2. Настройка хранилища

  1. Создайте учетную запись хранения, совместимую с функцией тегов индекса блобов. Дополнительные сведения см. в статье Управление данными BLOB-объектов Azure и их поиск с помощью тегов индекса BLOB-объектов.

  2. Создайте контейнер в учетной записи хранения и задайте для анонимного уровня доступа значение Private (без анонимного доступа).

  3. В контейнере выберите Загрузить, чтобы открыть панель загрузки blob.

  4. Найдите текстовый файл для отправки.

  5. Выберите "Дополнительно" , чтобы развернуть область.

  6. В разделе тегов индекса BLOB-объектов добавьте следующий тег индекса BLOB-объектов в текстовый файл.

    Если вы не видите раздел тегов индекса BLOB-объектов и только что зарегистрировали подписку, возможно, вам понадобится подождать несколько минут, чтобы изменения вступили в силу. Дополнительные сведения см. в статье "Использование тегов индекса BLOB-объектов для управления и поиска данных в хранилище BLOB-объектов Azure".

    Примечание.

    BLOB-объекты также поддерживают возможность хранения произвольных метаданных "ключ-значение", определяемых пользователем. Несмотря на то что метаданные похожи на теги индекса BLOB-объектов, теги индекса BLOB-объектов необходимо использовать с соблюдением условий.

    Ключ Ценность
    Проект Каскад

Снимок экрана, показывающий окно загрузки BLOB-объектов с разделом тегов индексации блога.

  1. Нажмите кнопку "Отправить ", чтобы отправить файл.

  2. Отправьте второй текстовый файл.

  3. Добавьте следующий тег индекса BLOB-объектов во второй текстовый файл.

    Ключ Ценность
    Проект Пекарь

Шаг 3. Назначение роли данных BLOB-объектов хранилища

  1. Откройте группу ресурсов.

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

  3. Откройте вкладку Назначения ролей, чтобы просмотреть назначения ролей в этой области.

  4. Выберите Добавить>Добавить назначение ролей. Откроется страница добавления назначения ролей:

Снимок экрана: меню добавления > назначения ролей.

  1. На вкладке "Роли" выберите роль Storage Blob Data Reader.

Снимок экрана: страница добавления назначения ролей с вкладкой

  1. На вкладке "Участники" выберите пользователя, созданного ранее.

Снимок экрана: страница добавления назначения ролей с вкладкой

  1. (Необязательно) В поле "Описание" введите доступ на чтение к blob-объектам с тегом Project=Cascade.

  2. Выберите Далее.

Шаг 4. Добавление условия

  1. На вкладке "Условия" (необязательно) выберите "Добавить условие". Откроется страница "Добавить условие назначения ролей":

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

  1. В разделе "Добавление действия" выберите "Добавить действие".

    Появляется область "Выберите действие". Эта панель — отфильтрованный список действий с данными на основе назначения роли, на который будет нацелено ваше условие. Установите флажок рядом с Читать блок, а затем выберите Выбрать:

Снимок экрана: выбор области действий с выбранным действием.

  1. В разделе "Секция сборки выражений" выберите Добавить выражение.

    Раздел "Выражение" расширяется.

  2. Укажите следующие параметры выражения:

    Настройки Ценность
    Источник атрибута Ресурс
    Атрибут Теги индекса BLOB [значения в ключе]
    Ключ Проект
    Оператор StringEqualsIgnoreCase
    Ценность Каскад

Снимок экрана: раздел

  1. Прокрутите до типа редактора и выберите "Код".

    Условие отображается как код. Вы можете внести изменения в условие в этом редакторе кода. Чтобы вернуться к визуальному редактору, выберите Visual.

Снимок экрана: условие, отображаемое в редакторе кода.

  1. Нажмите кнопку "Сохранить", чтобы добавить условие и вернуться на страницу "Добавить назначение ролей".

  2. Выберите Далее.

  3. На вкладке "Обзор + назначение" выберите Обзор + назначение, чтобы назначить роль с условием.

    Спустя короткое время участнику системы безопасности назначается роль в выбранной области.

Снимок экрана: список назначений ролей после назначения роли.

Шаг 5. Назначение роли читателя

  • Повторите предыдущие действия, чтобы назначить роль читателя пользователю, созданному ранее в области группы ресурсов.

    Примечание.

    Обычно не требуется назначать роль читателя. Однако это сделано, чтобы проверить условие с помощью портала Azure.

Шаг 6. Проверка условия

  1. В новом окне войдите на портал Azure.

  2. Войдите как пользователь, созданный ранее.

  3. Откройте созданную учетную запись хранения и контейнер.

  4. Убедитесь, что для метода проверки подлинности задана учетная запись пользователя Microsoft Entra , а не ключ доступа.

Снимок экрана: контейнер хранилища с тестовыми файлами.

  1. Выберите текстовый файл Бейкера.

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

  2. Выберите каскадный текстовый файл.

    Вы должны иметь возможность просматривать и скачивать блоб.

Шаг 7. Очистка ресурсов

  1. Удалите добавленное назначение роли.

  2. Удалите созданную тестовую учетную запись хранения.

  3. Удалите созданного пользователя.

Дальнейшие действия