Compartir a través de


Control de acceso basado en rol en inteligencia artificial de Azure Studio

Importante

Algunas de las características descritas en este artículo solo pueden estar disponibles en versión preliminar. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las 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.

En este artículo, aprenderá a administrar el acceso (autorización) a un centro de conectividad de Inteligencia artificial de Azure Studio. El control de acceso basado en roles de Azure (Azure RBAC) se usa para administrar el acceso a los recursos de Azure, como la capacidad de crear nuevos recursos o usar los existentes. Se asignan roles específicos a los usuarios de Microsoft Entra ID que les conceden acceso a los recursos. Azure proporciona tanto roles integrados como la capacidad de crear roles personalizados.

Advertencia

La aplicación de algunos roles puede limitar la funcionalidad de la interfaz de usuario en Inteligencia artificial de Azure Studio para otros usuarios. Por ejemplo, si el rol de un usuario no tiene la capacidad de crear una instancia de proceso, la opción para crear una instancia de proceso no estará disponible en Estudio. Este comportamiento es el esperado y evita que el usuario intente realizar operaciones que devolverán un error de acceso denegado.

Centro de conectividad de IA Studio frente al proyecto

En Inteligencia artificial de Azure Studio, hay dos niveles de acceso: el centro de conectividad y el proyecto. El centro de conectividad alberga la infraestructura (incluida la configuración de red virtual, las claves administradas por el cliente, las identidades administradas y las directivas), así como dónde se configuran los servicios de Azure AI. El acceso al centro de conectividad puede permitirle modificar la infraestructura, crear nuevos centros y proyectos. Los proyectos son un subconjunto del centro de conectividad que actúan como áreas de trabajo que permiten compilar e implementar sistemas de IA. Dentro de un proyecto, puede desarrollar flujos, implementar modelos y administrar recursos del proyecto. El acceso al proyecto le permite desarrollar inteligencia artificial de un extremo a otro mientras aprovecha la configuración de la infraestructura en el centro de conectividad.

Diagrama de la relación entre los recursos de AI Studio.

Una de las principales ventajas de la relación entre el centro y el proyecto es que los desarrolladores pueden crear sus propios proyectos que heredan la configuración de seguridad del centro de conectividad. Es posible que también tenga desarrolladores que sean colaboradores en un proyecto y no puedan crear nuevos proyectos.

Roles predeterminados para el centro de conectividad

El centro de conectividad de IA Studio tiene roles integrados que están disponibles de forma predeterminada.

Esta es una tabla de los roles integrados y sus permisos para el centro de conectividad:

Role Descripción
Propietario Acceso total al centro de conectividad, incluida la capacidad de administrar y crear nuevos centros y asignar permisos. Este rol se asigna automáticamente al creador del centro de conectividad
Colaborador El usuario tiene acceso completo al centro de conectividad, incluida la capacidad de crear nuevos centros, pero no puede administrar los permisos del centro en el recurso existente.
Desarrollador de Azure AI Realice todas las acciones excepto crear nuevos centros y administrar los permisos del centro de conectividad. Por ejemplo, los usuarios pueden crear proyectos, proceso y conexiones. Los usuarios pueden asignar permisos dentro de su proyecto. Los usuarios pueden interactuar con los recursos de Azure AI existentes, como Azure OpenAI, Azure AI Search y los servicios de Azure AI.
Operador de implementación de inferencias de Azure AI Realiza todas las acciones necesarias para crear una implementación de recursos dentro de un grupo de recursos.
Lector Acceso de solo lectura al centro de conectividad. Este rol se asigna automáticamente a todos los miembros del proyecto dentro del centro de conectividad.

La diferencia clave entre Colaborador y Desarrollador de Azure AI es la capacidad de crear nuevos centros. Si no desea que los usuarios realicen nuevos centros (debido a la cuota, el coste o para administrar cuántos centros tiene), asigne el rol de Desarrollador de Azure AI.

Solo los roles Propietario y Colaborador permiten crear un centro de conectividad. En este momento, los roles personalizados no pueden concederle permiso para crear centros.

El conjunto completo de permisos para el nuevo rol "Desarrollador de Azure AI" es el siguiente:

