Introducción a la seguridad de bases de datos en Azure Cosmos DB

SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table

En este artículo se describen los procedimientos recomendados de seguridad de bases de datos y las principales características que ofrece Azure Cosmos DB para ayudarle a evitar y detectar infracciones en bases de datos, así como a responder a estos incidentes.

Novedades en la seguridad de Azure Cosmos DB

El cifrado en reposo ahora está disponible para los documentos y copias de seguridad almacenados en Azure Cosmos DB en todas las regiones de Azure. El cifrado en reposo se aplica automáticamente a los clientes nuevos y existentes de estas regiones. No es necesario configurar nada. Obtiene la misma latencia, rendimiento, disponibilidad y funcionalidad excelentes que antes con la ventaja de saber que los datos son seguros y de protegerlos con el cifrado en reposo. Los datos almacenados en su cuenta de Azure Cosmos DB se cifran de forma automática y sin problemas con claves administradas por Microsoft mediante claves administradas por el servicio. También puede optar por agregar una segunda capa de cifrado con las claves que administra mediante claves administradas por el cliente o CMK.

¿Cómo puedo proteger mi base de datos?

La seguridad de los datos constituye una responsabilidad compartida entre el cliente y el proveedor de base de datos. Dependiendo del proveedor de base de datos que elija, puede variar el nivel de responsabilidad que asumir. Si elige una solución local, debe proporcionar todos los elementos, desde la protección de extremo a extremo hasta la seguridad física del hardware, lo que no es tarea fácil. Si elige un proveedor de base de datos en la nube de plataforma como servicio (PaaS) como Azure Cosmos DB, se reduce considerablemente el área de preocupación. En la siguiente imagen, que se tomó prestada de las notas del producto Shared Responsibilities for Cloud Computing (Responsabilidades compartidas de la informática en la nube), se muestra cómo se reduce la responsabilidad con un proveedor de PaaS como Azure Cosmos DB.

Screenshot that shows customer and database provider responsibilities.

En el diagrama anterior se muestran los componentes de seguridad en la nube de alto nivel, pero, en una solución de base de datos, ¿por qué debe preocuparse exactamente? ¿Cómo puede comparar soluciones?

Recomendamos la siguiente lista de comprobación de requisitos para comparar sistemas de bases de datos:

  • Seguridad de red y la configuración de firewall
  • Autenticación de usuarios y controles de usuario muy específicos
  • Capacidad de replicar datos globalmente en caso de errores regionales
  • Capacidad de conmutar por error de un centro de datos a otro
  • Replicación de datos locales dentro de un centro de datos
  • Copias de seguridad de datos automáticas
  • Restauración de los datos eliminados de las copias de seguridad
  • Protección y aislamiento de datos confidenciales
  • Supervisión de ataques
  • Respuesta a alertas
  • Capacidad de aplicar límites geografos a datos para cumplir las restricciones de gobernanza de datos
  • Protección física de los servidores en centros de datos protegidos
  • Certificaciones

Aunque puede parecer obvio, algunas infracciones recientes de bases de datos de gran envergadura nos recuerdan lo importantes y simples que son los siguientes requisitos:

  • Servidores revisados que se mantengan actualizados
  • Protocolo HTTPS de forma predeterminada/cifrado TLS
  • Cuentas administrativas con contraseñas seguras

¿Cómo puede proteger Azure Cosmos DB mi base de datos?

Echemos un vistazo a la lista anterior. ¿Cuántos de esos requisitos de seguridad proporciona Azure Cosmos DB? Todos.

Vamos a explorar cada uno en detalle.

Requisito de seguridad Enfoque de seguridad de Azure Cosmos DB
Seguridad de las redes Usar un firewall IP es la primera línea de defensa para proteger una base de datos. Azure Cosmos DB admite controles de acceso basados en IP orientados a directivas para agregar compatibilidad con el firewall de entrada. Los controles de acceso basados en IP son similares a las reglas de firewall que usan los sistemas de base de datos tradicionales. Sin embargo, se han ampliado para que una cuenta de bases de datos de Azure Cosmos DB sea accesible desde un conjunto aprobado de máquinas o servicios en la nube. Para obtener más información, consulte Compatibilidad con un firewall de Azure Cosmos DB.

