Autenticación para puntos de conexión en línea administrados

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

En este artículo se explican los conceptos de identidad y permiso en el contexto de los puntos de conexión en línea. Comenzamos con una explicación de identificadores de Microsoft Entra que admiten RBAC de Azure. En función del propósito de la identidad de Microsoft Entra, nos referimos a ella como una identidad de usuario o una identidad de punto de conexión.

Una identidad de usuario es un identificador de Microsoft Entra que puede usar para crear un punto de conexión y sus implementaciones o usar para interactuar con puntos de conexión o áreas de trabajo. Es decir, una identidad se puede considerar una identidad de usuario si emite solicitudes a puntos de conexión, implementaciones o áreas de trabajo. La identidad de usuario necesitaría permisos adecuados para realizar operaciones de plano de control y plano de datos en los puntos de conexión o áreas de trabajo.

Una identidad de punto de conexión es un identificador de Microsoft Entra que ejecuta el contenedor de usuarios en implementaciones. Es decir, si la identidad está asociada al punto de conexión y se usa para el contenedor de usuarios para la implementación, se denomina identidad de punto de conexión. La identidad del punto de conexión también necesitaría los permisos adecuados para que el contenedor de usuarios interactúe con los recursos según sea necesario. Por ejemplo, la identidad del punto de conexión necesitaría los permisos adecuados para extraer imágenes de Azure Container Registry o interactuar con otros servicios de Azure.

En general, la identidad del usuario y la identidad del punto de conexión tendrían requisitos de permisos independientes. Para obtener más información sobre cómo administrar identidades y permisos, consulte Cómo autenticar clientes para puntos de conexión en línea. Para obtener más información sobre el caso especial de agregar automáticamente permisos adicionales para secretos, consulte Permisos adicionales para la identidad de usuario.

Limitación

La autenticación de id. de Microsoft Entra (aad_token) se admite solo para los puntos de conexión en línea administrados. En el caso de los puntos de conexión en línea de Kubernetes, puede usar una clave o un token de Azure Machine Learning (aml_token).

Permisos necesarios para la identidad del usuario

Al iniciar sesión en el inquilino de Azure con su cuenta de Microsoft (por ejemplo, mediante az login), se completa el paso de autenticación de usuario (comúnmente conocido como authn) y la identidad como usuario se determina. Ahora, suponga que desea crear un punto de conexión en línea en un área de trabajo, necesitará el permiso adecuado para hacerlo. Aquí es donde entra en acción la autorización (comúnmente conocida como authz).

Operaciones del plano de control

operaciones del plano de control controlar y cambiar los puntos de conexión en línea. Estas operaciones incluyen operaciones de creación, lectura, actualización y eliminación (CRUD) en puntos de conexión en línea e implementaciones en línea. En el caso de los puntos de conexión e implementaciones en línea, las solicitudes para realizar operaciones del plano de control van al área de trabajo de Azure Machine Learning.

Autenticación para las operaciones del plano de control

Para las operaciones del plano de control, tiene una manera de autenticar un cliente en el área de trabajo: mediante un token de Microsoft Entra.

Según el caso de uso, puede elegir entre varios flujos de trabajo de autenticación para obtener este token. La identidad de usuario también debe tener un control de acceso basado en rol (RBAC de Azure) adecuado permitido para el acceso a los recursos.

Autorización para las operaciones del plano de control

Para las operaciones del plano de control, la identidad de usuario debe tener un control de acceso basado en rol (RBAC de Azure) adecuado permitido para el acceso a los recursos. En concreto, para las operaciones CRUD en puntos de conexión e implementaciones en línea, necesita que la identidad tenga asignado el rol con las siguientes acciones:

Operación Rol RBAC de Azure necesario Ámbito para el que se asigna el rol
Creación o actualización de operaciones en puntos de conexión e implementaciones en línea Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write Área de trabajo
Eliminación de operaciones en puntos de conexión e implementaciones en línea Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete Área de trabajo
Creación, actualización y eliminación de operaciones en puntos de conexión e implementaciones en línea a través de Azure Machine Learning Studio Propietario, colaborador o cualquier rol que permita Microsoft.Resources/deployments/write grupo de recursos al que pertenece el área de trabajo
Operaciones de lectura en puntos de conexión e implementaciones en línea Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read Área de trabajo
Captura de un token de Azure Machine Learning (aml_token) para invocar puntos de conexión en línea (administrados y Kubernetes) desde el área de trabajo Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action endpoint
Captura de una clave para invocar puntos de conexión en línea (administrados y Kubernetes) desde el área de trabajo Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action endpoint
Regeneración de claves para puntos de conexión en línea (administrados y Kubernetes) Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action endpoint
Captura de un token de Microsoft Entra (aad_token) para invocar puntos de conexión administrados en línea No requiere un rol. no aplicable