{
    "Permissions": [ 
        { 
        "Actions": [ 
    
            "Microsoft.MachineLearningServices/workspaces/*/read", 
            "Microsoft.MachineLearningServices/workspaces/*/action", 
            "Microsoft.MachineLearningServices/workspaces/*/delete", 
            "Microsoft.MachineLearningServices/workspaces/*/write" 
        ], 
    
        "NotActions": [ 
            "Microsoft.MachineLearningServices/workspaces/delete", 
            "Microsoft.MachineLearningServices/workspaces/write", 
            "Microsoft.MachineLearningServices/workspaces/listKeys/action", 
            "Microsoft.MachineLearningServices/workspaces/hubs/write", 
            "Microsoft.MachineLearningServices/workspaces/hubs/delete", 
            "Microsoft.MachineLearningServices/workspaces/featurestores/write", 
            "Microsoft.MachineLearningServices/workspaces/featurestores/delete" 
        ], 
        "DataActions": [ 
            "Microsoft.CognitiveServices/accounts/OpenAI/*", 
            "Microsoft.CognitiveServices/accounts/SpeechServices/*", 
            "Microsoft.CognitiveServices/accounts/ContentSafety/*" 
        ], 
        "NotDataActions": [], 
        "Condition": null, 
        "ConditionVersion": null 
        } 
    ] 
}

Roles predeterminados para proyectos

Los proyectos de IA Studio tienen roles integrados que están disponibles de forma predeterminada.

Esta es una tabla de los roles integrados y sus permisos para el proyecto:

Role Descripción
Propietario Acceso total al proyecto, incluida la capacidad de asignar permisos a los usuarios del proyecto.
Colaborador El usuario tiene acceso total al proyecto, pero no puede asignar permisos a los usuarios del proyecto.
Desarrollador de Azure AI El usuario puede realizar la mayoría de las acciones, incluidas las implementaciones de creación, pero no puede asignar permisos a los usuarios del proyecto.
Operador de implementación de inferencias de Azure AI Realiza todas las acciones necesarias para crear una implementación de recursos dentro de un grupo de recursos.
Lector Acceso de solo lectura al proyecto.

Cuando a un usuario se le concede acceso a un proyecto (por ejemplo, a través de la administración de permisos de AI Studio), se asignan automáticamente dos roles más al usuario. El primer rol es Lector en el centro de conectividad. El segundo rol es el rol Operador de implementación de inferencia, que permite al usuario crear implementaciones en el grupo de recursos en el que se encuentra el proyecto. Este rol se compone de estos dos permisos: "Microsoft.Authorization/*/read" y "Microsoft.Resources/deployments/*".

Para completar el desarrollo y la implementación de inteligencia artificial de un extremo a otro, los usuarios solo necesitan estos dos roles asignados automáticamente y el rol Colaborador o Desarrollador de Azure AI en un proyecto.

Los permisos mínimos necesarios para crear un proyecto son un rol que tiene la acción permitida de Microsoft.MachineLearningServices/workspaces/hubs/join en el centro de conectividad. El rol integrado Desarrollador de Azure AI tiene este permiso.

Permisos de RBAC de Azure del servicio de dependencias

El centro de conectividad tiene dependencias en otros servicios de Azure. En la tabla siguiente se enumeran los permisos necesarios para estos servicios al crear un centro de conectividad. La persona que crea el centro de conectividad necesita estos permisos. La persona que crea un proyecto desde el centro de conectividad no los necesita.

Permiso Propósito
Microsoft.Storage/storageAccounts/write Cree una cuenta de almacenamiento con los parámetros especificados o actualice las propiedades o etiquetas, o agregue un dominio personalizado para la cuenta de almacenamiento especificada.
Microsoft.KeyVault/vaults/write Cree un almacén de claves nuevo o actualice las propiedades de uno que ya existe. Es posible que ciertas propiedades requieran más permisos.
Microsoft.CognitiveServices/accounts/write Escribir cuentas de API.
Microsoft.MachineLearningServices/workspaces/write Cree una nueva área de trabajo o actualice las propiedades de un área de trabajo existente.

Configuración de RBAC empresarial de ejemplo

En la tabla siguiente se muestra un ejemplo de cómo configurar el control de acceso basado en rol para Inteligencia artificial de Azure Studio para una empresa.