Con Azure Cosmos DB puede habilitar una dirección IP específica (168.61.48.0), un intervalo IP (168.61.48.0/8) y combinaciones de direcciones IP e intervalos.

Azure Cosmos DB bloquea todas las solicitudes que se originan desde máquinas fuera de esta lista de permitidos. Las solicitudes de máquinas aprobadas y servicios en la nube deben completar el proceso de autenticación para poder controlar el acceso a los recursos.

Puede usar etiquetas de servicio de red virtual para lograr el aislamiento de red y proteger los recursos de Azure Cosmos DB desde el Internet general. Utilice etiquetas de servicio en lugar de direcciones IP específicas al crear reglas de seguridad. Al especificar el nombre de la etiqueta de servicio (por ejemplo, AzureCosmosDB) en el campo de origen o destino apropiado de una regla, puede permitir o denegar el tráfico para el servicio correspondiente.
Authorization Azure Cosmos DB utiliza el código de autenticación de mensajes basado en hash (HMAC) para la autorización.

Cada solicitud se cifra mediante la clave de cuenta secreta, y el hash codificado en base64 subsiguiente se envía con cada llamada a Azure Cosmos DB. Para validar la solicitud, Azure Cosmos DB utiliza la clave secreta y las propiedades correctas para generar un código hash y, luego, compara el valor con el que muestra la solicitud. Si los dos valores coinciden, la operación se autoriza correctamente y se procesa la solicitud. Si los valores no coinciden, se produce un error de autorización y se rechaza la solicitud.

Puede usar una clave principal o un token de recurso, lo que permite acceso muy específico a un recurso, por ejemplo, un documento.

Para obtener más información, consulte Protección del acceso a los recursos de Azure Cosmos DB.
Usuarios y permisos Mediante la clave principal de la cuenta, puede crear recursos de usuario y de permiso por base de datos. Un token de recurso está asociado con un permiso en una base de datos y determina si el usuario tiene acceso (lectura y escritura, de solo lectura, o ninguno) aun recurso de aplicación en la base de datos. Los recursos de aplicación incluyen contenedores, documentos, datos adjuntos, procedimientos almacenados, desencadenadores y UDF. El token de recurso se usa luego durante la autenticación para proporcionar o denegar el acceso al recurso.

Para obtener más información, consulte Protección del acceso a los recursos de Azure Cosmos DB.
Integración de Active Directory (control de acceso basado en roles de Azure) También puede proporcionar o restringir el acceso a la cuenta de Azure Cosmos DB, la base de datos, el contenedor y las ofertas (rendimiento) mediante el control de acceso (IAM) en Azure Portal. IAM proporciona una funcionalidad de control de acceso basado en roles y se integra con Active Directory. Puede usar roles integrados o personalizados para usuarios y grupos. Para obtener más información, consulte Integración de Active Directory.
Replicación global Azure Cosmos DB ofrece una distribución global llave en mano, lo que permite replicar los datos en cualquiera de los centros de datos de Azure de todo el mundo de forma sencilla. Gracias a la replicación global, podrá realizar un escalado a nivel internacional y proporcionar un acceso de latencia baja a datos de todo el mundo.

En el contexto de seguridad, la replicación global garantiza la protección de los datos frente a errores regionales.

Para obtener más información, consulte Distribuir datos globalmente.
Conmutaciones por error regionales Si se han replicado los datos en más de un centro de datos, Azure Cosmos DB sustituirá automáticamente las operaciones en caso de que se desconecte un centro de datos regional. Puede crear una lista de prioridades de regiones de conmutación por error con las regiones en las que se replicarán los datos.

