Выбор способа авторизации доступа к данным больших двоичных объектов с помощью 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.
Прежде чем создавать контейнер, назначьте себе роль Участник данных в хранилище BLOB-объектов. Даже при том, что вы являетесь владельцем учетной записи, вам потребуются явные разрешения для выполнения операций с данными в учетной записи хранения. Дополнительные сведения о назначении ролей Azure см. в разделе Назначение роли Azure для доступа к данным BLOB-объектов.
Важно!
Назначение ролей Azure может занимать несколько минут.
Вызовите команду 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 . При указании login Azure CLI использует учетные данные Microsoft Entra для авторизации операции данных. Если задать устаревший режим key , Azure CLI попытается запросить ключ доступа к учетной записи и авторизовать команду с его помощью. |