Información general de seguridad para Azure Cognitive Search

En este artículo se describen las características de seguridad de Azure Cognitive Search que protegen los datos y las operaciones.

Patrones de tráfico

Un servicio de búsqueda se hospeda en Azure y normalmente se accede a él a través de conexiones de red pública. Comprender los patrones de acceso del servicio puede ayudarle a diseñar una estrategia de seguridad que impida de forma eficaz el acceso no autorizado al contenido en el que se pueden realizar búsquedas.

Cognitive Search tiene tres patrones de tráfico básicos:

  • Solicitudes entrantes realizadas por un cliente al servicio de búsqueda (el patrón predominante)
  • Solicitudes salientes emitidas por el servicio de búsqueda a otros servicios en Azure y en otros lugares
  • Solicitudes internas de servicio a servicio a través de la red troncal segura de Microsoft

Las solicitudes entrantes incluyen la creación de objetos, la carga de datos y la consulta. Para el acceso entrante a datos y operaciones, puede implementar una progresión de medidas de seguridad, empezando por las claves de API en la solicitud. A continuación, puede complementar con reglas de entrada en un firewall de IP o crear puntos de conexión privados que protejan completamente el servicio de la red pública de Internet.

Las solicitudes salientes pueden incluir operaciones de lectura y escritura. El agente principal de una llamada saliente es un indexador y los conjuntos de aptitudes constituyentes. En el caso de los indexadores, las operaciones de lectura incluyen el descifrado de documentos y la ingesta de datos. Un indexador también puede escribir en Azure Storage al crear almacenes de conocimiento, conservar enriquecimientos almacenados en caché y conservar sesiones de depuración. Por último, un conjunto de aptitudes también puede incluir aptitudes personalizadas que ejecutan código externo, por ejemplo, en Azure Functions o en una aplicación web.

Las solicitudes internas incluyen llamadas de servicio a servicio para tareas como el registro de diagnóstico, cifrado, autenticación y autorización a través de Azure Active Directory, conexiones de punto de conexión privado y solicitudes realizadas a Cognitive Services para aptitudes integradas.

Seguridad de red

Las características de seguridad de entrada protegen el punto de conexión del servicio de búsqueda a través de niveles crecientes de seguridad y complejidad. Cognitive Search utiliza la autenticación basada en claves, en la que todas las solicitudes requieren una clave de API para el acceso autenticado.

Opcionalmente, puede implementar capas de control adicionales estableciendo reglas de firewall que limiten el acceso a direcciones IP específicas. Para la protección avanzada, puede habilitar Azure Private Link para proteger el punto de conexión de servicio de todo el tráfico de Internet.

Conexión a través de la red pública de Internet

De forma predeterminada, se tiene acceso a un punto de conexión de un servicio de búsqueda a través de la nube pública mediante la autenticación basada en claves para el acceso de administrador o de consulta al punto de conexión del servicio de búsqueda. Las claves son obligatorias. El envío de una clave válida se considera una prueba de que la solicitud se origina desde una entidad de confianza. La autenticación basada en claves se explica en la sección siguiente. Sin las claves de API, se obtienen respuestas 401 y 404 a la solicitud.

Conexión a través de firewalls de IP

Para controlar aún más el acceso al servicio de búsqueda, puede crear reglas de firewall de entrada que permitan el acceso a una dirección IP específica o a un intervalo de direcciones IP. Todas las conexiones de cliente deben realizarse a través de una dirección IP permitida, o la conexión se denegará.

Ejemplo de diagrama de arquitectura para el acceso restringido de IP

Puede usar el portal para configurar el acceso de entrada.

Como alternativa, puede usar las API REST de administración. Desde la versión de API 2020-03-13, con el parámetro IpRule, puede restringir el acceso a su servicio mediante la identificación (de forma individual o en un intervalo) de las direcciones IP a las que quiera otorgar acceso a su servicio de búsqueda.

Conexión a un punto de conexión privado (aislamiento de red, sin tráfico de Internet)

Puede establecer un punto de conexión privado para Azure Cognitive Search, lo que permite a un cliente de una red virtual obtener acceso de forma segura a los datos de un índice de búsqueda a través de una instancia de Private Link.

El punto de conexión privado usa una dirección IP del espacio de direcciones de la red virtual para las conexiones al servicio de búsqueda. El tráfico de red entre el cliente y el servicio de búsqueda atraviesa la red virtual y un vínculo privado de la red troncal de Microsoft, lo que elimina la exposición a la red pública de Internet. Una red virtual permite establecer una comunicación segura entre recursos, con su red local y con Internet.

Diagrama de la arquitectura de ejemplo para el acceso de punto de conexión privado

