Использование секретов учетных данных проверки подлинности в заданиях Машинное обучение Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
Сведения проверки подлинности, такие как имя пользователя и пароль, являются секретами. Например, при подключении к внешней базе данных для запроса обучающих данных необходимо передать имя пользователя и пароль в контекст удаленного задания. Кодирование таких значений в скрипты обучения в чистом тексте небезопасно, так как потенциально будет предоставлять секрет.
Azure Key Vault позволяет безопасно хранить и извлекать секреты. Из этой статьи вы узнаете, как получить секреты, хранящиеся в хранилище ключей, из задания обучения, выполняемого в вычислительном кластере.
Внимание
Машинное обучение Azure пакет SDK Python версии 2 и расширение Azure CLI версии 2 для машинного обучения не предоставляют возможность задавать или получать секреты. Вместо этого в этой статье используется клиентская библиотека секретов Azure Key Vault для Python.
Необходимые компоненты
Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:
Совет
Для многих предварительных требований в этом разделе требуется доступ участника, владельца или эквивалентного доступа к подписке Azure или группе ресурсов Azure, содержащей ресурсы. Возможно, вам потребуется обратиться к администратору Azure и выполнить эти действия.
Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу. Попробуйте бесплатную или платную версию Машинного обучения Azure.
Рабочая область Машинного обучения Azure. Если у вас нет одного, выполните действия, описанные в статье "Создание ресурсов", чтобы приступить к созданию.
Azure Key Vault. Если вы использовали ресурсы для начала работы со статьей о создании рабочей области, для вас было создано хранилище ключей. Вы также можете создать отдельный экземпляр хранилища ключей с помощью сведений в кратком руководстве. Создание хранилища ключей .
Совет
Вам не нужно использовать то же хранилище ключей, что и рабочая область.
(Необязательно) Вычислительный кластер Машинное обучение Azure, настроенный для использования управляемого удостоверения. Кластер можно настроить для управляемого удостоверения, назначаемого системой или назначаемого пользователем.
Если задание выполняется в вычислительном кластере, предоставьте управляемому удостоверению доступ к секретам, хранящимся в хранилище ключей. Или, если задание выполняется на бессерверных вычислениях, предоставьте управляемому удостоверению, указанному для доступа к секретам задания. Метод, используемый для предоставления доступа, зависит от настройки хранилища ключей:
- Управление доступом на основе ролей Azure (Azure RBAC): при настройке для Azure RBAC добавьте управляемое удостоверение в роль пользователя секретов Key Vault в хранилище ключей.
- Политика доступа к Azure Key Vault. При настройке использования политик доступа добавьте новую политику, которая предоставляет операцию получения секретов и назначьте ее управляемому удостоверению.
Хранимое значение секрета в хранилище ключей. Затем это значение можно получить с помощью ключа. Дополнительные сведения см . в кратком руководстве по настройке и извлечению секрета из Azure Key Vault.
Совет
Ссылка на краткое руководство — это действия по использованию пакета SDK для Python Для Azure Key Vault. В оглавлении в области навигации слева ссылки на другие способы задания ключа.
получение секретов;
Во время обучения можно получить секреты двумя способами:
- Использование управляемого удостоверения, связанного с вычислительным ресурсом, на котором выполняется задание обучения.
- Используя удостоверение, выполняя задание от вашего имени.
azure-keyvault-secrets
Добавьте иazure-identity
пакеты в среду Машинное обучение Azure, используемую при обучении модели. Например, добавив их в файл conda, используемый для сборки среды.Среда используется для создания образа Docker, выполняемого заданием обучения в вычислительном кластере.
В учебном коде используйте пакет SDK для удостоверений Azure и клиентская библиотека Key Vault, чтобы получить учетные данные управляемого удостоверения и пройти проверку подлинности в хранилище ключей:
from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient credential = DefaultAzureCredential() secret_client = SecretClient(vault_url="https://my-key-vault.vault.azure.net/", credential=credential)
После проверки подлинности используйте клиентская библиотека Key Vault для получения секрета, предоставив связанный ключ:
secret = secret_client.get_secret("secret-name") print(secret.value)
Связанный контент
Пример отправки задания обучения с помощью пакета SDK для Python версии 2 Машинное обучение Azure см. в разделе "Обучение моделей с помощью пакета SDK для Python версии 2".