Persona Role Fin
Administrador de TI Propietario del centro de conectividad El administrador de TI puede asegurarse de que el centro de conectividad está configurado para sus estándares empresariales. Puede asignar administradores al rol Colaborador en el recurso si quiere permitir que los administradores realicen nuevos centros. O bien, puede asignar administradores al rol Desarrollador de Azure AI en el recurso para no permitir la creación de un nuevo centro de conectividad.
Managers Colaborador o Desarrollador de Azure AI en el centro de conectividad Los administradores pueden administrar el centro de conectividad, auditar recursos de proceso, auditar conexiones y crear conexiones compartidas.
Líder de equipo/desarrollador líder Desarrollador de Azure AI en el centro de conectividad Los desarrolladores principales pueden crear proyectos para su equipo y crear recursos compartidos (por ejemplo, proceso y conexiones) en el nivel del centro de conectividad. Después de la creación del proyecto, los propietarios del proyecto pueden invitar a otros miembros.
Miembros del equipo o desarrolladores Colaborador o Desarrollador de Azure AI en el proyecto Los desarrolladores pueden compilar e implementar modelos de IA dentro de un proyecto y crear recursos que permitan el desarrollo, como procesos y conexiones.

Acceso a los recursos creados fuera del centro de conectividad

Al crear un centro de conectividad, los permisos de control de acceso basados en roles integrados le conceden acceso para usar el recurso. Sin embargo, si desea usar recursos fuera de lo que se creó en su nombre, debe asegurarse de que:

  • El recurso que intenta usar tiene permisos configurados para permitirle acceder a él.
  • El centro de conectividad tiene permiso para acceder a él.

Por ejemplo, si intenta consumir un almacenamiento de blobs nuevo, debe asegurarse de que la identidad administrada del centro de conectividad se agrega al rol Lector de Blob Storage para el blob. Si está intentando usar un nuevo origen de Búsqueda de Azure AI, es posible que tenga que agregar el centro de conectividad a las asignaciones de roles de Búsqueda de Azure AI.

Administrar el acceso con roles

Si es propietario de un centro de conectividad, puede agregar y quitar roles para Inteligencia artificial de Azure Studio. Vaya a la página Inicio en Inteligencia artificial de Azure Studio y seleccione el centro. A continuación, seleccione Usuarios para agregar y quitar usuarios para el centro de conectividad. También puede administrar permisos desde Azure Portal en Control de acceso (IAM) o a través de la CLI de Azure. Por ejemplo, use la CLI de Azure para asignar el rol Desarrollador de Azure AI a "joe@contoso.com" para el grupo de recursos "this-rg" con el siguiente comando:

az role assignment create --role "Azure AI Developer" --assignee "joe@contoso.com" --resource-group this-rg 

Creación de roles personalizados

Nota:

Para crear un nuevo centro de conectividad, necesita el rol Propietario o Colaborador. En este momento, un rol personalizado, incluso con todas las acciones permitidas, no le permitirá realizar un centro de conectividad.

Si los roles integrados no son suficientes, puede crear roles personalizados. Los roles personalizados pueden tener los permisos de lectura, escritura, eliminación y recursos de proceso en ese IA Studio. Puede hacer que el rol esté disponible en un nivel de proyecto específico, un nivel de grupo de recursos específico o un nivel de suscripción específico.

Nota:

Debe ser un propietario del recurso en ese nivel para crear roles personalizados en ese recurso.

En el ejemplo JSON siguiente se define un rol de desarrollador de AI Studio personalizado en el nivel de suscripción:

{
    "properties": {
        "roleName": "AI Studio Developer",
        "description": "Custom role for AI Studio. At subscription level",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/endpoints/write",
                    "Microsoft.Storage/storageAccounts/write",
                    "Microsoft.Resources/deployments/validate/action",
                    "Microsoft.KeyVault/vaults/write",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read",
                    "Microsoft.CognitiveServices/*/read"
                ],
                "notActions": [
                    "Microsoft.MachineLearningServices/workspaces/delete",
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/listKeys/action",
                    "Microsoft.MachineLearningServices/workspaces/hubs/write",
                    "Microsoft.MachineLearningServices/workspaces/hubs/delete",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/write",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/delete"
                ],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action"
                ],
                "notDataActions": []
            }
        ]
    }
}

Escenario: uso de una clave administrada por el cliente