Para obtener más información, consulte Conmutaciones por error regionales de Azure Cosmos DB.
Replicación local Incluso dentro de un solo centro de datos, Azure Cosmos DB replica automáticamente los datos para lograr una alta disponibilidad, lo que posibilita diversos niveles de coherencia. Esta replicación garantiza un Acuerdo de Nivel de Servicio con disponibilidad del 99,99 % para todas las cuentas de una sola región y todas las cuentas de varias regiones con coherencia moderada y disponibilidad de lectura del 99,999 % para todas las cuentas de base de datos de varias regiones.
Copias de seguridad en línea automatizadas Las copias de seguridad de las bases de datos de Azure Cosmos DB se realizan de manera periódica y se guardan en un almacén con redundancia geográfica.

Para obtener más información, consulte Copias de seguridad y restauración automáticas en línea con Azure Cosmos DB.
Restauración de los datos eliminados Puede usar las copias de seguridad automatizadas en línea para recuperar los datos que puede que haya eliminado accidentalmente hasta unos 30 días después del evento.

Para obtener más información, consulte Copias de seguridad y restauración automáticas en línea con Azure Cosmos DB
Protección y aislamiento de datos confidenciales Todos los datos de las regiones incluidos en Novedades ahora se cifran en reposo.

Los datos personales y otros datos confidenciales se pueden aislar en contenedores específicos. Además, se puede limitar el acceso de escritura-lectura o de solo lectura a usuarios concretos.
Supervisión de los ataques Use los registros de auditoría y los registros de actividad para supervisar la actividad normal y la anómala de su cuenta. Puede ver qué operaciones se realizaron en los recursos. Estos datos incluyen quién inició la operación, cuándo se produjo, el estado y más información.
Respuesta a ataques Una vez que se ha puesto en contacto con el equipo de Soporte técnico de Azure para informar de un posible ataque, se inicia un proceso de respuesta a incidentes de cinco pasos. El objetivo es restaurar la seguridad y las operaciones normales del servicio. El proceso restaura los servicios lo antes posible después de que se detecte un problema y se inicie una investigación.

Para obtener más información, consulte Respuesta de seguridad en la nube de Microsoft Azure.
Geovalla Azure Cosmos DB garantiza la gobernanza de datos para regiones soberanas (por ejemplo, Alemania, China y US Government).
Instalaciones protegidas Los datos de Azure Cosmos DB se almacenan en unidades de estado sólido en los centros de datos protegidos de Azure.

Para obtener más información, consulte Centros de datos globales de Microsoft.
HTTPS, SSL y cifrado TLS Todas las conexiones a Azure Cosmos DB admiten HTTPS. Azure Cosmos DB admite niveles de TLS de hasta 1.2 (incluido).
Es posible aplicar un nivel de TLS mínimo en el lado servidor. Para hacerlo, consulte la guía de autoservicio Cumplimiento mínimo de la versión de TLS en Azure Cosmos DB.
Cifrado en reposo Todos los datos almacenados en Azure Cosmos DB se cifran en reposo. Obtenga más información en Cifrado de Azure Cosmos DB en reposo.
Servidores revisados Como una base de datos administrada, Azure Cosmos DB elimina la necesidad de administrar y aplicar revisiones a servidores, ya que esto se realiza automáticamente.
Cuentas administrativas con contraseñas seguras Es imposible tener una cuenta administrativa sin contraseña en Azure Cosmos DB.

La seguridad mediante TLS y la autenticación basada en secreto HMAC están incorporadas de manera predeterminada.
Certificaciones de protección de datos y seguridad Para obtener la lista más actualizada de certificaciones, consulte Cumplimiento de Azure y el documento de cumplimiento de Azure más reciente con todas las certificaciones de Azure, incluido Azure Cosmos DB.

En la captura de pantalla siguiente se muestra cómo puede usar los registros de auditoría y los registro de actividad para supervisar su cuenta. Screenshot that shows activity logs for Azure Cosmos DB.

Claves principal o secundaria