Aunque esta solución es la más segura, el uso de servicios adicionales supone un costo adicional, por lo que debe comprender claramente las ventajas antes de profundizar en ella. Para más información sobre los costos, consulte la página de precios. Para obtener más información sobre cómo funcionan conjuntamente estos componentes, vea el vídeo que se encuentra en la parte superior de este artículo. La opción de punto de conexión privado se trata a partir del minuto 5:48 del vídeo. Para obtener instrucciones sobre cómo configurar el punto de conexión, consulte Creación de un punto de conexión privado para una conexión segura a Azure Cognitive Search.

Conexiones salientes a servicios externos

Los indexadores y los conjuntos de aptitudes son objetos que pueden establecer conexiones externas. Proporcionará información de conexión como parte de la definición de objetos mediante uno de estos mecanismos.

  • Credenciales en la cadena de conexión

  • Identidad administrada en la cadena de conexión

    Puede configurar una identidad administrada para que busque en un servicio de confianza al acceder a los datos de Azure Storage, Azure SQL, Cosmos DB u otros orígenes de datos de Azure. Una identidad administrada es un sustituto de las credenciales o las claves de acceso en la conexión. Para obtener más información acerca de esta capacidad, vea Configuración de una conexión de indexador a un origen de datos mediante una identidad administrada.

Authentication

En el caso de las solicitudes de entrada al servicio de búsqueda, la autenticación se realiza a través de un clave de API (una cadena formada por números y letras generados aleatoriamente) que demuestra que la solicitud proviene de un origen de confianza. Como alternativa, hay nueva compatibilidad con la autenticación de Azure Active Directory y la autorización basada en roles, actualmente en versión preliminar.

Las solicitudes de salida realizadas por un indizador están sujetas a la autenticación por parte del servicio externo. El subservicio del indizador de Cognitive Search se puede convertir en un servicio de confianza en Azure y conectarse a otros servicios mediante una identidad administrada. Para obtener más información, consulte Configuración de una conexión de indexador a un origen de datos mediante una identidad administrada.

Autorización

Cognitive Search proporciona diferentes modelos de autorización para la administración de contenido y la administración de servicios.

Autorización para la administración de contenido

La autorización para el contenido y las operaciones relacionadas con el contenido son de acceso de escritura, tal y como se confiere a través de la clave de API proporcionada en la solicitud. La clave de API es un mecanismo de autenticación, pero también autoriza el acceso según el tipo de clave de API.

  • Clave de administración (permite el acceso de lectura y escritura para operaciones de creación, lectura, actualización y eliminación en el servicio de búsqueda) creada al aprovisionar el servicio.

  • Clave de consulta (permite el acceso de solo lectura a la colección de documentos de un índice) creada según la necesidad y diseñada para las aplicaciones cliente que emiten consultas.

En el código de la aplicación, especifique el punto de conexión y una clave de API para permitir el acceso al contenido y las opciones. Un punto de conexión puede ser el propio servicio, la colección de índices, un índice específico, una colección de documentos o un documento específico. Cuando se encadenan juntos, el punto de conexión, la operación (por ejemplo, una solicitud de creación o actualización) y el nivel de permiso (derechos completos o de solo lectura basados en la clave) constituyen la fórmula de seguridad que protege el contenido y las operaciones.

Nota

La autorización para las operaciones del plano de datos mediante el control de acceso basado en roles de Azure está ahora en versión preliminar. Puede usar esta funcionalidad en versión preliminar si desea usar asignaciones de roles en lugar de claves de API.

Control del acceso a los índices

En Azure Cognitive Search, un índice individual no es un objeto protegible. En su lugar, el acceso a un índice se determina en la capa de servicio (acceso de lectura o escritura según la clave de API que proporcione), junto con el contexto de una operación.

Para el acceso de solo lectura, puede estructurar las solicitudes de consulta para conectarse con una clave de consulta e incluir el índice específico utilizado por la aplicación. En una solicitud de consulta, no existe el concepto de combinación de índices ni de acceso simultáneo a varios índices para que todas las solicitudes tengan un único índice de destino por definición. Por lo tanto, la construcción de la solicitud de consulta misma (una clave y un índice único de destino) define el límite de seguridad.

Los accesos de administrador y de desarrollador a los índices no se diferencian: ambos necesitan tener acceso de escritura para crear, eliminar y actualizar objetos administrados por el servicio. Cualquier persona con una clave de administración del servicio puede leer, modificar o eliminar cualquier índice en el mismo servicio. Para la protección contra la eliminación accidental o malintencionada de índices, su control de código fuente interno para los recursos de código es la solución para revertir una eliminación o modificación de índices no deseada. Azure Cognitive Search incluye conmutación por error dentro del clúster para garantizar la disponibilidad, pero no almacena ni ejecuta el código propietario utilizado para crear o cargar los índices.

