Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Extensión ML de la CLI de Azure v2 (actual)
SDK de Python azure-ai-ml v2 (actual)
La inserción de secretos en puntos de conexión en línea le ayuda a usar de forma segura las claves de API y otros secretos de las implementaciones sin exponerlos en el código. En este artículo se explica lo siguiente:
- ¿Por qué importa la inyección de secretos para despliegues seguros?
- Uso de identidades administradas para recuperar secretos
- Cómo simplifica el proceso la función de inyección de secretos
Al final, comprenderá qué enfoque funciona mejor para su escenario.
La inyección de secretos en el contexto de un punto de conexión en línea es un proceso de recolección de secretos, como claves de API, de almacenes de secretos e inyección de los mismos en el contenedor de usuario que se ejecuta dentro de una implementación en línea. El servidor de inferencia que ejecuta el script de puntuación o la pila de inferencia que se aporta con un enfoque de implementación BYOC (traiga su propio contenedor) accede de forma segura a los secretos a través de variables de entorno.
Importante
Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.
Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
Declaración del problema
Al crear una implementación en línea, es posible que quiera usar secretos desde dentro de la implementación para acceder a servicios externos. Algunos de estos servicios externos incluyen el servicio Microsoft Azure OpenAI, las herramientas Foundry y Azure AI Content Safety.
Para usar los secretos, necesita una manera de pasarlos de forma segura al contenedor de usuarios que se ejecuta dentro de la implementación. No incluya secretos como parte de la definición de implementación, ya que esta práctica expone los secretos en la definición de implementación.
Un enfoque mejor es almacenar los secretos en almacenes de secretos y después recuperarlos de forma segura desde dentro de la implementación. Sin embargo, este enfoque plantea su propio reto: cómo debe autenticarse la implementación ante los almacenes secretos para recuperar los secretos. Dado que la implementación en línea ejecuta el contenedor de usuarios mediante la identidad del punto de conexión, que es una identidad administrada, puede usar Azure RBAC para controlar los permisos de la identidad del punto de conexión y permitir que el punto de conexión recupere secretos de los almacenes de secretos. El uso de este enfoque requiere que complete las siguientes tareas:
- Asigne los roles adecuados a la identidad del punto de conexión para que pueda leer secretos de los almacenes de secretos.
- Implemente la lógica de puntuación de la implementación para que use la identidad administrada del punto de conexión para recuperar los secretos de los almacenes de secretos.
Aunque este enfoque de usar una identidad administrada es una forma segura de recuperar e inyectar secretos, la inyección de secretos a través de la característica de inyección de secretos simplifica aún más el proceso de recuperar secretos para conexiones de áreas de trabajo y almacenes de claves.
Identidad administrada asociada al punto de conexión
Una implementación en línea ejecuta el contenedor de usuarios con la identidad administrada asociada al punto de conexión. Esta identidad administrada, denominada identidad de punto de conexión, es un Microsoft Entra ID compatible con Azure RBAC. Por lo tanto, puede asignar roles de Azure a la identidad para controlar los permisos necesarios para realizar operaciones. La identidad de punto de conexión puede ser una identidad asignada por el sistema (SAI) o una identidad asignada por el usuario (UAI). Decide cuál de estos tipos de identidades se va a usar al crear el punto de conexión.
- Para un identidad asignada por el sistema, la identidad se crea automáticamente al crear el punto de conexión y los roles con permisos fundamentales (como el permiso de extracción de Azure Container Registry y el lector de datos de blobs de almacenamiento) se asignan automáticamente.
- Para una identidad asignada por el usuario, primero debe crear la identidad y, a continuación, asociarla al punto de conexión al crear el punto de conexión. También es responsable de asignar los roles adecuados a la UAI según sea necesario.
Para más información sobre el uso de identidades administradas de un punto de conexión, ver Cómo acceder a recursos desde puntos de conexión con identidades administradas, y el ejemplo de Uso de identidades administradas para interactuar con servicios externos.
Asignación de roles a la identidad del punto de conexión
Los almacenes de secretos requieren los siguientes roles:
- Para secretos almacenados en conexiones de áreas de trabajo bajo su área de trabajo:
Workspace Connectionsproporciona una API de lista de secretos (versión preliminar) que requiere que la identidad que llame a la API tenga el rolAzure Machine Learning Workspace Connection Secrets Reader(o equivalente) asignado a la identidad. - Para secretos almacenados en una instancia de Microsoft Azure Key Vault externa: Key Vault proporciona una API de obtención de versiones de secretos que requiere que la identidad que llama a la API tenga un rol
Key Vault Secrets User(o equivalente) asignado a la identidad.
Implementación de la inyección de secretos
Después de recuperar secretos, como las claves de API, desde almacenes secretos, puede insertarlos en un contenedor de usuarios que se ejecute dentro de la implementación en línea de dos maneras:
- Inserción de secretos por su cuenta mediante identidades administradas : para obtener el control y la flexibilidad máximos
- Inserción de secretos mediante la característica de inyección de secretos : para un enfoque simplificado sin código
Elija el enfoque que mejor se adapte a los requisitos de seguridad y al flujo de trabajo de desarrollo.
Ambos enfoques implican dos pasos:
- Recupere secretos de los almacenes de secretos mediante la identidad del punto de conexión.
- Inserte los secretos en el contenedor de usuarios.
Inserción de secretos mediante identidades administradas
En la definición de implementación, use la identidad del punto de conexión para llamar a las API desde almacenes secretos. Puede implementar esta lógica en su script de puntuación o en scripts de shell que ejecute en su contenedor BYOC. Para obtener más información sobre cómo implementar la inserción de secretos mediante identidades administradas, consulte el ejemplo de uso de identidades administradas para interactuar con servicios externos.
Inyección de secretos mediante la característica de inyección de secretos
Para usar la característica de inserción de secretos, asigne los secretos a los que desea hacer referencia desde las conexiones del área de trabajo o Key Vault a las variables de entorno de la definición de implementación. Este enfoque no requiere que escriba ningún código en su script de puntuación ni en los scripts de shell que ejecute en su contenedor BYOC. Para asignar los secretos de las conexiones del área de trabajo o de Key Vault a las variables de entorno, deben cumplirse las siguientes condiciones:
- Durante la creación del punto de conexión, si define un punto de conexión en línea para aplicar el acceso a almacenes de secretos predeterminados (conexiones dentro del área de trabajo actual), la identidad de usuario que crea la implementación bajo el punto de conexión deberá tener los permisos para leer secretos de las conexiones del área de trabajo.
- La identidad del punto de conexión que usa la implementación debe tener permisos para leer secretos de las conexiones del área de trabajo o del Key Vault, según lo especificado en la definición de implementación.
Nota:
- Si crea correctamente el punto de conexión con un SAI y establece la marca para aplicar el acceso a almacenes secretos predeterminados, el punto de conexión tendrá automáticamente permiso para las conexiones del área de trabajo.
- Si el punto de conexión usa una UAI o no establece el indicador para aplicar el acceso a los almacenes secretos predeterminados, es posible que la identidad del punto de conexión no tenga permiso para las conexiones al área de trabajo. En esta situación, deberá asignar manualmente el rol para las conexiones del área de trabajo a la identidad del punto de conexión.
- La identidad del punto de conexión no recibe automáticamente el permiso para el Key Vault externo. Si está utilizando Key Vault como almacén de secretos, necesitará asignar manualmente el rol de Key Vault a la identidad del punto de conexión.
Para más información sobre el uso de la inyección de secretos, consulte Implementación de modelos de Machine Learning en puntos de conexión en línea con inyección de secretos (versión preliminar).
Pasos siguientes
Ahora que comprende los conceptos de inyección de secretos, aprenda a implementarlos:
- Implementación con inserción de secretos (versión preliminar): guía paso a paso para implementar la inserción de secretos en las implementaciones
- Autenticación para puntos de conexión en línea administrados : descripción de las opciones de autenticación de los puntos de conexión
- Introducción a los puntos de conexión en línea: obtenga información sobre los aspectos básicos de los puntos de conexión en línea.
¿Listo para empezar? Siga la guía de implementación.