Al configurar un centro de conectividad para usar una clave administrada por el cliente (CMK), se usa una instancia de Azure Key Vault para almacenar la clave. El usuario o la entidad de servicio que se use para crear el área de trabajo deberá tener acceso al almacén de claves como propietario o colaborador.

Si el centro de AI Studio está configurado con una identidad administrada asignada por el usuario, se debe conceder a la identidad los siguientes roles. Estos roles permiten a la identidad administrada crear los recursos de Azure Storage, Azure Cosmos DB y Azure Search que se usan al usar una clave administrada por el cliente:

  • Microsoft.Storage/storageAccounts/write
  • Microsoft.Search/searchServices/write
  • Microsoft.DocumentDB/databaseAccounts/write

Dentro del almacén de claves, el usuario o la entidad de servicio deben tener el acceso de creación, obtención, eliminación y purga de la clave a través de una directiva de acceso del almacén de claves. Para obtener más información, consulte Seguridad de Azure Key Vault.

Escenario: Uso de un recurso de Azure OpenAI existente

Al crear una conexión a un recurso de Azure OpenAI existente, también debe asignar roles a los usuarios para que puedan acceder al recurso. Deberá asignarles el rol Usuario de OpenAI de Cognitive Services o Contribuidor de OpenAI de Cognitive Services, en función de las tareas que deban realizar. Para obtener información sobre estos roles y las tareas que habilitan, consulte roles de Azure OpenAI.

Escenario: Uso de Azure Container Registry

Una instancia de Azure Container Registry es una dependencia opcional para el centro de inteligencia artificial de Azure Studio. En la siguiente tabla se muestra la matriz de compatibilidad al autenticar un centro en Azure Container Registry, según el método de autenticación y la configuración de acceso a la red pública de Azure Container Registry.

Método de autenticación Acceso a la red pública
deshabilitado
Azure Container Registry
acceso a la red pública habilitado
Usuario administrador
Identidad administrada asignada por el sistema del centro de inteligencia artificial de Azure Studio
Identidad administrada asignada por el usuario del centro de conectividad de IA Studio
con el rol ACRPull asignado a la identidad

Una identidad administrada asignada por el sistema se asigna automáticamente a los roles correctos cuando se crea el centro. Si usa una identidad administrada asignada por el usuario, debe asignar el rol ACRPull a la identidad.

Escenario: Uso de Azure Application Insights para el registro

Azure Application Insights es una dependencia opcional para el centro de conectividad de Inteligencia artificial de Azure Studio. En la tabla siguiente se enumeran los permisos necesarios si desea usar Application Insights al crear un centro de conectividad. La persona que crea el centro de conectividad necesita estos permisos. La persona que crea un proyecto desde el centro de conectividad no necesita estos permisos.

Permiso Fin
Microsoft.Insights/Components/Write Escriba una configuración de componente de Application Insights.
Microsoft.OperationalInsights/workspaces/write Cree una nueva área de trabajo o vincule a un área de trabajo que ya existe proporcionando el id. de cliente de esta.

Escenario: Aprovisionamiento de unidades de rendimiento aprovisionadas

En el ejemplo siguiente se define un rol personalizado que puede adquirir unidades de rendimiento aprovisionadas (PTU).

{
    "properties": {
        "roleName": "PTU procurer",
        "description": "Custom role to purchase PTU",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.CognitiveServices/locations/commitmentTiers/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.Features/features/read",
                    "Microsoft.Features/providers/features/read",
                    "Microsoft.Features/providers/features/register/action",
                    "Microsoft.Insights/logDefinitions/read",
                    "Microsoft.Insights/metricdefinitions/read",
                    "Microsoft.Insights/metrics/read",
                    "Microsoft.ResourceHealth/availabilityStatuses/read",
                    "Microsoft.Resources/deployments/operations/read",
                    "Microsoft.Resources/subscriptions/operationresults/read",
                    "Microsoft.Resources/subscriptions/read",
                    "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                    "Microsoft.Resources/subscriptions/resourceGroups/read"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

Escenario: API de Azure OpenAI Assistants

En el ejemplo siguiente se define un rol para un desarrollador mediante Asistentes de Azure OpenAI.

{
    "id": "",
    "properties": {
        "roleName": "CognitiveServices OpenAI Assistants API Developer",
        "description": "Custom role to work with AOAI Assistants API",
        "assignableScopes": [
            "<your-scope>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/*/read",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/steps/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

Pasos siguientes