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


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

Управляемые удостоверения обеспечивают безопасный и удобный способ авторизации операций AzCopy без хранения учетных данных или управления маркерами SAS. Этот метод проверки подлинности особенно важен для автоматизированных скриптов, конвейеров CI/CD и приложений, работающих на виртуальных машинах Azure или других службах Azure.

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

Дополнительные сведения о других способах авторизации доступа к AzCopy см. в статье "Авторизация AzCopy".

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

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

Для операций загрузки используйте чтение данных из Azure Blob Storage или привилегированное чтение данных из файлов Azure.

Для операций загрузки используйте участника данных хранилища Blob или владельца данных хранилища Blob (Blob-хранилище) или привилегированного участника данных файлов хранилища (Azure Files).

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

Замечание

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

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

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

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

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

Этот вариант отлично подходит, если вы планируете использовать 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> идентификационным номером клиента пользовательского управляемого удостоверения.

Идентификатор клиента можно найти на портале Azure, просмотрев свойства управляемого удостоверения. На следующем снимке экрана показано расположение свойства идентификатора клиента.

Снимок экрана: расположение идентификатора клиента.

Использование идентификатора объекта

Чтобы авторизовать, используя идентификатор объекта, введите следующую команду, затем нажмите ENTER.

export AZCOPY_MSI_OBJECT_ID=<object-id>

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

Идентификатор объекта можно найти на портале Azure, просмотрев свойства управляемого удостоверения. На следующем снимке экрана показано расположение идентификатора объекта (также называемого идентификатором principal).

Снимок экрана: расположение идентификатора объекта.

Использование идентификатора ресурса

Чтобы авторизоваться с помощью идентификатора ресурса, введите следующую команду, а затем нажмите ENTER.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

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

Идентификатор ресурса можно найти в портале Azure, просматривая свойства управляемого удостоверения. На следующем снимке экрана показано расположение свойства идентификатора ресурса.

Снимок экрана: расположение идентификатора ресурса.

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

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

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

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

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

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

azcopy login --identity

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

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

Вход с помощью идентификатора клиента

Введите следующую команду, а затем нажмите клавишу ВВОД.

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

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

Идентификатор клиента можно найти на портале Azure, просмотрев свойства управляемого удостоверения. На следующем снимке экрана показано расположение свойства идентификатора клиента.

Снимок экрана: расположение идентификатора клиента

Вход с помощью идентификатора объекта

Введите следующую команду, а затем нажмите клавишу ВВОД.

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

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

Идентификатор объекта можно найти на портале Azure, просмотрев свойства управляемого удостоверения. На следующем снимке экрана показано расположение идентификатора объекта (также называемого идентификатором principal).

Снимок экрана: расположение идентификатора объекта

Вход с помощью идентификатора ресурса

Введите следующую команду, а затем нажмите клавишу ВВОД.

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

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

Идентификатор ресурса можно найти в портале Azure, просматривая свойства управляемого удостоверения. На следующем снимке экрана показано расположение свойства идентификатора ресурса.

Снимок экрана: расположение идентификатора ресурса

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

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

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

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
export AZCOPY_TENANT_ID=<tenant-id>

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

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

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

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

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
$Env:AZCOPY_TENANT_ID="<tenant-id>"

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

Дальнейшие шаги

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

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