Uso de secretos de credenciales de autenticación en trabajos de Azure Machine Learning
SE APLICA A: SDK de Python azure-ai-ml v2 (actual)
Los datos de autenticación (por ejemplo, el nombre de usuario y la contraseña) son secretos. Por ejemplo, si se conecta a una base de datos externa para consultar datos de entrenamiento, deberá pasar el nombre de usuario y la contraseña al contexto de trabajo remoto. La codificación de estos valores en scripts de entrenamiento en texto no cifrado no es segura, ya que podría exponer el secreto.
Azure Key Vault permite almacenar y recuperar secretos de forma segura. En este artículo, aprenderá a recuperar secretos almacenados en un almacén de claves de un trabajo de entrenamiento que se ejecuta en un clúster de proceso.
Importante
El SDK de Python de Azure Machine Learning v2 y la extensión de la CLI de Azure v2 para el aprendizaje automático no proporcionan la funcionalidad de establecer u obtener secretos. En su lugar, la información de este artículo usa la biblioteca cliente de secretos de Azure Key Vault para Python.
Requisitos previos
Antes de seguir los pasos de este artículo, asegúrese de que tiene los siguientes requisitos previos:
Sugerencia
Muchos de los requisitos previos de esta sección requieren acceso de colaborador, propietario o equivalente a la suscripción de Azure o al grupo de recursos de Azure que contiene los recursos. Es posible que tenga que ponerse en contacto con el administrador de Azure para realizar estas acciones.
Suscripción a Azure. Si no tiene una suscripción de Azure, cree una cuenta gratuita antes de empezar. Pruebe la versión gratuita o de pago de Azure Machine Learning.
Un área de trabajo de Azure Machine Learning. Si no tienes uno, sigue los pasos del artículo Crear recursos para comenzar para crear uno.
Una instancia de Azure Key Vault. Si usaste el artículo Crear recursos para comenzar para crear tu área de trabajo, se creó un almacén de claves para ti. También puede crear una instancia independiente del almacén de claves con la información del artículo Inicio rápido: Creación de un almacén de claves.
Sugerencia
No es necesario usar el mismo almacén de claves que el área de trabajo.
(Opcional) Un clúster de proceso de Azure Machine Learning configurado para usar una identidad administrada. El clúster se puede configurar para una identidad administrada asignada por el sistema o por el usuario.
Si su trabajo se ejecuta en un clúster de proceso, conceda a la identidad administrada del clúster de proceso acceso a los secretos almacenados en el almacén de claves. O bien, si el trabajo se ejecuta en un proceso sin servidor, conceda a la identidad administrada especificada para el trabajo acceso a los secretos. El método que se usa para conceder acceso depende de la configuración del almacén de claves:
- Control de acceso basado en rol de Azure (Azure RBAC): cuando se configura para Azure RBAC, agregue la identidad administrada al rol Usuario de secretos de Key Vault en el almacén de claves.
- Directiva de acceso de Azure Key Vault: cuando se configura para usar directivas de acceso, agregue una nueva directiva que conceda la operación get para secretos y asígnela a la identidad administrada.
Valor de secreto almacenado en el almacén de claves. A continuación, este valor se puede recuperar mediante una clave. Para más información, consulte Inicio rápido: Establecimiento y recuperación de un secreto desde Azure Key Vault.
Sugerencia
El vínculo del inicio rápido proporciona acceso a los pasos para usar el SDK de Python de Azure Key Vault. En la tabla de contenido del área de navegación de la izquierda se proporcionan vínculos a otros métodos para establecer una clave.
Obtención de secretos
Hay dos maneras de obtener secretos durante el entrenamiento:
- Usando una identidad administrada asociada al recurso de proceso en el que se ejecuta el trabajo de entrenamiento.
- Con su identidad, haciendo que el proceso ejecute el trabajo en su nombre.
Agregue los paquetes
azure-keyvault-secrets
yazure-identity
al entorno de Azure Machine Learning que se usa al entrenar el modelo. Por ejemplo, agregándolos al archivo conda que se usa para crear el entorno.El entorno se usa para crear la imagen de Docker en la que se ejecuta el trabajo de entrenamiento en el clúster de proceso.
En el código de entrenamiento, use el SDK de identidad de Azure y la biblioteca cliente de Key Vault para obtener las credenciales de identidad administrada y para autenticarse en el almacén de claves:
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)
Después de la autenticación, use la biblioteca cliente de Key Vault para recuperar un secreto proporcionando la clave asociada:
secret = secret_client.get_secret("secret-name") print(secret.value)
Contenido relacionado
Para obtener un ejemplo de envío de un trabajo de entrenamiento mediante el SDK de Python v2 de Azure Machine Learning, consulte Entrenamiento de modelos con el SDK de Python v2.