Nota:

Puede capturar el token de Microsoft Entra (aad_token) directamente desde el identificador de Microsoft Entra una vez que haya iniciado sesión y no necesita permiso adicional de Azure RBAC en el área de trabajo.

Permisos adicionales para la identidad de usuario al aplicar el acceso a almacenes secretos predeterminados

Si piensa usar la característica de inserción de secretos y, al crear los puntos de conexión, establece la marca para aplicar el acceso a los almacenes de secretos predeterminados, la identidad de usuario debe tener el permiso para leer secretos de las conexiones del área de trabajo.

Cuando se crea el punto de conexión con una identidad asignada por el sistema (SAI) y la marca se establece para aplicar el acceso a los almacenes de secretos predeterminados, la identidad de usuario debe tener permisos para leer secretos de las conexiones del área de trabajo al crear el punto de conexión y crear las implementaciones en el punto de conexión. Esta restricción garantiza que solo una identidad de usuario con permiso para leer secretos pueda conceder a la identidad del punto de conexión el permiso para leer secretos.

  • Si una identidad de usuario no tiene permisos para leer secretos de las conexiones de área de trabajo, pero intenta crear el punto de conexión con una SAI y la marca del punto de conexión establecido para aplicar el acceso a los almacenes de secretos predeterminados, se rechaza la creación del punto de conexión.

  • Del mismo modo, si una identidad de usuario no tiene permisos para leer secretos de conexiones de área de trabajo, pero intenta crear una implementación en el punto de conexión con una SAI y la marca del punto de conexión establecida para aplicar el acceso a los almacenes de secretos predeterminados, se rechaza la creación de la implementación.

Cuando (1) el punto de conexión se crea con una UAI, o (2) la marca no se establece para aplicar el acceso a los almacenes de secretos predeterminados, incluso si el punto de conexión usa una SAI, la identidad de usuario no necesita tener permisos para leer secretos de las conexiones del área de trabajo. En este caso, no se concederá automáticamente a la identidad del punto de conexión el permiso para leer secretos, pero aún puede conceder manualmente a la identidad del punto de conexión este permiso asignando los roles adecuados si es necesario. Independientemente de si la asignación de roles se realizó automáticamente o manualmente, la recuperación e inserción de secretos se desencadenará si ha asignado las variables de entorno con referencias secretas en la definición de implementación, y usará la identidad del punto de conexión para hacerlo.

Para obtener más información sobre cómo administrar la autorización en un área de trabajo de Azure Machine Learning, consulte Administrar el acceso a Azure Machine Learning.

Para obtener más información sobre la inyección de secretos, consulte Inserción de secretos en puntos de conexión en línea.

Operaciones de plano de datos

Las operaciones del plano de datos no cambian los puntos de conexión en línea, sino que usan datos para interactuar con los puntos de conexión. Un ejemplo de una operación de plano de datos es enviar una solicitud de puntuación a un punto de conexión en línea y obtener una respuesta de ella. En el caso de los puntos de conexión e implementaciones en línea, las solicitudes para realizar operaciones del plano de datos van al URI de puntuación del punto de conexión.

Autenticación para las operaciones del plano de datos

En el caso de las operaciones del plano de datos, puede elegir entre tres maneras de autenticar un cliente para enviar solicitudes al URI de puntuación de un punto de conexión:

  • key
  • Token de Azure Machine Learning (aml_token)
  • Token de Microsoft Entra (aad_token)

Para obtener más información sobre cómo autenticar clientes para las operaciones del plano de datos, consulte Cómo autenticar clientes para puntos de conexión en línea.

Autorización para las operaciones del plano de datos

Para las operaciones del plano de datos, la identidad de usuario debe tener un control de acceso basado en rol (RBAC de Azure) adecuado permitido para el acceso a los recursos, solo si el punto de conexión está establecido para usar el token de Microsoft Entra (aad_token). En concreto, para las operaciones del plano de datos en puntos de conexión e implementaciones en línea, necesita que la identidad tenga asignado el rol con las siguientes acciones:

