Compartir a través de


Procedimientos recomendados para proteger secretos

En este artículo se proporcionan instrucciones sobre cómo proteger sus secretos y reducir el riesgo de acceso no autorizado. Siga estas instrucciones para asegurarse de que no almacena información confidencial, como las credenciales en el código, los repositorios de GitHub, los registros, las canalizaciones de integración continua o implementación continua (CI/CD), etc. La guía en este artículo está hecha a partir de recomendaciones de servicios individuales, así como de Microsoft Cloud Security Benchmark (MCSB).

En este artículo se alinea con el modelo de seguridad de microsoft Zero Trust, que requiere comprobación explícita, acceso con privilegios mínimos y la suposición de infracción. Para conocer los controles de seguridad prescriptivos con cumplimiento de Azure Policy, consulte Microsoft Cloud Security Benchmark v2 - Privileged Access y MCSB v2 - Data Protection.

Detección y prevención de secretos

Antes de poder proteger sus secretos, necesita saber dónde están y evitar que se expongan.

  • Realizar una auditoría para identificar secretos: realizar una auditoría exhaustiva de los sistemas y aplicaciones ayuda a identificar toda la información confidencial que necesita protección. Esto incluye contraseñas, claves de API, cadenas de conexión y otras credenciales. Las auditorías periódicas garantizan que los nuevos secretos se tengan en cuenta y los existentes se administren correctamente. Incluso los secretos creados dinámicamente, como los tokens de OAuth, que pueden ser temporales, deben protegerse con el mismo rigor que los secretos a largo plazo.

  • Evite codificar los secretos de forma rígida: la inserción de secretos directamente en el código o los archivos de configuración es un riesgo de seguridad significativo. Si el código base está en peligro, también lo estarán sus secretos. En su lugar, use variables de entorno o herramientas de administración de configuración que mantengan los secretos fuera de su código fuente. Esta práctica minimiza el riesgo de exposición accidental y simplifica el proceso de actualización de secretos. Además, integrar la recuperación de secretos en su canalización de implementación automatizada y utilizar patrones de inyección de secretos puede prevenir que los secretos se expongan accidentalmente en registros o control de versiones. Para obtener más información, consulte Recomendaciones para proteger los secretos de aplicación.

  • Implementar herramientas de análisis de secretos: examinar periódicamente el código base para secretos incrustados puede evitar la exposición accidental. Herramientas como Azure DevOps Credential Scanner y GitHub examen de secretos pueden detectar y alertar automáticamente a los secretos encontrados en los repositorios. Integrar estas herramientas en el pipeline de CI/CD garantiza la supervisión continua. Trate cualquier secreto encontrado por estas herramientas de análisis como comprometido, lo que significa que debe revocarse y reemplazarse inmediatamente para mantener la integridad de su posición de seguridad.