Las claves principal o secundaria proporcionan acceso a todos los recursos administrativos de la cuenta de base de datos. Claves principal o secundaria:

  • Proporcionan acceso a cuentas, bases de datos, usuarios y permisos.
  • No se pueden usar para proporcionar acceso pormenorizado a contenedores y documentos.
  • Se crean durante la creación de una cuenta.
  • Se pueden regenerar en cualquier momento.

Cada cuenta consta de dos claves: una principal y una secundaria. El fin de las claves dobles es que pueda regenerar, o distribuir claves, lo que proporciona un acceso continuo a su cuenta y sus datos.

Las claves principal y secundaria se incluyen en dos versiones: de lectura y escritura y de solo lectura. Las claves de solo lectura permiten operaciones de lectura en la cuenta. No proporcionan acceso a los recursos de permisos de lectura.

Rotación y regeneración de claves

El proceso de rotación y regeneración de claves es sencillo. En primer lugar, asegúrese de que la aplicación usa de forma coherente la clave principal o la clave secundaria para acceder a la cuenta de Azure Cosmos DB. A continuación, siga los pasos de la sección siguiente. Si desea supervisar la regeneración y actualizaciones de claves de la cuenta, consulte Supervisión de las actualizaciones de clave con métricas y alertas.

Si la aplicación usa actualmente la clave principal

  1. Vaya a la cuenta de Azure Cosmos DB en Azure Portal.

  2. Seleccione Claves en el menú de la izquierda y después Regenerar clave secundaria en los puntos suspensivos (...) situados a la derecha de la clave secundaria.

    Screenshot showing how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

  3. Compruebe que la nueva clave secundaria funciona de forma coherente con la cuenta de Azure Cosmos DB. La regeneración de claves puede tardar entre un minuto y varias horas, en función del tamaño de la cuenta de Azure Cosmos DB.

  4. Reemplace la clave principal por la clave secundaria en la aplicación.

  5. Vuelva a Azure Portal y desencadene la regeneración de la clave principal.

    Screenshot showing how to regenerate the primary key in the Azure portal when used with the NoSQL API.

Si la aplicación usa actualmente la clave secundaria

  1. Vaya a la cuenta de Azure Cosmos DB en Azure Portal.

  2. Seleccione Claves en el menú de la izquierda y después Regenerar clave principal en los puntos suspensivos (...) situados a la derecha de la clave principal.

    Screenshot that shows how to regenerate the primary key in the Azure portal when used with the NoSQL API.

  3. Compruebe que la nueva clave principal funciona de forma coherente con la cuenta de Azure Cosmos DB. La regeneración de claves puede tardar entre un minuto y varias horas, en función del tamaño de la cuenta de Azure Cosmos DB.

  4. Reemplace la clave secundaria por la clave principal en la aplicación.

  5. Vuelva a Azure Portal y desencadene la regeneración de la clave secundaria.

    Screenshot that shows how to regenerate the secondary key in the Azure portal when used with the NoSQL API.

Seguimiento del estado de regeneración de claves

Después de girar o regenerar una clave, puede realizar un seguimiento de su estado desde el registro de actividad. Use los pasos siguientes para realizar un seguimiento del estado.

  1. Inicie sesión en Azure Portal y vaya a la cuenta de Azure Cosmos DB.

  2. Seleccione Claves en el menú izquierdo. Debería ver la última fecha de regeneración de claves debajo de cada clave.

    Screenshot that shows status of key regeneration from the activity log.

    Se recomienda regenerar las claves al menos una vez cada 60 días. Si la última regeneración fue hace más de 60 días, verá un icono de advertencia. Además, podría ver que la clave no se registró. Si este es el caso, su cuenta se creó antes del 18 de junio de 2022 y las fechas no se registraron. Sin embargo, debería poder volver a generar y ver la nueva fecha de última regeneración de la nueva clave.

  3. Debería ver los eventos de regeneración de claves junto con el estado, la hora a la que se emitió la operación y la información del usuario que inició la regeneración de claves. La operación de generación de claves se inicia con el estado Aceptado. Cambia a Iniciado y, a continuación, a Correcto cuando finaliza la operación.

Pasos siguientes