Protección de Azure Digital Twins
En este artículo se explican los procedimientos recomendados de seguridad de Azure Digital Twins. Abarca roles y permisos, identidad administrada, acceso a la red privada con Azure Private Link, etiquetas de servicio, cifrado de datos en reposo y uso compartido de recursos entre orígenes (CORS).
Por seguridad, Azure Digital Twins permite el control de acceso preciso sobre datos, recursos y acciones específicos en su implementación. Para ello, se usa una estrategia pormenorizada de roles y permisos que se conoce como Control de acceso basado en roles de Azure (RBAC de Azure).
Azure Digital Twins también admite el cifrado de datos en reposo.
Roles y permisos con RBAC de Azure
El RBAC de Azure se proporciona en Azure Digital Twins mediante la integración con Microsoft Entra ID.
Puede usar Azure RBAC para conceder permisos a una entidad de seguridad, que puede ser un usuario, un grupo o una entidad de servicio de aplicación. Microsoft Entra ID autentica la entidad de seguridad y recibe un token de OAuth 2.0 a cambio. Este token se puede usar para autorizar una solicitud de acceso a una instancia de Azure Digital Twins.
Autenticación y autorización
Con Microsoft Entra ID, el acceso es un proceso de dos pasos. Cuando una entidad de seguridad (un usuario, un grupo o una aplicación) intenta acceder a Azure Digital Twins, la solicitud se debe autenticar y autorizar.
- En primer lugar, se autentica la identidad de la entidad de seguridad y se devuelve un token de OAuth 2.0.
- Luego, el token se pasa como parte de una solicitud al servicio Azure Digital Twins para autorizar el acceso al recurso especificado.
El paso de autenticación exige que cualquier solicitud de aplicación contenga un token de acceso de OAuth 2.0 en tiempo de ejecución. Si una aplicación se ejecuta dentro de una entidad de Azure, como una aplicación de Azure Functions, puede usar una identidad administrada para acceder a los recursos. Para obtener más información sobre las identidades administradas, consulte la siguiente sección.
El paso de autorización requiere que se asigne un rol de Azure a la entidad de seguridad. Los roles que se asignan a una entidad de seguridad determinan los permisos que tiene esa entidad de seguridad. Azure Digital Twins proporciona roles de Azure que abarcan conjuntos de permisos para los recursos de Azure Digital Twins. Estos roles se describen más adelante en este artículo.
Para más información sobre los roles y las asignaciones de roles que se admiten en Azure, consulte la Descripción de los distintos roles en la documentación de RBAC de Azure.
Autenticación con identidades administradas
Identidades administradas para recursos de Azure es una característica de Azure que permite crear una identidad segura asociada con la implementación en la que se ejecuta el código de la aplicación. A continuación, puede asociar esa identidad con los roles de control de acceso para conceder permisos personalizados de acceso a recursos específicos de Azure que la aplicación necesita.
Con las identidades administradas, la plataforma Azure administra esta identidad en tiempo de ejecución. No es necesario almacenar y proteger las claves de acceso en la configuración o el código de la aplicación, ya sea para la propia identidad o para los recursos a los que necesita acceder. Una aplicación cliente de Azure Digital Twins que se ejecuta dentro de una aplicación de Azure App Service no necesita controlar las reglas ni las claves SAS, o cualquier otro token de acceso. La aplicación cliente solo necesita la dirección del punto de conexión del espacio de nombres de Azure Digital Twins. Cuando se conecta la aplicación, Azure Digital Twins enlaza el contexto de la entidad administrada con el cliente. Una vez creada la asociación con una identidad administrada, el cliente de Azure Digital Twins puede realizar todas las operaciones autorizadas. Para conceder la autorización, se asociará una entidad administrada con un rol de Azure Digital Twins (los roles se describen a continuación).
Autorización: roles de Azure para Azure Digital Twins
Azure proporciona dos roles integrados de Azure para autorizar el acceso a las API del plano de datos de Azure Digital Twins. Puede hacer referencia a los roles por nombre o por identificador:
Rol integrado | Descripción | ID |
---|---|---|
Propietario de datos de Azure Digital Twins | Proporciona acceso completo a los recursos de Azure Digital Twins. | bcd981a7-7f74-457b-83e1-cceb9e632ffe |
Lector de datos de Azure Digital Twins | Proporciona acceso de solo lectura a los recursos de Azure Digital Twins. | d57506d4-4c8d-48b1-8587-93c323f6a5a3 |
Puede asignar roles de dos maneras:
- Mediante el panel de control de acceso (IAM) de Azure Digital Twins en Azure Portal (vea Asignación de roles de Azure mediante Azure Portal).
- Mediante comandos de la CLI para agregar o quitar un rol.
Para obtener pasos detallados sobre cómo asignar roles a una instancia de Azure Digital Twins, consulte Configuración de una instancia y autenticación. Para más información sobre cómo se definen los roles integrados, consulte Descripción de definiciones de roles en la documentación de RBAC de Azure.
También puede crear roles de Azure personalizados para la instancia. Esto le permite conceder permiso para acciones específicas en áreas de datos individuales, incluidos gemelos, comandos, relaciones, rutas de eventos, trabajos, modelos y consultas. Para obtener más información sobre los roles personalizados en Azure, consulte Roles personalizados de Azure.
Automatización de roles
Al hacer referencia a los roles en escenarios automatizados, se recomienda hacer referencia a ellos por sus identificadores en lugar de sus nombres. Los nombres pueden cambiar entre versiones, pero los Id. no, lo que los convierte en una referencia más estable en la automatización.
Sugerencia
Si se asignan roles con un cmdlet, como New-AzRoleAssignment
(referencia), puede usar el parámetro -RoleDefinitionId
en lugar de -RoleDefinitionName
para pasar un identificador en lugar de un nombre para el rol.
Ámbitos de permiso
Antes de asignar un rol de Azure a una entidad de seguridad, determine el ámbito de acceso que debería tener la entidad de seguridad. Los procedimientos recomendados dictan que siempre es mejor conceder únicamente el ámbito más restringido posible.
En la lista siguiente se describen los niveles en los que puede definir el ámbito de acceso a recursos de Azure Digital Twins.
- Modelos: las acciones para este recurso dictan el control sobre los modelos cargados en Azure Digital Twins.
- Consultar con el grafo de Digital Twins: las acciones para este recurso determinan la capacidad de ejecutar operaciones de consulta en gemelos digitales en el grafo de Azure Digital Twins.
- Gemelo digital: las acciones de este recurso proporcionan control sobre las operaciones de CRUD en gemelos digitales en el grafo gemelo.
- Relación del gemelo digital: las acciones de este recurso definen el control sobre las operaciones de CRUD en las relaciones entre gemelos digitales en el grafo gemelo.
- Ruta de eventos: las acciones de este recurso determinan los permisos para dirigir eventos de Azure Digital Twins a un servicio de punto de conexión como Event Hubs, Event Grid o Service Bus.
Solución de problemas de permisos
Si un usuario intenta realizar una acción no permitida por su rol, es posible que reciba el siguiente error de la solicitud de servicio: 403 (Forbidden)
. Para obtener más información y pasos de solución de problemas, consulte Solución de problemas de una solicitud de servicio que ha generado error en Azure Digital Twins: Error 403 (Prohibido).
Identidad administrada para acceder a otros recursos
La configuración de una identidad administrada de Microsoft Entra ID para una instancia de Azure Digital Twins puede permitir que la instancia acceda fácilmente a otros recursos protegidos de Microsoft Entra, como Azure Key Vault. La plataforma Azure administra la identidad y no es necesario que lleve a cabo el aprovisionamiento ni la rotación de los secretos. Para obtener más información sobre las identidades administradas en Microsoft Entra ID, consulte Identidades administradas para recursos de Azure.
Azure Digital Twins admite ambos tipos de identidades administradas, tanto las asignadas por el sistema como las asignadas por el usuario.
Puede usar cualquiera de estos tipos de identidad administrada para autenticarse en un punto de conexión definido de forma personalizada. Azure Digital Twins admite la autenticación basada en identidades en los puntos de conexión de destinos de Event Hubs y Service Bus, y en un punto de conexión de Azure Storage Container para los eventos fallidos. Actualmente, los puntos de conexión de Event Grid no se admiten para las identidades administradas.
Para obtener instrucciones sobre cómo habilitar una identidad administrada para un punto de conexión de Azure Digital Twins que se pueda usar para enrutar eventos, consulte Opciones de punto de conexión: autenticación basada en identidades.
Uso del Servicio Microsoft de confianza para enrutar eventos a puntos de conexión de Service Bus y Event Hubs.
Azure Digital Twins puede conectarse a los puntos de conexión de Event Hubs y Service Bus para enviar datos de eventos mediante los puntos de conexión públicos de esos recursos. Sin embargo, si esos recursos están enlazados a una red virtual, la conectividad a los recursos se bloquea de manera predeterminada. Como resultado, esta configuración impide que Azure Digital Twins envíe datos de eventos a los recursos.
Para resolverlo, habilite la conectividad desde la instancia de Azure Digital Twins a los recursos de Event Hubs o Service Bus a través de la opción de Servicio Microsoft de confianza (consulte Servicios Microsoft de confianza para Event Hubs y Servicios Microsoft de confianza para Service Bus).
Deberá completar los pasos siguientes para habilitar la conexión de Servicio Microsoft de confianza.
- La instancia de Azure Digital Twins debe usar una identidad administrada asignada por el sistema. Esto permite que otros servicios encuentren la instancia como un Servicio Microsoft de confianza. Para obtener instrucciones para configurar una identidad administrada por el sistema para la instancia, consulte Habilitación de una identidad administrada para la instancia.
- Una vez que se aprovisiona una identidad administrada asignada por el sistema, conceda permiso para que la identidad administrada de la instancia acceda al punto de conexión de Event Hubs o Service Bus (esta característica no se admite en Event Grid). Para obtener instrucciones para asignar los roles adecuados, consulte Asignación de roles de Azure a la identidad.
- En el caso de los puntos de conexión de Event Hubs y Service Bus que tienen configuraciones de firewall en vigor, asegúrese de habilitar el valor Permitir que los servicios de Microsoft de confianza omitan este firewall.
Acceso a redes privadas con Azure Private Link
Azure Private Link es un servicio que le permite acceder a recursos de Azure (como Azure Event Hubs, Azure Storage y Azure Cosmos DB) y a los servicios de asociados o clientes hospedados por Azure mediante un punto de conexión privado en la instancia de Azure Virtual Network (VNet).
Del mismo modo, puede usar puntos de conexión de acceso privados para la instancia de Azure Digital Twins a fin de permitir que los clientes ubicados en la red virtual accedan de manera segura a la API de REST de la instancia mediante Private Link. La configuración de un punto de conexión de acceso privado para la instancia de Azure Digital Twins le permite protegerla y eliminar la exposición pública. Además, ayuda a evitar la filtración de datos desde Azure Virtual Network (VNet).
El punto de conexión de acceso privado usa una dirección IP del espacio de direcciones de la red virtual de Azure. El tráfico de red entre un cliente en la red privada y la instancia de Azure Digital Twins atraviesa la red virtual y un servicio Private Link en la red troncal de Microsoft, lo que elimina la exposición a la red pública de Internet.
La configuración de un punto de conexión de acceso privado para la instancia de Azure Digital Twins le permite protegerla y eliminar la exposición pública, además de evitar la filtración de datos desde la red virtual.
Para obtener instrucciones sobre cómo configurar Private Link para Azure Digital Twins, consulte Habilitación del acceso privado con Private Link.
Nota:
El acceso a la red privada con Azure Private Link se aplica al acceso a Azure Digital Twins a través de sus API de REST. Esta característica no se aplica a escenarios de salida mediante la característica de enrutamiento de eventos de Azure Digital Twins.
Consideraciones de diseño
Al trabajar con Private Link para Azure Digital Twins, estos son algunos de los factores que debería tener en cuenta:
- Precios: para obtener más información sobre los precios, vea Precios de Azure Private Link.
- Disponibilidad regional: Private Link para Azure Digital Twins está disponible en todas las regiones de Azure donde está disponible Azure Digital Twins.
- Azure Digital Twins Explorer: Azure Digital Twins Explorer no puede acceder a las instancias de Azure Digital Twins que tengan deshabilitado el acceso público. Sin embargo, puede usar Azure Functions para implementar el código base de Azure Digital Twins Explorer de forma privada en la nube. Para obtener instrucciones sobre cómo hacerlo, consulte Azure Digital Twins Explorer: Running in the cloud (Azure Digital Twins Explorer: Ejecución en la nube).
- Número máximo de puntos de conexión privados por instancia de Azure Digital Twins: 10
- Otros límites: Para obtener más información sobre los límites de Private Link, vea Limitaciones de la documentación de Azure Private Link.
Etiquetas de servicio
Una etiqueta de servicio representa un grupo de prefijos de direcciones IP de un servicio de Azure determinado. Microsoft administra los prefijos de direcciones que la etiqueta de servicio incluye y actualiza automáticamente dicha etiqueta a medida que las direcciones cambian, lo que minimiza la complejidad de las actualizaciones frecuentes en las reglas de seguridad de red. Para obtener más información sobre las etiquetas de servicio, vea Etiquetas de red virtuales.
Puede usar etiquetas de servicio para definir controles de acceso de red en grupos de seguridad de red o Azure Firewall, mediante etiquetas de servicio en lugar de direcciones IP específicas al crear reglas de seguridad. Al especificar el nombre de la etiqueta de servicio (en este caso, AzureDigitalTwins) en el campo de origen o destino apropiado de una regla, puede permitir o denegar el tráfico para el servicio correspondiente.
A continuación, se muestran los detalles de la etiqueta de servicio AzureDigitalTwins.
Etiqueta | Propósito | ¿Se puede usar para tráfico entrante o saliente? | ¿Puede ser regional? | ¿Se puede usar con Azure Firewall? |
---|---|---|---|---|
AzureDigitalTwins | Azure Digital Twins Nota: esta etiqueta o las direcciones IP que abarca la etiqueta se pueden utilizar para restringir el acceso a los puntos de conexión configurados para rutas de eventos. |
Entrada | No | Sí |
Uso de etiquetas de servicio para acceder a puntos de conexión de ruta de eventos
Estos son los pasos para acceder a puntos de conexión de ruta de eventos usando etiquetas de servicio con Azure Digital Twins.
En primer lugar, descargue esta referencia de archivo JSON en la que se muestran los intervalos IP de Azure y las etiquetas de servicio: Intervalos IP de Azure y etiquetas de servicio.
Busque los intervalos IP de "AzureDigitalTwins" en el archivo JSON.
Consulte la documentación del recurso externo conectado al punto de conexión (por ejemplo Event Grid, Event Hubs, Service Bus o Azure Storage en busca de los eventos con problemas de entrega) a fin de ver cómo definir filtros IP para ese recurso.
Establezca filtros IP en los recursos externos mediante los intervalos IP del paso 2.
Actualice los intervalos IP periódicamente según sea necesario. Los rangos pueden cambiar con el tiempo, por lo que es aconsejable comprobarlos periódicamente y actualizarlos cuando sea necesario. Aunque la frecuencia de estas actualizaciones puede variar, es una buena idea comprobarlos una vez por semana.
Cifrado de datos en reposo
Azure Digital Twins permite el cifrado de los datos en reposo y en tránsito a medida que se escriben en nuestros centros de datos y los descifra automáticamente mientras accede a ellos. Este cifrado se produce mediante una clave de cifrado administrada de Microsoft.
Uso compartido de recursos entre orígenes (CORS)
Azure Digital Twins no admite actualmente el uso compartido de recursos entre orígenes (CORS). Como resultado, si está llamando a una API REST desde una aplicación de explorador, una interfaz de API Management (APIM) o un conector de Power Apps, es posible que vea un error de directiva.
Para resolver este error, puede realizar una de las acciones siguientes:
- Quite el encabezado CORS
Access-Control-Allow-Origin
del mensaje. Este encabezado indica si la respuesta se puede compartir. - Como alternativa, cree un proxy CORS y solicite la API REST de Azure Digital Twins través de él.
Pasos siguientes
Estos conceptos se pueden ver en acción en Configuración de una instancia de Azure Digital Twins y autenticación.
Consulte cómo interactuar con estos conceptos desde el código de la aplicación cliente en Escritura de código de autenticación de aplicación cliente.
Obtenga más información sobre Azure RBAC.