Almacenamiento seguro y cifrado

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

  • Use almacenes de claves seguros: servicios como Azure Key Vault y Azure HSM administrado proporcionan características de seguridad sólidas, como el control de acceso, el registro y la rotación automática. Este enfoque centraliza la administración de los secretos y reduce el riesgo de accesos no autorizados. Para una mayor seguridad, especialmente para secretos altamente confidenciales o críticos, considere la posibilidad de cifrar el secreto con un almacén de claves en un modelo de seguridad de hardware (HSM), que ofrece una protección mejorada en comparación con los almacenes de secretos basados en software. Para obtener información general sobre todas las ofertas de administración de claves en Azure e instrucciones sobre las que elegir, consulte Administración de claves en Azure y Cómo elegir la solución de administración de claves adecuada.

  • Cifrar secretos en reposo y en tránsito: Azure Key Vault almacena secretos de forma segura utilizando cifrado envolvente, donde las Claves de Cifrado de Datos (DEKs) se cifran mediante Claves de Cifrado de Claves (KEKs), proporcionando una capa adicional de seguridad. Use protocolos de comunicación seguros como HTTPS para cifrar los datos en tránsito entre las aplicaciones y el almacén de claves. En Azure, el cifrado en reposo se implementa en varios servicios mediante el cifrado AES 256, mientras que los datos en tránsito se protegen mediante TLS y MACsec. Para más información, consulte Cifrado en reposo y en movimiento.

  • Implementación del aislamiento de red: configure firewalls y grupos de seguridad de red para restringir el acceso a las bóvedas de claves. Solo permita que las aplicaciones y servicios de confianza accedan a los secretos, minimizando la superficie expuesta a ataques y evitando el acceso no autorizado. Considere usar varios almacenes de claves para crear límites de aislamiento en distintos componentes, garantizando que, si hay un componente que se vea en peligro, no se pueda obtener el control sobre otros secretos ni sobre 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.

  • Aprovechar identidades administradas: Identidades administradas en Azure proporcionan una manera segura para que las aplicaciones se autentiquen en los servicios de Azure sin almacenar credenciales en el código. Al habilitar identidades administradas para recursos de Azure, puede acceder de forma segura a Azure Key Vault y otros servicios, lo que reduce la necesidad de controlar los secretos manualmente. Este enfoque no solo minimiza la creación de secretos, sino que también reduce el área expuesta a posibles infracciones, ya que la responsabilidad de administrar las credenciales se delega a la plataforma.

  • Aplicar control de acceso pormenorizado: siga el principio de privilegios mínimos aplicando el control de acceso pormenorizado a los secretos. Use el control de acceso basado en rol de Azure (RBAC) para asegurar que solo las entidades autorizadas tengan acceso a los secretos específicos. Revise y actualice periódicamente los permisos de acceso para evitar accesos no autorizados. Implemente roles distintos como el usuario, el administrador y el auditor para administrar el acceso a los secretos, lo que garantiza que solo las identidades de confianza tengan el nivel de permiso adecuado. Consulte la guía Azure Key Vault RBAC.

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.

  • Rotar secretos con regularidad: los secretos son susceptibles a la fuga o exposición con el tiempo. La rotación periódica de los secretos reduce el riesgo de accesos no autorizados. Puede rotar secretos en Azure Key Vault para ciertos secretos; para aquellos que no se pueden rotar automáticamente, establezca un proceso de rotación manual y asegúrese de que se eliminen cuando ya no estén en uso. La automatización del proceso de rotación de secretos y la creación de redundancia en la administración de sus secretos puede garantizar que la rotación no interrumpa la disponibilidad del servicio. Implementar la lógica de reintento y los patrones de acceso simultáneos en el código pueden ayudar a minimizar los problemas durante la ventana de rotación.

  • Distribuir secretos de forma segura: al distribuir secretos, asegúrese de que se comparten de forma segura dentro y fuera de la organización. Use herramientas diseñadas para compartir de forma segura e incluya procedimientos de recuperación de secretos en sus planes de recuperación ante desastres. Si una clave está en peligro o se filtra, se debe volver a generar inmediatamente. Use claves distintas para cada consumidor en lugar de compartir claves, incluso si tienen patrones de acceso similares. Esta práctica simplifica la administración y revocación de claves, lo que garantiza que las claves en peligro se puedan revocar sin afectar a otros consumidores.

Supervisión y registro

La supervisión continua permite la detección de actividades sospechosas y apoya 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. Utilice el registro de Key Vault y/o servicios como Azure Monitor y Azure Event Grid, para supervisar todas las actividades relacionadas con sus secretos. Esto proporciona visibilidad sobre quién ha accedido a los secretos y ayuda a detectar cualquier comportamiento sospechoso o posibles incidentes de seguridad. Mantener seguimientos detallados de auditoría es fundamental para inspeccionar y validar el acceso a secretos, lo que puede ayudar a evitar el robo de identidad, evitar el rechazo y reducir la exposición innecesaria.

Instrucciones específicas del servicio para el control de secretos

Los servicios individuales pueden tener procedimientos recomendados adicionales e instrucciones para proteger los secretos. Estos son algunos ejemplos:

Pasos siguientes

Minimizar el riesgo para la seguridad es una responsabilidad compartida. Debe tomar medidas proactivas para proteger sus cargas de trabajo. Obtenga más información sobre la responsabilidad compartida en la nube.