Procedimientos recomendados para proteger secretos

Este artículo te ayuda a proteger secretos y reducir el riesgo de acceso no autorizado. Sigue esta guía para asegurarte de que no almacenas información sensible, como credenciales, en código, en repositorios de GitHub, registros o pipelines de integración continua/despliegue continuo (CI/CD). La guía de este artículo proviene de recomendaciones individuales de servicios y del Microsoft Cloud Security Benchmark (MCSB).

Este artículo se alinea con el modelo de seguridad de Microsoft Confianza cero, que requiere comprobación explícita, acceso con privilegios mínimos y la suposición de infracción. Para controles de seguridad prescriptivos que incluyen la aplicación de Azure Policy, véase Microsoft Cloud Security Benchmark v2: Acceso Privilegiado y MCSB v2: Protección de Datos.

Detección y prevención de secretos

Antes de poder proteger tus secretos, necesitas visibilidad sobre dónde existen. También necesitas controles que eviten la exposición antes de que ocurra.

  • Realiza una auditoría para identificar secretos: Audita tus sistemas y aplicaciones para identificar información sensible que necesita protección, como contraseñas, claves de API, cadenas de conexión y otras credenciales. Las auditorías regulares ayudan a garantizar que tu inventario tenga en cuenta nuevos secretos y que gestiones adecuadamente los secretos existentes. Protege los secretos creados dinámicamente, como tokens OAuth temporales, con la misma exigencia que los secretos a largo plazo.

  • Evita codificar secretos de forma rígida: Incrustar secretos directamente en el código o en archivos de configuración supone un riesgo de seguridad significativo. Si los atacantes comprometen tu base de código, también comprometen tus secretos. En su lugar, utiliza variables de entorno o herramientas de gestión de configuración que mantengan los secretos fuera del código fuente. Esta práctica minimiza el riesgo de exposición accidental y simplifica las actualizaciones secretas. Integra la recuperación de secretos en tu pipeline de despliegue automatizado y utiliza patrones de inyección secreta para ayudar a evitar exposiciones accidentales en registros o control de versiones. Para obtener más información, consulte Recomendaciones para proteger los secretos de aplicación.

  • Implementa herramientas de escaneo de secretos: Escanea regularmente tu base de código en busca de secretos incrustados para ayudar a evitar exposiciones accidentales. Herramientas como Azure DevOps Credential Scanner y GitHub Secret Scanning pueden detectar y alertarte automáticamente sobre secretos en repositorios. Integra estas herramientas en tu pipeline CI/CD para monitorización continua. Considera comprometido cualquier secreto encontrado mediante herramientas de escaneo. Revoquéala y revuélvela inmediatamente para mantener la integridad de tu postura de seguridad.

Almacenamiento seguro y cifrado

La protección de secretos requiere mecanismos de almacenamiento seguros y el cifrado adecuado en todas las fases.

  • Utiliza almacenes de claves seguros: Servicios como Azure Key Vault y Azure Key Vault Managed HSM ofrecen funciones de seguridad, incluyendo control de acceso, registro y rotación automática. Este enfoque centraliza la gestión secreta y reduce el riesgo de acceso no autorizado. Para secretos altamente sensibles o críticos, utiliza un almacenamiento de claves respaldado por módulo de seguridad de hardware (HSM) para una mayor protección en comparación con los almacenes secretos basados en software. Para escenarios de clave gestionados por el cliente, utiliza Azure Key Vault Premium tier, que al menos está respaldado por HSM. Utiliza Azure Key Vault Managed HSM para los requisitos de soberanía clave. Para una visión general de las ofertas de gestión de claves de Azure y orientación sobre qué elegir, consulta Gestión de claves en Azure y Cómo elegir la solución adecuada de gestión de claves.

  • Cifrar secretos en reposo y en tránsito: Azure Key Vault almacena de forma segura los secretos mediante el cifrado de sobre, en el que las claves de cifrado de claves cifran las claves de cifrado de datos para proporcionar otra capa de seguridad. Utiliza protocolos de comunicación seguros como HTTPS para cifrar los datos en tránsito entre tus aplicaciones y la bóveda de claves. En Azure, varios servicios implementan cifrado en reposo utilizando cifrado AES 256. TLS y MACsec aseguran datos seguros en tránsito. Para más información, véase el cifrado en reposo y en tránsito.

  • Implemente el aislamiento de red: configure firewalls y grupos de seguridad de red para restringir el acceso a los almacenes de claves. Permite que solo aplicaciones y servicios confiables accedan a tus secretos. Este enfoque minimiza la superficie de ataque y ayuda a prevenir accesos no autorizados. Considere la posibilidad de utilizar varios almacenes de claves para crear límites de aislamiento para los distintos componentes. Si los atacantes comprometen un componente, este no puede controlar otros secretos ni toda la carga de trabajo.

