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


Выбор способа авторизации доступа к данным BLOB-объектов с помощью Azure CLI

Служба хранилища Azure предоставляет расширения для Azure CLI, которые позволяют указать способ авторизации операций с данными BLOB-объектов. Вы можете авторизовать операции с данными следующими способами:

  • С учетной записью безопасности Microsoft Entra. Корпорация Майкрософт рекомендует использовать учетные данные Microsoft Entra для обеспечения повышенной безопасности и удобства использования.
  • С помощью ключа доступа к учетной записи или маркера общего доступа (SAS).

Укажите, как разрешены операции с данными

Команды Azure CLI для чтения и записи данных BLOB-объектов включают необязательный --auth-mode параметр. Укажите этот параметр, чтобы указать, как требуется авторизовать операцию данных:

  • Установите параметр --auth-mode в login, чтобы войти с помощью субъекта безопасности Microsoft Entra (рекомендуется).
  • Задайте для --auth-mode параметра устаревшее key значение, чтобы попытаться получить ключ доступа к учетной записи, используемый для авторизации. Если вы не укажете параметр --auth-mode, то Azure CLI также попытается получить ключ доступа.

Чтобы использовать --auth-mode параметр, убедитесь, что вы установили Azure CLI версии 2.0.46 или более поздней. Запустите az --version , чтобы проверить установленную версию.

Примечание.

Если учетная запись хранения заблокирована с использованием блокировки Azure Resource Manager ReadOnly, операция Список ключей не разрешена для этой учетной записи хранения. Список ключей — операция POST, и все операции POST блокируются, если для учетной записи настроена блокировка ReadOnly. По этой причине, когда учетная запись заблокирована с помощью блокировки ReadOnly, пользователи, которые еще не обладают ключами учетной записи, должны использовать учетные данные Microsoft Entra для доступа к данным BLOB.

Это важно

Если вы опустите --auth-mode параметр или задайте для него значение key, Azure CLI пытается использовать ключ доступа к учетной записи для авторизации. В этом случае корпорация Майкрософт рекомендует предоставить ключ доступа в команде или в переменной среды AZURE_STORAGE_KEY . Дополнительные сведения о переменных среды см. в разделе " Задание переменных среды" для параметров авторизации.

Если ключ доступа не указан, Azure CLI пытается вызвать поставщика ресурсов службы хранилища Azure, чтобы получить его для каждой операции. Выполнение многих операций с данными, требующих вызова поставщика ресурсов, может привести к ограничению скорости. Дополнительные сведения об ограничениях поставщика ресурсов см. в разделе "Целевые показатели масштабируемости и производительности" для поставщика ресурсов службы хранилища Azure.

Авторизация с помощью учетных данных Microsoft Entra

При входе в Azure CLI с помощью учетных данных Microsoft Entra возвращается маркер доступа OAuth 2.0. Этот токен автоматически используется Azure CLI для авторизации последующих операций с данными в хранилище Blob или очередей. Для поддерживаемых операций больше не требуется передавать ключ учетной записи или маркер SAS с помощью команды.

Вы можете назначить права доступа к данным блобов субъекту безопасности Microsoft Entra с помощью управления доступом на основе ролей Azure (Azure RBAC). Дополнительные сведения о ролях Azure в службе хранилища Azure см. в статье "Назначение роли Azure для доступа к данным BLOB-объектов".

Разрешения для вызова операций с данными

Расширения службы хранилища Azure поддерживаются для операций с объектами BLOB. Какие операции можно вызывать, зависят от разрешений, предоставленных субъекту безопасности Microsoft Entra, с помощью которого вы входите в Azure CLI. Разрешения для контейнеров службы хранилища Azure назначаются с помощью Azure RBAC. Например, если вам назначена роль чтения данных BLOB-объектов хранилища, то вы можете выполнять команды сценариев, которые считывают данные из контейнера. Если вам назначена роль участника данных BLOB-объектов хранилища, можно выполнить скриптовые команды, которые считывают, записывают или удаляют контейнер или содержащиеся в нем данные.

Дополнительные сведения о разрешениях, необходимых для каждой операции службы хранилища Azure в контейнере, см. в разделе "Вызов операций хранилища с маркерами OAuth".

Пример. Авторизация операции для создания контейнера с помощью учетных данных Microsoft Entra

В следующем примере показано, как создать контейнер из Azure CLI с помощью учетных данных Microsoft Entra. Чтобы создать контейнер, вам потребуется войти в Azure CLI, и вам потребуется группа ресурсов и учетная запись хранения. Чтобы узнать, как создать эти ресурсы, см. краткое руководство: создание, скачивание и перечисление больших двоичных объектов с помощью Azure CLI.

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

    Это важно

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

  2. Вызовите команду az storage container create с установленным параметром --auth-mode, чтобы login создать контейнер с использованием ваших учетных данных Microsoft Entra. Не забудьте заменить значения заполнителей в угловых скобках собственными значениями.

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Авторизация с помощью ключа доступа к учетной записи

Если у вас есть ключ учетной записи, можно вызвать любую операцию с данными службы хранилища Azure. Как правило, использование ключа учетной записи менее безопасно. Если ключ учетной записи скомпрометирован, все данные в вашей учетной записи могут быть скомпрометированы.

В следующем примере показано, как создать контейнер с помощью ключа доступа к учетной записи. Укажите ключ учетной записи и укажите --auth-mode параметр со значением key :

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

Это важно

Если учетная запись хранения заблокирована с использованием блокировки Azure Resource Manager ReadOnly, операция Список ключей не разрешена для этой учетной записи хранения. Список ключей — операция POST, и все операции POST блокируются, если для учетной записи настроена блокировка ReadOnly. По этой причине, когда учетная запись заблокирована с помощью блокировки ReadOnly , пользователи должны получить доступ к данным с учетными данными Microsoft Entra.

Авторизация с помощью токена SAS

Если у вас есть маркер SAS, можно вызвать операции с данными, разрешенные SAS. В следующем примере показано, как создать контейнер с помощью маркера SAS:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Установите переменные среды для параметров авторизации

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

Переменная среды Описание
AZURE_STORAGE_ACCOUNT Имя учетной записи хранения. Эта переменная должна использоваться в сочетании с ключом учетной записи хранения или маркером SAS. Если ни один из них не присутствует, Azure CLI пытается получить ключ доступа к учетной записи хранения, используя прошедшую проверку подлинности учетную запись Microsoft Entra. Если одновременно выполняется большое количество команд, может быть достигнуто ограничение регулирования поставщика ресурсов службы хранилища Azure. Дополнительные сведения об ограничениях поставщика ресурсов см. в разделе "Целевые показатели масштабируемости и производительности" для поставщика ресурсов службы хранилища Azure.
AZURE_STORAGE_KEY Ключ учетной записи хранения. Эта переменная должна использоваться в сочетании с именем учетной записи хранения.
AZURE_STORAGE_CONNECTION_STRING Строка подключения, содержащая ключ учетной записи хранения или маркер SAS. Эта переменная должна использоваться в сочетании с именем учетной записи хранения.
AZURE_STORAGE_SAS_TOKEN Токен с общей подписью доступа (SAS). Эта переменная должна использоваться в сочетании с именем учетной записи хранения.
AZURE_STORAGE_AUTH_MODE Режим авторизации, с помощью которого выполняется команда. Допустимые значения : (рекомендуется login ) или key. При указании loginAzure CLI использует учетные данные Microsoft Entra для авторизации операции данных. Если указать устаревший key режим, Azure CLI пытается запросить ключ доступа к учетной записи и авторизовать команду с помощью ключа.

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