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


Авторизация доступа к большим двоичным объектам и файлам с помощью AzCopy и Идентификатора Microsoft Entra

Вы можете предоставить AzCopy с учетными данными авторизации с помощью идентификатора Microsoft Entra. Таким образом вам не придется добавлять маркер подписанного URL-адреса (SAS) для каждой команды.

Начните с проверки своих назначений ролей. Затем выберите тип субъекта безопасности, который требуется авторизовать. Удостоверение пользователя, управляемое удостоверение и субъект-служба — это все типы субъекта безопасности.

Чтобы авторизовать доступ, вы задали переменные среды в памяти. Затем выполните любую команду AzCopy. AzCopy получит маркер проверки подлинности, необходимый для завершения операции. После завершения операции маркер исчезнет из памяти.

AzCopy извлекает маркер OAuth с помощью предоставленных учетных данных. Кроме того, AzCopy может использовать токен OAuth активного интерфейса командной строки Azure или сеанса Azure PowerShell.

Дополнительные сведения об AzCopy см. в статье Начало работы с AzCopy.

Проверка назначений ролей

Необходимый уровень авторизации зависит от того, планируется ли передача файлов или только их скачивание.

Если вы просто хотите скачать файлы, убедитесь, что роль чтения данных BLOB-объектов хранилища (Хранилище BLOB-объектов Azure) или роль средства чтения с привилегированными данными хранилища (Файлы Azure) была назначена вашему удостоверению пользователя, управляемому удостоверению или субъекту-службе.

Если вы хотите передать файлы в Хранилище BLOB-объектов Azure, убедитесь, что одна из этих ролей назначена субъекту безопасности.

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

Данные роли могут быть назначены субъекту безопасности в любой из этих областей:

  • Контейнер (файловая система) или общая папка
  • Storage account
  • Группа ресурсов
  • Подписка

Сведения о проверке и назначении ролей см. в статье "Назначение роли Azure для доступа к данным BLOB-объектов (хранилище BLOB-объектов) или способ авторизации доступа к данным файлов в портал Azure (Файлы Azure).

Примечание.

Имейте в виду, что распространение назначений ролей Azure может занять до пяти минут.

Если субъект безопасности добавлен в список управления доступом (ACL) целевого контейнера или каталога, вам не нужно назначать ему одну из этих ролей. В списке управления доступом субъекту безопасности необходимо разрешение на запись в целевой каталог и разрешение на выполнение для контейнера и каждого родительского каталога.

Чтобы узнать больше, ознакомьтесь с разделом Модель управления доступом в Azure Data Lake Storage 2-го поколения.

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

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

Авторизация удостоверения пользователя

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

export AZCOPY_AUTO_LOGIN_TYPE=DEVICE

