Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение Azure CLI ml версии 2 (текущая)
Python SDK azure-ai-ml версии 2 (текущая)
Машинное обучение Azure состоит из нескольких служб Azure. Между машинным обучением Azure и службами, на которые она используется, может произойти несколько способов проверки подлинности.
- Рабочая область Машинного обучения Azure использует управляемое удостоверение для взаимодействия с другими службами. По умолчанию это управляемое удостоверение, назначаемое системой. Вместо этого можно использовать управляемое удостоверение, назначаемое пользователем.
- Машинное обучение Azure использует реестр контейнеров Azure (ACR) для хранения образов Docker, используемых для обучения и развертывания моделей. Если вы разрешаете машинному обучению Azure автоматически создавать ACR, она включает учетную запись администратора.
- Вычислительный кластер Машинного обучения Azure использует управляемое удостоверение для получения сведений о подключении для хранилищ данных из Azure Key Vault и извлечения образов Docker из ACR. Вы также можете настроить доступ на основе удостоверений к хранилищам данных, который вместо этого будет использовать управляемое удостоверение вычислительного кластера.
- Доступ к данным может выполняться по нескольким путям в зависимости от службы хранилища данных и конфигурации. Например, аутентификация в хранилище данных может использовать управляемую идентичность, идентичность пользователя, ключ учетной записи, маркер или учетную запись безопасности.
- Управляемые сетевые конечные точки могут использовать управляемое удостоверение для доступа к ресурсам Azure при выполнении вывода. Дополнительные сведения см. в статье "Доступ к ресурсам Azure" из веб-конечной точки.
Предпосылки
Рабочая область Машинного обучения Azure. Инструкции по созданию рабочей области см. в разделе "Создание рабочей области".
Интерфейс командной строки Azure и расширение
ml
или Python SDK v2 для Azure Machine Learning:Чтобы установить Azure CLI и расширение, см. статью
ml
".Примеры в этой статье предполагают, что вы используете оболочку Bash или совместимую с ней. Например, можно использовать оболочку в системе Linux или подсистеме Windows для Linux.
Для назначения ролей имя входа для подписки Azure должно иметь роль Оператор управляемых удостоверений или другую роль, которая предоставляет права на выполнение необходимых действий (например, Владелец).
Вы должны иметь опыт создания управляемых удостоверений и работы с ними.
Типы идентификации рабочего пространства
Рабочая область Машинного обучения Azure использует управляемое удостоверение для взаимодействия с другими службами. Для Машинного обучения Azure поддерживаются несколько типов удостоверений.
Тип управляемого удостоверения | Создание назначения ролей | Цель |
---|---|---|
Назначаемое системой (SAI) | Управление корпорацией Майкрософт | Жизненный цикл, привязанный к ресурсу; использование одного ресурса; простой способ приступить к работе |
Назначаемое системой+назначаемое пользователем (SAI+UAI) | Управление вами | Независимый жизненный цикл для удостоверения пользователя, использование нескольких ресурсов, контролирует доступ с минимальными привилегиями. Доступ к данным в обучающих задачах. |
После создания рабочей области с типом удостоверения SAI его можно обновить до SAI+UAI, но не обратно из SAI+UAI в SAI. Вы можете назначить несколько идентичностей, назначенных пользователем, к одному рабочему пространству.
Управляемая идентификация, назначаемая пользователем
Рабочая область
Управляемое удостоверение, назначаемое пользователем, можно добавить при создании рабочей области Машинного обучения Azure на портале Azure. Используйте следующие действия при создании рабочей области:
- На странице "Основы " выберите учетную запись хранения Azure, реестр контейнеров Azure и Azure Key Vault, которую вы хотите использовать с рабочей областью.
- На странице "Удостоверение" выберите назначаемое пользователем удостоверение , а затем выберите управляемое удостоверение для использования.
Для вашего пользовательского управляемого удостоверения в рабочей области Машинного обучения Azure для доступа к данным связанных с рабочей областью ресурсов требуются следующие назначения ролей Azure RBAC.
Ресурс | Разрешение |
---|---|
Рабочая область Машинного обучения Azure | Вкладчик |
Служба хранилища Azure | Участник (плоскость управления) + Участник хранения данных BLOB-объектов (плоскость данных, необязательная, для включения предварительного просмотра данных в студии машинного обучения Azure) |
Azure Key Vault (при использовании модели разрешений RBAC) | Участник (плоскость управления) + администратор Key Vault (плоскость данных) |
Azure Key Vault (при использовании модели разрешений политик доступа) | Участник + любые разрешения политики доступа, кроме операций очистки |
Реестр контейнеров Azure | Вкладчик |
Azure Application Insights | Вкладчик |
Для автоматического создания назначений ролей на управляемой пользователем идентичности можно использовать этот шаблон ARM.
Подсказка
Для рабочей области с управляемыми клиентом ключами для шифрования можно передавать назначаемое пользователем управляемое удостоверение для проверки подлинности из хранилища в Key Vault. Используйте параметры user-assigned-identity-for-cmk-encryption
(CLI) или user_assigned_identity_for_cmk_encryption
(SDK) для передачи управляемого удостоверения. Это управляемое удостоверение может совпадать с основным назначаемым пользователем управляемым удостоверением рабочей области или отличаться от него.
Чтобы создать рабочую область с несколькими идентичностями, назначенными пользователями, используйте один из следующих методов:
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
az ml workspace create -f workspace_creation_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
Где содержимое workspace_creation_with_multiple_UAIs.yml выглядит следующим образом:
location: <region name>
identity:
type: user_assigned
user_assigned_identities:
'<UAI resource ID 1>': {}
'<UAI resource ID 2>': {}
storage_account: <storage acccount resource ID>
key_vault: <key vault resource ID>
image_build_compute: <compute(virtual machine) resource ID>
primary_user_assigned_identity: <one of the UAI resource IDs in the above list>
Чтобы обновить пользовательские назначенные удостоверения для рабочей области, используйте один из следующих методов: вы можете добавить новое удостоверение или удалить существующие.
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
Где содержимое workspace_update_with_multiple_UAIs.yml выглядит следующим образом:
identity:
type: user_assigned
user_assigned_identities:
'<UAI resource ID 1>': {}
'<UAI resource ID 2>': {}
primary_user_assigned_identity: <one of the UAI resource IDs in the above list>
Подсказка
Чтобы добавить новый UAI, можно указать новый идентификатор UAI в разделе user_assigned_identities помимо существующих UAI, необходимо передать все существующие идентификаторы UAI.
Чтобы удалить один или несколько существующих идентификаторов UAI, можно поместить идентификаторы UAI, которые необходимо сохранить в разделе user_assigned_identities, остальные идентификаторы UAI будут удалены.
Добавить управляемое удостоверение, назначаемое пользователем, в рабочую область вдобавок к системному удостоверению
В некоторых сценариях может потребоваться использовать управляемое удостоверение, назначаемое пользователем, помимо удостоверения рабочей области, назначаемого системой по умолчанию. Чтобы добавить назначаемое пользователем управляемое удостоверение без изменения существующего удостоверения рабочей области, следуйте этим шагам.
Создайте управляемое удостоверение, назначаемое пользователем. Сохраните ID для управляемой идентичности, которую вы создаёте.
Чтобы подключить управляемое удостоверение к рабочей области, вам потребуется файл YAML, указывающий удостоверение. Ниже приведен пример содержимого файла YAML. Замените
<TENANT_ID>
,<RESOURCE_GROUP>
и<USER_MANAGED_ID>
вашими значениями.identity: type: system_assigned,user_assigned tenant_id: <TENANT_ID> user_assigned_identities: '/subscriptions/<SUBSCRIPTION_ID/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_MANAGED_ID>': {}
Используйте команду Azure CLI
az ml workspace update
для обновления рабочей области. Укажите ФАЙЛ YAML из предыдущего шага с помощью--file
параметра. В следующем примере показано, как выглядит эта команда:az ml workspace update --resource-group <RESOURCE_GROUP> --name <WORKSPACE_NAME> --file <YAML_FILE_NAME>.yaml
Вычислительный кластер
Замечание
Вычислительные кластеры машинного обучения Azure поддерживают только одно назначенное системой удостоверение или несколько определяемых пользователем удостоверений при условии использования каждого из этих вариантов по отдельности.
Управляемое удостоверение по умолчанию — это управляемое удостоверение, назначаемое системой, или первое управляемое удостоверение, назначаемое пользователем.
Во время выполнения есть два приложения удостоверения:
Система использует удостоверение для настройки подключений хранилища пользователя, реестра контейнеров и хранилищ данных.
- В этом случае система использует управляемое по умолчанию удостоверение.
Вы используете идентификатор для доступа к ресурсам из кода отправленного задания.
- В этом случае укажите client_id , соответствующие управляемому удостоверению, которое вы хотите использовать для получения учетных данных.
- Кроме того, получите идентификатор клиента, назначаемого пользователем, с помощью переменной среды DEFAULT_IDENTITY_CLIENT_ID .
Например, чтобы получить токен для хранилища данных с по умолчанию управляемым удостоверением:
client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID') credential = ManagedIdentityCredential(client_id=client_id) token = credential.get_token('https://storage.azure.com/')
Чтобы настроить вычислительный кластер с управляемым удостоверением, используйте один из следующих методов:
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
az ml compute create -f create-cluster.yml
Где содержимое create-cluster.yml выглядит следующим образом:
$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json
name: basic-example
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
identity:
type: user_assigned
user_assigned_identities:
- resource_id: "identity_resource_id"
Для сравнения в следующем примере используется файл YAML, создающий кластер, использующий управляемое удостоверение, назначаемое системой:
$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json
name: basic-example
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
identity:
type: system_assigned
Если у вас есть существующий вычислительный кластер, вы можете перейти от управляемого пользователем удостоверения к управляемому системой удостоверению и наоборот. В следующих примерах показано, как изменить конфигурацию:
Пользовательское управляемое удостоверение
export MSI_NAME=my-cluster-identity
export COMPUTE_NAME=mycluster-msi
does_compute_exist()
{
if [ -z $(az ml compute show -n $COMPUTE_NAME --query name) ]; then
echo false
else
echo true
fi
}
echo "Creating MSI $MSI_NAME"
# Get the resource id of the identity
IDENTITY_ID=$(az identity show --name "$MSI_NAME" --query id -o tsv | tail -n1 | tr -d "[:cntrl:]" || true)
if [[ -z $IDENTITY_ID ]]; then
IDENTITY_ID=$(az identity create -n "$MSI_NAME" --query id -o tsv | tail -n1 | tr -d "[:cntrl:]")
fi
echo "MSI created: $MSI_NAME"
sleep 15 # Let the previous command finish: https://github.com/Azure/azure-cli/issues/8530
echo "Checking if compute $COMPUTE_NAME already exists"
if [ "$(does_compute_exist)" == "true" ]; then
echo "Skipping, compute: $COMPUTE_NAME exists"
else
echo "Provisioning compute: $COMPUTE_NAME"
az ml compute create --name "$COMPUTE_NAME" --type amlcompute --identity-type user_assigned --user-assigned-identities "$IDENTITY_ID"
fi
az ml compute update --name "$COMPUTE_NAME" --identity-type user_assigned --user-assigned-identities "$IDENTITY_ID"
Системно назначенная управляемая идентичность
export COMPUTE_NAME=mycluster-sa
does_compute_exist()
{
if [ -z $(az ml compute show -n $COMPUTE_NAME --query name) ]; then
echo false
else
echo true
fi
}
echo "Checking if compute $COMPUTE_NAME already exists"
if [ "$(does_compute_exist)" == "true" ]; then
echo "Skipping, compute: $COMPUTE_NAME exists"
else
echo "Provisioning compute: $COMPUTE_NAME"
az ml compute create --name "$COMPUTE_NAME" --type amlcompute
fi
az ml compute update --name "$COMPUTE_NAME" --identity-type system_assigned
Вычисление кластера Kubernetes
Замечание
Кластеры Kubernetes машинного обучения Azure поддерживают только одно назначаемое системой удостоверение или одно удостоверение, назначаемое пользователем, а не одновременно.
Управляемое удостоверение по умолчанию — это управляемое удостоверение, назначаемое системой, или первое управляемое удостоверение, назначаемое пользователем.
По времени запуска существуют два применения идентификатора:
Система использует удостоверение для настройки подключений хранилища пользователя, реестра контейнеров и хранилищ данных.
- В этом случае система использует управляемое по умолчанию удостоверение.
Вы используете идентификатор для доступа к ресурсам из кода отправленного задания.
- В случае вычислений кластера Kubernetes объект ManagedIdentityCredential должен быть предоставлен без каких-либо client_id.
Например, чтобы получить токен для хранилища данных с по умолчанию управляемым удостоверением:
credential = ManagedIdentityCredential() token = credential.get_token('https://storage.azure.com/')
Чтобы настроить вычислительные ресурсы кластера Kubernetes, убедитесь, что у него есть необходимое расширение AML, развернутое в нем , и следуйте документации по подключению вычислительных ресурсов кластера Kubernetes к рабочей области AML.
Это важно
В целях обучения (задачи машинного обучения) используется идентификация, назначенная вычислительным кластером Kubernetes. Однако в случае вывода (управляемые сетевые конечные точки) удостоверение, используемое для конечной точки, назначается конечной точке. Дополнительные сведения см. в статье "Доступ к ресурсам Azure" из конечной точки Online.
Хранилище данных
При создании хранилища данных, использующего доступ к данным на основе удостоверений, используется учетная запись Azure (маркер Microsoft Entra) для подтверждения доступа к службе хранилища. В сценарии доступа к данным на основе удостоверений не сохраняются учетные данные для проверки подлинности. В хранилище данных хранятся только сведения об учетной записи хранения.
Напротив, хранилища данных, использующие аутентификацию на основе учетных данных, кэшируют информацию о подключении, такую как ключ учетной записи хранения или токен SAS, в хранилище ключей, связанном с рабочей областью. Этот подход имеет ограничение, что другие пользователи рабочей области с достаточными разрешениями могут получить эти учетные данные, что может быть проблемой безопасности для некоторых организаций.
Дополнительные сведения о проверке подлинности доступа к данным см. в статье "Администрирование данных ". Сведения о настройке доступа на основе удостоверений к данным см. в статье "Создание хранилищ данных".
Есть два сценария, в которых можно применить доступ к данным на основе идентичности в Azure Machine Learning. Эти сценарии подходят для доступа на основе удостоверений при работе с конфиденциальными данными и требуют более детального управления доступом к данным:
- Доступ к службам хранилища
- Обучение моделей машинного обучения
Доступ на основе удостоверений позволяет использовать элементы управления доступом на основе ролей (RBAC), чтобы ограничить, какие удостоверения, например, пользователи или вычислительные ресурсы, имеют доступ к данным.
Доступ к службам хранилища
Вы можете подключаться к службам хранилища, используя доступ к данным на основе идентификации с хранилищами данных Машинного обучения Azure.
При использовании доступа к данным на основе идентификации Azure Machine Learning запрашивает маркер Microsoft Entra для проверки подлинности доступа к данным, вместо того чтобы сохранять учетные данные в хранилище данных. Этот подход позволяет управлять доступом к данным на уровне хранилища и сохранять конфиденциальность учетных данных.
Такое же поведение применяется при интерактивной работе с данными через Jupyter Notebook на локальном компьютере или вычислительном экземпляре.
Замечание
Учетные данные, хранящиеся с помощью проверки подлинности на основе учетных данных, включают идентификаторы подписок, маркеры общей подписанной сигнатуры (SAS), а также ключ доступа к хранилищу и информацию о служебном принципале, такие как идентификаторы клиента и арендатора.
Чтобы обеспечить безопасное подключение к службе хранилища в Azure, Машинное обучение Azure требует разрешения на доступ к соответствующему хранилищу данных.
Предупреждение
Доступ между клиентами к учетным записям хранения не поддерживается. Если для вашего сценария требуется доступ между клиентами, обратитесь к контактному адресу группы поддержки данных Azure Machine Learning [email protected], чтобы получить помощь в разработке пользовательского решения.
Доступ к данным на основе удостоверений поддерживает подключения только к следующим службам хранилища.
- Azure Blob-хранилище
- Хранилище Azure Data Lake Storage 1-го поколения
- Azure Data Lake Storage 2-го поколения
Для доступа к этим службам хранилища необходимо иметь по крайней мере доступ Читателя данных больших двоичных объектов хранилища к учетной записи хранения. Только владельцы учетных записей хранения могут изменять уровень доступа с помощью портала Azure.
Получение доступа к данным для учебных задач вычислений с использованием управляемой идентификации
Некоторые сценарии машинного обучения включают работу с частными данными. В таких случаях специалисты по обработке и анализу данных могут не иметь прямого доступа к данным в качестве пользователей Microsoft Entra. В этом сценарии управляемое удостоверение вычислительного ресурса можно использовать для проверки подлинности доступа к данным. В этом сценарии данные можно получить только из вычислительного экземпляра или вычислительного кластера машинного обучения, выполняющего задание обучения. С помощью этого подхода администратор предоставляет вычислительному экземпляру или кластеру, имеющим управляемые удостоверения, разрешения для чтения данных BLOB-объектов в хранилище. вместо отдельных специалистов по обработке и анализу данных.
Чтобы включить аутентификацию с помощью управляемого удостоверения вычислительных ресурсов, выполните приведенные действия.
Создать вычислительную единицу с включенным управляемым удостоверением. См. раздел "Вычислительный кластер " или "Вычислительный экземпляр" раздела "Назначение управляемого удостоверения ".
Это важно
Если вычислительный экземпляр также настроен для завершения работы бездействия, вычислительный экземпляр не завершит работу из-за неактивности, если управляемое удостоверение не имеет доступа участника к рабочей области Машинного обучения Azure. Дополнительные сведения о назначении разрешений см. в статье "Управление доступом к рабочим областям Машинного обучения Azure".
Предоставьте управляемому удостоверению вычислений по крайней мере роль чтения данных BLOB-объектов хранилища в учетной записи хранения.
Создайте хранилища данных с включенной проверкой подлинности на основе удостоверений. См. статью "Создание хранилищ данных".
Замечание
Имя созданного управляемого системного удостоверения для вычислительного экземпляра или кластера будет иметь формат /workspace-name/computes/compute-name в вашем идентификаторе Microsoft Entra.
После включения проверки подлинности на основе удостоверений по умолчанию используется управляемое удостоверение вычислительных ресурсов при доступе к данным в заданиях обучения. При необходимости можно пройти проверку подлинности с помощью удостоверения пользователя, выполнив действия, описанные в следующем разделе.
Сведения об использовании настройки Azure RBAC для хранилища см. в разделе управления доступом на основе ролей.
Доступ к данным для заданий обучения в вычислительных кластерах с помощью удостоверения пользователя
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
При обучении на кластерах вычислений Azure Machine Learning можно выполнить аутентификацию для доступа к хранилищу с помощью учетного маркера Microsoft Entra пользователя.
Этот режим проверки подлинности позволяет:
- Настройте точные разрешения, в которых разные пользователи рабочей области могут иметь доступ к разным учетным записям хранения или папкам в учетных записях хранения.
- Позвольте специалистам по обработке и анализу данных повторно использовать существующие разрешения в системах хранения.
- Проводите аудит доступа к хранилищу, поскольку журналы хранения показывают, какие удостоверения использовались для доступа к данным.
Это важно
Эта функция имеет следующие ограничения.
- Функция поддерживается для экспериментов, отправленных через командную строку машинного обучения Azure и SDK версии 2 для Python, но не через студию машинного обучения.
- Удостоверение пользователя и управляемое удостоверение для вычислительных ресурсов нельзя использовать для аутентификации в рамках одного задания.
- Для заданий конвейера рекомендуется задавать идентификацию пользователя на уровне каждого отдельного шага, который будет выполняться на вычислительном ресурсе, а не на корневом уровне конвейера. (Хотя параметр удостоверения поддерживается как на корневом конвейере, так и на уровне шагов, параметр уровня шага имеет приоритет, если оба заданы. Однако для конвейеров, содержащих компоненты конвейера, необходимо задать удостоверение на отдельных шагах, которые будут выполняться. Идентификатор, заданный на уровне корневого конвейера или компонента конвейера, не будет функционировать. Поэтому мы рекомендуем задать удостоверение на отдельном уровне шага для простоты.)
Ниже описано, как настроить доступ к данным с удостоверением пользователя для заданий обучения в вычислительных кластерах из ИНТЕРФЕЙСА командной строки.
Предоставьте идентификатору пользователя доступ к хранилищам. Например, предоставьте хранилищу StorageBlobReader доступ к определенной учетной записи хранения, которую вы хотите использовать или предоставить разрешение на основе ACL определенным папкам или файлам в хранилище Azure Data Lake 2-го поколения.
Создайте хранилище данных Машинного обучения Azure без кэшированных учетных данных для учетной записи хранения. Если в хранилище данных есть кэшированные учетные данные, такие как ключ учетной записи хранения, эти учетные данные используются вместо удостоверения пользователя.
Отправьте задание обучения со свойством identity, установленным в type: user_identity, как показано в следующей спецификации задания. Во время обучения проверка подлинности в хранилище происходит с помощью удостоверения пользователя, отправиющего задание.
Замечание
Если свойство удостоверения не указано, а хранилище данных не имеет кэшированных учетных данных, то управляемая идентификация вычислительных ресурсов используется в качестве резервного варианта.
command: | echo "--census-csv: ${{inputs.census_csv}}" python hello-census.py --census-csv ${{inputs.census_csv}} code: src inputs: census_csv: type: uri_file path: azureml://datastores/mydata/paths/census.csv environment: azureml:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest compute: azureml:cpu-cluster identity: type: user_identity
Ниже описано, как настроить доступ к данным с удостоверением пользователя для заданий обучения в вычислительных кластерах из пакета SDK для Python.
Предоставьте доступ к данным и создайте хранилище данных, как описано выше для ИНТЕРФЕЙСА командной строки.
Отправьте задание обучения с параметром идентификации, заданным в azure.ai.ml.UserIdentityConfiguration. Этот параметр параметра позволяет заданию получать доступ к данным от имени пользователя, отправляющего задание.
from azure.ai.ml import command from azure.ai.ml.entities import Data, UriReference from azure.ai.ml import Input from azure.ai.ml.constants import AssetTypes from azure.ai.ml import UserIdentityConfiguration # Specify the data location my_job_inputs = { "input_data": Input(type=AssetTypes.URI_FILE, path="<path-to-my-data>") } # Define the job job = command( code="<my-local-code-location>", command="python <my-script>.py --input_data ${{inputs.input_data}}", inputs=my_job_inputs, environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:9", compute="<my-compute-cluster-name>", identity= UserIdentityConfiguration() ) # submit the command returned_job = ml_client.jobs.create_or_update(job)
Это важно
Во время отправки задания с включенной аутентификацией по удостоверению пользователя снимки кода защищены от изменения с помощью проверки контрольной суммы. Если у вас есть компоненты конвейера и вы планируете использовать их с аутентификацией и включенной идентификацией пользователя, может потребоваться загрузить их повторно. В противном случае задание может завершиться ошибкой при проверке контрольной суммы.
Работа с виртуальными сетями
По умолчанию Машинное обучение Azure не может взаимодействовать с учетной записью хранения, которая находится за брандмауэром или виртуальной сетью.
Вы можете настроить учетные записи хранения таким образом, чтобы они разрешали доступ только из определенных виртуальных сетей. Эта конфигурация требует дополнительных шагов, чтобы гарантировать отсутствие утечки данных за пределами сети. Такая схема поведения используется и для доступа на основе учетных данных. Дополнительные сведения см. в статье "Предотвращение кражи данных".
Если у вашей учетной записи хранения есть параметры виртуальной сети, эти параметры определяют тип удостоверения и необходимый доступ к разрешениям. Например, для предварительного просмотра данных и профиля данных параметры виртуальной сети определяют, какой тип удостоверения используется для проверки подлинности доступа к данным.
В сценариях, когда доступ к хранилищу разрешен только определенным IP-адресам и подсетям, машинное обучение Azure использует MSI рабочей области для выполнения предварительных просмотров и профилей данных.
Если ваше хранилище — ADLS 2-го поколения или Blob-хранилище, и оно имеет настройки виртуальной сети, клиенты могут использовать идентификацию пользователя или MSI (управляемая служебная идентификация) рабочей области в зависимости от настроек хранилища, определенных при его создании.
Если параметр виртуальной сети — "Разрешить службам Azure в списке доверенных служб доступ к этой учетной записи хранения", используется MSI рабочей области.
Сценарий. Реестр контейнеров Azure без пользователя администратора
При отключении пользователя администратора для ACR, Azure Machine Learning использует управляемую учетную запись для создания и получения образов Docker. Существует два рабочих процесса при конфигурировании AzureMachine Learning с целью использования ACR, где аккаунт администратора отключен.
- Разрешите Машинному обучению Azure создать экземпляр ACR, а затем отключить пользователя администратора.
- Предоставьте существующий ACR с уже отключённым пользователем администратора.
Машинное обучение Azure с автоматически созданным экземпляром ACR
Создайте рабочую область Машинного обучения Azure.
Выполните действие, требующее реестра контейнеров Azure. Например, Руководство: Обучение вашей первой модели.
Получите имя ACR, созданного кластером.
ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
az ml workspace show --name <my workspace name> \ --resource-group <my resource group> \ --subscription <my subscription id> \ --query container_registry
Эта команда возвращает значение, подобное показанному ниже. Вам нужна только последняя часть текста, которая является именем экземпляра ACR:
/subscriptions/<subscription id>/resourceGroups/<my resource group>/providers/MicrosoftContainerReggistry/registries/<ACR instance name>
Обновите ACR, отключив администратора:
az acr update --name <ACR instance name> --admin-enabled false
Использование собственного ACR
Если администратор ACR запрещен политикой подписки, необходимо сначала создать ACR без администратора, а затем связать его с рабочей областью.
Создайте ACR из Azure CLI без настройки аргумента --admin-enabled
или на портале Azure без включения администратора. Затем при создании рабочей области Машинного обучения Azure укажите идентификатор ресурса Azure этого ACR. В следующем примере показано создание новой рабочей области Машинное обучение Azure, которая использует существующий ACR:
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
az ml workspace create -n <workspace name> \
-g <workspace resource group> \
-l <region> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Подсказка
Чтобы получить значение для параметра --container-registry
, используйте команду az acr show, чтобы отобразить сведения для вашего ACR. В поле id
содержится идентификатор ресурса для ACR.
Кроме того, если у вас уже есть ACR с отключенным пользователем администратора, его можно подключить к рабочей области, обновив его. В следующем примере показано обновление рабочей области Машинного обучения Azure для использования существующего ACR:
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
az ml workspace update --update-dependent-resources \
--name <workspace name> \
--resource-group <workspace resource group> \
--container-registry /subscriptions/<subscription id>/resourceGroups/<acr resource group>/providers/Microsoft.ContainerRegistry/registries/<acr name>
Создание вычислений с управляемым удостоверением для доступа к образам Docker для обучения
Чтобы получить доступ к ACR рабочей области, создайте вычислительный кластер машинного обучения с включенным управляемым удостоверением, назначенным системой. Удостоверение можно включить на портале Azure или в Студии при создании вычислений, а также с помощью Azure CLI, как показано ниже. Дополнительные сведения см. в разделе Использование управляемых удостоверений с вычислительными кластерами.
ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 2 (текущий)
az ml compute create --name cpu-cluster --type <cluster name> --identity-type systemassigned
Управляемому удостоверению автоматически предоставляется роль ACRPull в ACR рабочей области, чтобы разрешить получение образов Docker для обучения.
Замечание
Если вы создаете вычисления до создания ACR рабочей области, необходимо назначить роль ACRPull вручную.
Использование образов Docker для вывода
После настройки ACR без администратора, как описано выше, вы можете получать доступ к образам Docker для вывода без ключей администратора из Службы Azure Kubernetes (AKS). При создании или подключении AKS к рабочей области субъекту-службе кластера автоматически назначается роль ACRPull для доступа к ACR рабочей области.
Замечание
Если вы используете собственный кластер AKS, то вместо управляемого удостоверения кластер должен иметь включенный субъект-службу.
Сценарий. Использование частного реестра контейнеров Azure
По умолчанию Машинное обучение Azure использует базовые образы Docker, которые поступают из общедоступного репозитория, управляемого Майкрософт. Затем оно создает среду обучения или вывода на основе этих образов. Дополнительные сведения см. в разделе Что такое среды машинного обучения?.
Для использования настраиваемого базового образа внутри предприятия вы можете использовать управляемые удостоверения для доступа к вашему частному ACR.
Создайте кластер вычислений для машинного обучения с включенным управляемым удостоверением, назначаемым системой, как описано ранее. Затем определите идентификатор субъекта управляемого удостоверения.
ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
az ml compute show --name <cluster name> -n <workspace> -g <resource group>
При необходимости можно обновить вычислительный кластер, чтобы назначить управляемое удостоверение, назначаемое пользователем:
ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
az ml compute update --name <cluster name> --user-assigned-identities <my-identity-id>
Чтобы разрешить кластеру вычислений загружать базовые образы, предоставьте управляемому удостоверению службы (для рабочей области или вычислений) роль ACRPull в приватном ACR.
ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
az role assignment create --assignee <principal ID> \ --role acrpull \ --scope "/subscriptions/<subscription ID>/resourceGroups/<private ACR resource group>/providers/Microsoft.ContainerRegistry/registries/<private ACR name>"
Создайте среду и укажите расположение базового образа в файле YAML среды. В следующем файле YAML показано, как определить среду, которая ссылается на частный ACR. Замените
<acr-url>
на URL-адрес вашего частного ACR, напримерmyregistry.azurecr.io
. Замените<image-path>
с путем к изображению в вашем частном ACR, например,pytorch/pytorch:latest
:ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json name: docker-image-example image: <acr-url>/<image-path>:latest description: Environment created from a Docker image.
Следующая команда демонстрирует создание среды из YAML-файла. Замените
<yaml file>
на путь к вашему YAML-файлу:ПРИМЕНЯЕТСЯ К:
Расширение Azure CLI ML версии 2 (текущий)
az ml environment create --file <yaml file>
Теперь вы можете использовать среду в задании обучения.
Связанные статьи
- См. дополнительные сведения о корпоративной безопасности в Машинном обучении Azure.
- Сведения об администрировании данных
- Узнайте об управляемых удостоверениях в вычислительном кластере.