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


Использование секретов учетных данных проверки подлинности в заданиях Машинное обучение 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. В оглавлении в области навигации слева ссылки на другие способы задания ключа.

получение секретов;

Во время обучения можно получить секреты двумя способами:

  • Использование управляемого удостоверения, связанного с вычислительным ресурсом, на котором выполняется задание обучения.
  • Используя удостоверение, выполняя задание от вашего имени.
  1. azure-keyvault-secrets Добавьте и azure-identity пакеты в среду Машинное обучение Azure, используемую при обучении модели. Например, добавив их в файл conda, используемый для сборки среды.

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

  2. В учебном коде используйте пакет 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)
    
  3. После проверки подлинности используйте клиентская библиотека Key Vault для получения секрета, предоставив связанный ключ:

    secret = secret_client.get_secret("secret-name")
    print(secret.value)
    

Пример отправки задания обучения с помощью пакета SDK для Python версии 2 Машинное обучение Azure см. в разделе "Обучение моделей с помощью пакета SDK для Python версии 2".