Затем выполните любую команду azcopy (например: azcopy list https://contoso.blob.core.windows.net).

Эта команда возвращает код проверки подлинности и URL-адрес веб-сайта. Откройте веб-сайт, укажите код и нажмите кнопку Далее.

Создание контейнера

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

Авторизация управляемого удостоверения

Это отличный вариант, если вы планируете использовать AzCopy в сценарии, который выполняется без участия пользователя и на виртуальной машине Azure. При использовании этого варианта не нужно хранить учетные данные на виртуальной машине.

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

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

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

Во-первых, убедитесь, что вы включили управляемое удостоверение на уровне системы на виртуальной машине. Ознакомьтесь использованием управляемых удостоверений, назначаемых системой.

Введите приведенную ниже команду и нажмите клавишу ВВОД.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Затем выполните любую команду azcopy (например: azcopy list https://contoso.blob.core.windows.net).

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

Во-первых, убедитесь, что вы включили управляемое удостоверение, назначаемое пользователем, на виртуальной машине. Ознакомьтесь с использованием управляемых удостоверений, назначаемых пользователем.

Введите приведенную ниже команду и нажмите клавишу ВВОД.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

Затем введите любую из приведенных ниже команд и нажмите клавишу ВВОД.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Замените заполнитель <client-id> идентификатором клиента управляемого удостоверения, назначаемого пользователем.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Замените заполнитель <object-id> идентификатором объекта управляемого удостоверения, назначаемого пользователем.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Замените заполнитель <resource-id> идентификатором ресурса управляемого удостоверения, назначаемого пользователем.

После задания этих переменных можно выполнить любую команду azcopy (например: azcopy list https://contoso.blob.core.windows.net).

Авторизация субъекта-службы

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

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

Дополнительные сведения о создании субъекта-службы см. в статье "Практическое руководство. Использование портала для создания приложения Microsoft Entra и субъекта-службы" с доступом к ресурсам.

Дополнительные сведения о субъектах-службах в целом см. в разделе "Объекты приложения и субъекта-службы" в идентификаторе Microsoft Entra

Авторизация субъекта-службы с использованием секрета клиента

Введите приведенную ниже команду и нажмите клавишу ВВОД.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CLIENT_SECRET=<client-secret>
export AZCOPY_TENANT_ID=<tenant-id>

Замените заполнитель <application-id> идентификатором приложения для регистрации приложения субъекта-службы. Замените заполнитель <client-secret> секретом клиента. Замените заполнитель <tenant-id> идентификатором арендатора организации, к которому принадлежит учетная запись хранения. Чтобы найти идентификатор клиента, выберите идентификатор клиента свойств > клиента в портал Azure.

Примечание.

Рассмотрите возможность использования запроса для получения пароля от пользователя. В этом случае ваш пароль не будет отображаться в журнале команд.

Затем выполните любую команду azcopy (например: azcopy list https://contoso.blob.core.windows.net).

Авторизация субъекта-службы с использованием сертификата

Если вы предпочитаете использовать собственные учетные данные для авторизации, то вы можете передать сертификат в регистрацию приложения, а затем использовать этот сертификат для входа.

Кроме передачи сертификата в регистрацию приложения вам также потребуется сохранить копию сертификата на компьютере или виртуальной машине, где будет выполняться AzCopy. Эта копия сертификата должна быть представлена в формате PFX или PEM и должна содержать закрытый ключ. Закрытый ключ должен быть защищен паролем. Если вы используете Windows и ваш сертификат существует только в хранилище сертификатов, обязательно экспортируйте этот сертификат в PFX-файл (включая закрытый ключ). Соответствующие инструкции см. в описании команды Export-PfxCertificate.

Введите приведенную ниже команду и нажмите клавишу ВВОД.

export AZCOPY_AUTO_LOGIN_TYPE=SPN
export AZCOPY_SPA_APPLICATION_ID=<application-id>
export AZCOPY_SPA_CERT_PATH=<path-to-certificate-file>
export AZCOPY_SPA_CERT_PASSWORD=<certificate-password>
export AZCOPY_TENANT_ID=<tenant-id>

Замените заполнитель <application-id> идентификатором приложения для регистрации приложения субъекта-службы. Замените заполнитель <path-to-certificate-file> относительным или полным путем к файлу сертификата. AzCopy сохранит путь к этому сертификату, но не сохранит копию сертификата, поэтому обязательно храните этот сертификат в выбранном расположении. Замените заполнитель <certificate-password> паролем сертификата. Замените заполнитель <tenant-id> идентификатором арендатора организации, к которому принадлежит учетная запись хранения. Чтобы найти идентификатор клиента, выберите идентификатор клиента свойств > клиента в портал Azure.

Примечание.

Рассмотрите возможность использования запроса для получения пароля от пользователя. В этом случае ваш пароль не будет отображаться в журнале команд.

Затем выполните любую команду azcopy (например: azcopy list https://contoso.blob.core.windows.net).

Авторизация с помощью команды входа AzCopy

В качестве альтернативы использованию переменных в памяти вы авторизуете доступ с помощью команды azcopy login.

Команда azcopy login извлекает маркер OAuth, а затем помещает этот маркер в хранилище секретов в систему. Если у вашей операционной системы нет хранилища секретов, например ключа Linux, команда azcopy login не будет работать, так как нет места для размещения маркера.

Авторизация удостоверения пользователя (команда azcopy login)

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

azcopy login

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

azcopy login --tenant-id=<tenant-id>

Замените заполнитель <tenant-id> идентификатором арендатора организации, к которому принадлежит учетная запись хранения. Чтобы найти идентификатор клиента, выберите идентификатор клиента свойств > клиента в портал Azure.

Эта команда возвращает код проверки подлинности и URL-адрес веб-сайта. Откройте веб-сайт, укажите код и нажмите кнопку Далее.

Создание контейнера

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

Авторизация с помощью управляемого удостоверения на уровне системы (команда azcopy login)

Во-первых, убедитесь, что вы включили управляемое удостоверение на уровне системы на виртуальной машине. Ознакомьтесь использованием управляемых удостоверений, назначаемых системой.

Затем в командной консоли введите приведенную ниже команду и нажмите клавишу ВВОД.

azcopy login --identity

Авторизация с помощью управляемого удостоверения, назначаемого пользователем (команда azcopy login)

Во-первых, убедитесь, что вы включили управляемое удостоверение, назначаемое пользователем, на виртуальной машине. Ознакомьтесь с использованием управляемых удостоверений, назначаемых пользователем.

Затем в командной консоли введите любую из приведенных ниже команд и нажмите клавишу ВВОД.

azcopy login --identity --identity-client-id "<client-id>"

Замените заполнитель <client-id> идентификатором клиента управляемого удостоверения, назначаемого пользователем.

azcopy login --identity --identity-object-id "<object-id>"

Замените заполнитель <object-id> идентификатором объекта управляемого удостоверения, назначаемого пользователем.

azcopy login --identity --identity-resource-id "<resource-id>"

Замените заполнитель <resource-id> идентификатором ресурса управляемого удостоверения, назначаемого пользователем.

Авторизация субъекта-службы (команда azcopy login)

Перед запуском сценария необходимо по крайней мере один раз войти в интерактивном режиме, чтобы вы могли предоставить AzCopy учетные данные субъекта-службы. Эти учетные данные хранятся в защищенном и зашифрованном файле, поэтому сценарий не должен предоставлять эти конфиденциальные сведения.

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

Дополнительные сведения о создании субъекта-службы см. в статье "Практическое руководство. Использование портала для создания приложения Microsoft Entra и субъекта-службы" с доступом к ресурсам.

Авторизация субъекта-службы с помощью секрета клиента (команда azcopy login)

Сначала задайте для переменной среды AZCOPY_SPA_CLIENT_SECRET секрет клиента для регистрации приложения субъекта-службы.

Примечание.

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

В этом примере показано, как это можно сделать в PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Примечание.

Рассмотрите возможность использования запроса, как показано в этом примере. В этом случае ваш пароль не будет отображаться в журнале команд консоли.

Введите приведенную ниже команду и нажмите клавишу ВВОД.

azcopy login --service-principal  --application-id application-id --tenant-id=tenant-id

Замените заполнитель <application-id> идентификатором приложения для регистрации приложения субъекта-службы. Замените заполнитель <tenant-id> идентификатором арендатора организации, к которому принадлежит учетная запись хранения. Чтобы найти идентификатор клиента, выберите идентификатор клиента свойств > клиента в портал Azure.

Авторизация субъекта-службы с помощью сертификата (команда azcopy login)

Если вы предпочитаете использовать собственные учетные данные для авторизации, то вы можете передать сертификат в регистрацию приложения, а затем использовать этот сертификат для входа.

Кроме передачи сертификата в регистрацию приложения вам также потребуется сохранить копию сертификата на компьютере или виртуальной машине, где будет выполняться AzCopy. Эта копия сертификата должна быть представлена в формате PFX или PEM и должна содержать закрытый ключ. Закрытый ключ должен быть защищен паролем. Если вы используете Windows и ваш сертификат существует только в хранилище сертификатов, обязательно экспортируйте этот сертификат в PFX-файл (включая закрытый ключ). Соответствующие инструкции см. в описании команды Export-PfxCertificate.

Затем задайте для переменной среды AZCOPY_SPA_CERT_PASSWORD пароль сертификата.

Примечание.

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

В этом примере показано, как выполнить эту задачу в PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

Введите приведенную ниже команду и нажмите клавишу ВВОД.

azcopy login --service-principal --application-id application-id --certificate-path <path-to-certificate-file> --tenant-id=<tenant-id>

Замените заполнитель <application-id> идентификатором приложения для регистрации приложения субъекта-службы. Замените заполнитель <path-to-certificate-file> относительным или полным путем к файлу сертификата. AzCopy сохранит путь к этому сертификату, но не сохранит копию сертификата, поэтому обязательно храните этот сертификат в выбранном расположении. Замените заполнитель <tenant-id> идентификатором арендатора организации, к которому принадлежит учетная запись хранения. Чтобы найти идентификатор клиента, выберите идентификатор клиента свойств > клиента в портал Azure.

Примечание.

Рассмотрите возможность использования запроса, как показано в этом примере. В этом случае ваш пароль не будет отображаться в журнале команд консоли.

Авторизация с помощью Azure CLI

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

Чтобы включить Использование этого токена AzCopy, введите следующую команду и нажмите клавишу ВВОД.

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI

Дополнительные сведения о входе с помощью Azure CLI см. в статье "Вход с помощью Azure CLI".

Авторизация с помощью Azure PowerShell

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

Чтобы включить Использование этого токена AzCopy, введите следующую команду и нажмите клавишу ВВОД.

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"

Дополнительные сведения о входе с помощью Azure PowerShell см. в статье "Вход с помощью Azure PowerShell".

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

  • Дополнительные сведения об AzCopy см. в статье Начало работы с AzCopy.

  • Если у вас возникли вопросы, проблемы или вы просто хотите оставить отзыв, обращайтесь к нам с помощью Страницы GitHub.