Para soluciones multiinquilino que requieren límites de seguridad en el nivel de índice, estas soluciones suelen incluir un nivel intermedio que los clientes utilizan para controlar el aislamiento de índices. Para más información sobre los casos de uso de varios inquilinos, consulte Modelos de diseño de aplicaciones SaaS para varios inquilinos y Azure Cognitive Search.

Control del acceso a los documentos

Si necesita tener un control por usuario pormenorizado de los resultados de la búsqueda, puede crear filtros de seguridad en las consultas, que devuelven documentos asociados con una identidad de seguridad determinada.

Conceptualmente equivalente a "seguridad de nivel de fila", la autorización de contenido en el índice no se admite de forma nativa mediante roles predefinidos o asignaciones de roles que se asignan a entidades en Azure Active Directory. Los permisos de usuario para datos de sistemas externos, como Cosmos DB, no se transfieren con esos datos cuando Cognitive Search los indexa.

Las alternativas para las soluciones que requieren "seguridad de nivel de fila" incluyen la creación de un campo en el origen de datos que representa un grupo de seguridad o una identidad de usuario y, a continuación, el uso de filtros en Cognitive Search para recortar de forma selectiva los resultados de la búsqueda de documentos y contenido en función de las identidades. La tabla siguiente describe dos enfoques para recortar el contenido no autorizado de los resultados de la búsqueda.

Enfoque Descripción
Recorte de seguridad basado en filtros de identidad Documenta el flujo de trabajo básico para implementar el control de acceso de identidades de usuario. Trata la incorporación de identificadores de seguridad a un índice y, a continuación, se explica el filtrado por ese campo para no incluir el contenido prohibido en los resultados.
Recorte de seguridad basado en identidades de Azure Active Directory En este artículo se amplía el artículo anterior y se proporcionan los pasos necesarios para recuperar identidades de Azure Active Directory (Azure AD), uno de los servicios gratuitos de la plataforma de nube de Azure.

Autorización para la administración de servicios

Las operaciones de administración de servicios se autorizan mediante el control de acceso basado en rol de Azure (RBAC de Azure). RBAC de Azure es un sistema de autorización basado en Azure Resource Manager para el aprovisionamiento de recursos de Azure.

En Azure Cognitive Search, Resource Manager se usa para crear o eliminar el servicio, administrar las claves de API y escalar el servicio. Como tal, las asignaciones de roles de Azure determinan quién puede realizar esas tareas, independientemente de si se usa el portal, PowerShell o las API de REST de administración.

Se han definido tres roles básicos para la administración de servicios de búsqueda. Las asignaciones de roles se pueden realizar con cualquier metodología compatible (portal, PowerShell, etc.) y se respetan en todo el servicio. Los roles Propietario y Colaborador pueden realizar diversas funciones de administración. Puede asignar el rol Lector a los usuarios que solo ven información esencial.

Nota

Mediante el uso de mecanismos de aplicación en todo el sistema de Azure, puede bloquear una suscripción o un recurso para evitar la eliminación accidental o no autorizada del servicio de búsqueda por parte de usuarios con derechos de administrador. Para más información, consulte Bloqueo de recursos para impedir eliminación inesperada.

Protección de datos

En la capa de almacenamiento, el cifrado de datos está integrado en todo el contenido administrado por el servicio guardado en el disco, incluidos los índices, los mapas de sinónimos y las definiciones de indizadores, orígenes de datos y conjuntos de aptitudes. Opcionalmente, puede agregar claves administradas por el cliente (CMK) para el cifrado complementario del contenido indexado. En el caso de los servicios creados después del 1 de agosto de 2020, el cifrado de CMK se extiende a los datos de los discos temporales, para el cifrado doble completo del contenido indexado.

Datos en tránsito

En Azure Cognitive Search, el cifrado empieza por las conexiones y las transmisiones y se extiende al contenido almacenado en el disco. En el caso de los servicios de búsqueda en la red pública de Internet, Azure Cognitive Search escucha en el puerto HTTPS 443. Todas las conexiones de cliente a servicio usan el cifrado TLS 1.2. Las versiones anteriores (1.0 o 1.1) no se admiten.

Datos cifrados en reposo

En el caso de los datos que administra internamente el servicio de búsqueda, en la tabla siguiente se describen los modelos de cifrado de datos. Algunas características, como el almacén de conocimiento, el enriquecimiento incremental y la indización basada en indizador, leen o escriben en estructuras de datos de otros servicios de Azure. Esos servicios tienen sus propios niveles de compatibilidad de cifrado independientes de Azure Cognitive Search.