Operación Rol RBAC de Azure necesario Ámbito para el que se asigna el rol
Invoque puntos de conexión en línea con clave o token de Azure Machine Learning (aml_token). No requiere un rol. No aplicable
Invoque puntos de conexión administrados en línea con el token de Microsoft Entra (aad_token). Propietario, colaborador o cualquier rol que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action endpoint
Invoque puntos de conexión en línea de Kubernetes con el token de Microsoft Entra (aad_token). No requiere un rol. No aplicable

Permisos necesarios para la identidad del punto de conexión

Una implementación en línea ejecuta el contenedor de usuarios con la identidad del punto de conexión, es decir, la identidad administrada asociada al punto de conexión. La identidad del punto de conexión es un id. de Microsoft Entra que admite RBAC de Azure. Por lo tanto, puede asignar roles de Azure a la identidad del punto de conexión para controlar los permisos necesarios para realizar operaciones. Esta identidad de punto de conexión puede ser una identidad asignada por el sistema (SAI) o una identidad asignada por el usuario (UAI). Puede decidir si va a usar una SAI o una UAI 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.

Asignación automática de roles para la identidad del punto de conexión

Si la identidad del punto de conexión es una identidad asignada por el sistema, algunos roles se asignan a la identidad del punto de conexión para mayor comodidad.

Role Descripción Condición para la asignación automática de roles
AcrPull Permite que la identidad del punto de conexión extraiga imágenes de Azure Container Registry (ACR) asociado al área de trabajo. La identidad del punto de conexión es una identidad asignada por el sistema (SAI).
Storage Blob Data Reader Permite que la identidad del punto de conexión lea blobs del almacén de datos predeterminado del área de trabajo. La identidad del punto de conexión es una identidad asignada por el sistema (SAI).
AzureML Metrics Writer (preview) Permite que la identidad del punto de conexión escriba métricas en el área de trabajo. La identidad del punto de conexión es una identidad asignada por el sistema (SAI).
Azure Machine Learning Workspace Connection Secrets Reader1 Permite que la identidad del punto de conexión lea los secretos de las conexiones del área de trabajo. La identidad del punto de conexión es una identidad asignada por el sistema (SAI). El punto de conexión se crea con una marca para aplicar el acceso a los almacenes de secretos predeterminados. La identidad de usuario que crea el punto de conexión tiene el mismo permiso para leer secretos de las conexiones del área de trabajo. 2

1 Para obtener más información sobre el rol de Azure Machine Learning Workspace Connection Secrets Reader, vea Asignar permisos a la identidad.

2 Incluso si la identidad del punto de conexión es SAI, si la marca de aplicación no está establecida o la identidad del usuario no tiene el permiso, no hay ninguna asignación automática de rol para este rol. Para obtener más información, consulte Cómo implementar un punto de conexión en línea con la inserción de secretos.

Si la identidad del punto de conexión es una identidad asignada por el usuario, no hay ninguna asignación de roles automática. En este caso, debe asignar manualmente roles a la identidad del punto de conexión según sea necesario.

Elección de los permisos y el ámbito para la autorización

Azure RBAC permite definir y asignar roles con un conjunto de acciones de permitidas o denegadas en ámbitos específicos. Puede personalizar estos roles y ámbitos según sus necesidades empresariales. Los siguientes ejemplos sirven como punto de partida y se pueden ampliar según sea necesario.

Ejemplos para la identidad de usuario

  • Para controlar todas las operaciones enumeradas en la tabla para las operaciones del plano de control anterior y la tabla de operaciones del plano de datos, puede considerar el uso de un rol integrado AzureML Data Scientist que incluya la acción de permiso Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions.
  • Para controlar las operaciones de un punto de conexión específico, considere la posibilidad de usar el ámbito /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>.
  • Para controlar las operaciones de todos los puntos de conexión de un área de trabajo, considere la posibilidad de usar el ámbito /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>.

Ejemplos de identidad de punto de conexión

  • Para permitir que el contenedor de usuarios lea blobs, considere la posibilidad de usar un rol integrado Storage Blob Data Reader que incluya la acción de datos de permisos Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read.

Para más información sobre las directrices para las operaciones del plano de control, consulte Administración del acceso a Azure Machine Learning. Para más información sobre la definición de roles, el ámbito y la asignación de roles, consulte Azure RBAC. Para comprender el ámbito de los roles asignados, consulte Descripción del ámbito de RBAC de Azure.