Control de acceso e identidad

La administración de quién y qué pueden acceder a los secretos es fundamental para mantener la seguridad.

  • Utiliza identidades gestionadas: Las identidades gestionadas en Azure proporcionan una forma segura para que las aplicaciones se autentiquen en los servicios de Azure sin almacenar credenciales en el código. Habilitar identidades gestionadas para que los recursos de Azure accedan de forma segura a Azure Key Vault y otros servicios, reduciendo la necesidad de gestionar secretos manualmente. Este enfoque minimiza la creación de secretos y reduce la superficie de posibles brechas porque la plataforma gestiona las credenciales.

  • Aplicar control de acceso pormenorizado: siga el principio de privilegios mínimos aplicando el control de acceso pormenorizado a los secretos. Utiliza el control de acceso basado en roles de Azure (Azure RBAC) para asegurarte de que solo las entidades autorizadas tengan acceso a secretos específicos. Revise y actualice periódicamente los permisos de acceso para evitar accesos no autorizados. Implementa roles distintos como usuario, administrador y auditor para gestionar el acceso a los secretos. Esta práctica ayuda a garantizar que solo las identidades de confianza tengan el nivel adecuado de permiso. Para más información, consulta la guía RBAC de Azure Key Vault.

Administración del ciclo de vida de secretos

Los secretos requieren administración continua a lo largo de su ciclo de vida, desde la creación hasta la retirada.

  • Rote los secretos con regularidad: los secretos son susceptibles a la filtración o exposición con el tiempo. Rota tus secretos regularmente para reducir el riesgo de acceso no autorizado. Puede rotar secretos en Azure Key Vault para determinados secretos. Para los secretos que no puedan rotarse automáticamente, establezca un proceso de rotación manual y elimínelos cuando dejen de utilizarse. Automatiza la rotación de secretos e integra redundancia en tu gestión de secretos para ayudar a garantizar que la rotación no interrumpa la disponibilidad de servicios. Implementa lógica de reintentos y patrones de acceso concurrente en tu código para ayudar a minimizar problemas durante la ventana de rotación.

  • Distribuye secretos de forma segura: Cuando distribuyas secretos, compártelos de forma segura dentro y fuera de la organización. Utiliza herramientas diseñadas para compartir de forma segura e incluye procedimientos secretos de recuperación en tus planes de recuperación ante desastres. Si los atacantes comprometen o filtran una clave, regénerala inmediatamente. Utiliza claves distintas para cada consumidor en lugar de compartir claves, incluso si los consumidores tienen patrones de acceso similares. Esta práctica simplifica la gestión y revocación de claves, por lo que puedes revocar las claves comprometidas sin afectar a otros consumidores.

Supervisión y registro

La monitorización continua detecta actividades sospechosas y respalda los requisitos de cumplimiento.

  • Supervisar y registrar el acceso: habilite el registro y la supervisión para su sistema de gestión de secretos para rastrear el acceso y el uso. Utiliza Key Vault logging, Azure Monitor o Azure Event Grid para monitorizar todas las actividades relacionadas con tus secretos. La monitorización proporciona visibilidad sobre quién accedió a tus secretos y ayuda a detectar comportamientos sospechosos o posibles incidentes de seguridad. Mantener registros de auditoría detallados para inspeccionar y validar el acceso a secretos, lo que puede ayudar a prevenir el robo de identidad, evitar la repudiación y reducir la exposición innecesaria.

Instrucciones específicas del servicio para el control de secretos

Los servicios individuales pueden tener más buenas prácticas y orientación para proteger secretos. Algunos ejemplos son:

Pasos siguientes

Minimizar el riesgo para la seguridad es una responsabilidad compartida. Toma medidas proactivas para asegurar tus cargas de trabajo. Para más información, consulte Responsabilidad compartida en la nube.