Modelo Claves      Requisitos      Restricciones Se aplica a
Cifrado del servidor Claves administradas por Microsoft Ninguno (integrados) Ninguna, disponible en todos los niveles, en todas las regiones, para el contenido creado después del 24 de enero de 2018. Contenido (índices y mapas de sinónimos) y definiciones (indizadores, orígenes de datos, conjuntos de aptitudes)
Cifrado del servidor Claves administradas por el cliente Azure Key Vault Disponible en niveles facturables, en todas las regiones, para el contenido creado después de enero de 2019. Contenido (índices y mapas de sinónimos) en discos de datos
Cifrado doble del servidor Claves administradas por el cliente Azure Key Vault Disponible en niveles facturables, en regiones seleccionadas, en servicios de búsqueda después del 1 de agosto de 2020. Contenido (índices y mapas de sinónimos) en discos de datos y discos temporales

Claves administradas por el servicio

El cifrado administrado por el servicio es una operación interna de Microsoft que se basa en Azure Storage Service Encryption con cifrado AES de 256 bits. Se produce automáticamente en todas las indizaciones, incluidas las actualizaciones incrementales a índices que no están totalmente cifrados (creados antes de enero de 2018).

Claves administradas por el cliente (CMK)

Las claves administradas por el cliente requieren un servicio facturable adicional, Azure Key Vault, que puede estar en otra región, pero en la misma suscripción que Azure Cognitive Search. Al habilitar el cifrado de CMK aumenta el tamaño de los índices y empeora el rendimiento de las consultas. Según las observaciones hechas hasta la fecha, puede esperar un aumento del 30 al 60% en los tiempos de consultas, aunque el rendimiento real variará según la definición del índice y los tipos de consultas. Debido a este impacto en el rendimiento, se recomienda habilitar esta característica solo en los índices que realmente la necesitan. Para obtener más información, vea Configuración de claves administradas por el cliente para el cifrado de datos en Azure Cognitive Search.

Cifrado doble

En Azure Cognitive Search, el cifrado doble es una extensión de CMK. Se entiende que se trata de un cifrado doble (una vez mediante CMK y otra mediante claves administradas por el servicio) y de ámbito general, que engloba el almacenamiento a largo plazo que se escribe en un disco de datos y el almacenamiento a corto plazo escrito en discos temporales. El cifrado doble se implementa en los servicios creados después de fechas específicas. Para más información, consulte Cifrado doble.

Administración de la seguridad

claves de API

La dependencia de la autenticación basada en claves de API significa que debe tener un plan para volver a generar la clave de administración a intervalos regulares, según los procedimientos recomendados de seguridad de Azure. Hay un máximo de dos claves de administrador por servicio de búsqueda. Para más información acerca de protección y administración de claves de API, vea Creación y administración de claves de API.

Registros de actividad y diagnóstico

Cognitive Search no registra las identidades de usuario, por lo que no puede hacer referencia a los registros para obtener información sobre un usuario específico. Sin embargo, el servicio registra las operaciones de creación, lectura, actualización y eliminación, que es posible que pueda correlacionar con otros registros para comprender la intervención de acciones específicas.

Por medio de alertas y de la infraestructura de registro de Azure, puede seleccionar picos de volumen de consultas u otras acciones que se desvían de las cargas de trabajo previstas. Para obtener más información sobre la configuración de registros, vea Recopilación y análisis de datos de registro y Supervisión de solicitudes de consulta.

Certificaciones y cumplimiento

Azure Cognitive Search participa en auditorías regulares, y tiene la certificación de varios estándares globales, regionales y específicos del sector para la nube pública y Azure Government. Para obtener la lista completa, descargue las notas del producto de las ofertas de cumplimiento de Microsoft Azure.

En el caso del cumplimiento, puede usar Azure Policy para implementar los procedimientos recomendados de alta seguridad de Azure Security Benchmark. Azure Security Benchmark es una colección de recomendaciones de seguridad codificadas en controles de seguridad que se asignan a acciones clave que se deben realizar para mitigar las amenazas a los servicios y los datos. Actualmente hay 11 controles de seguridad, entre los que se incluyen Seguridad de red, Registro y supervisión y Protección de datos, por nombrar algunos.

Azure Policy es una capacidad integrada en Azure que ayuda a administrar el cumplimiento de varios estándares, incluidos los de Azure Security Benchmark. En el caso de los bancos de pruebas conocidos, Azure Policy proporciona definiciones integradas que ofrecen tanto criterios como una respuesta accionable que aborda el no cumplimiento.

En Azure Cognitive Search, actualmente hay una definición integrada. Es para el registro de diagnóstico. Con ella integrada, puede asignar una directiva que identifique cualquier servicio de búsqueda que no tenga registro de diagnóstico y lo active. Para obtener más información, vea Controles de Cumplimiento normativo de Azure Policy para Azure Cognitive Search.

Vea este vídeo

Vea este vídeo de resumen para obtener información general sobre la arquitectura de seguridad y cada categoría de características.

Consulte también