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

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

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

Выбор способа авторизации операций с данными

Команды Azure CLI для чтения и записи данных больших двоичных объектов содержат необязательный параметр --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 автоматически использует его для авторизации последующих операций с данными в хранилище больших двоичных объектов или очередей. Для поддерживаемых операций больше не требуется передавать ключ учетной записи или маркер SAS с помощью команды.

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

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

Для операций с данными больших двоичных объектов поддерживаются расширения службы хранилища Azure. Какие операции можно вызывать, зависят от разрешений, предоставленных субъекту безопасности Microsoft Entra, с помощью которого вы входите в Azure CLI. Разрешения для контейнеров службы хранилища Azure назначаются с помощью RBAC Azure. Например, если вам назначена роль Модуль чтения данных 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. Доступные переменные среды описаны в таблице ниже.

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

Следующие шаги