Выбор способа авторизации доступа к данным очереди с помощью 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 для доступа к данным очереди.

Важно!

Если опустить параметр --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 для доступа к большим двоичным объектам и данным очереди с помощью портала Azure.

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

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

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

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

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

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

    Важно!

    Назначение ролей Azure может занимать несколько минут.

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

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

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

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

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

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

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

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

az storage queue create \
    --account-name <storage-account> \
    --name sample-queue \
    --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 попытается запросить ключ доступа к учетной записи и авторизовать команду с его помощью.

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