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 esta guía para asegurarse de que no registra información confidencial, como credenciales en código, en repositorios de GitHub, registros, canalizaciones de integración continua/implementación continua (CI/CD), entre otros. La guía en este artículo está hecha a partir de recomendaciones de servicios individuales, así como de Microsoft Cloud Security Benchmark (MCSB).
Procedimientos recomendados generales
En el panorama digital actual, la protección de información confidencial, como las credenciales de la aplicación y los secretos, es fundamental. Una infracción puede provocar consecuencias graves, como pérdida de datos, penalizaciones financieras y daño a la reputación. La implementación de una estrategia completa de administración de secretos es esencial para mitigar estos riesgos.
Auditoría para identificar secretos
Para poder proteger sus secretos, debe saber dónde están. Dirigir 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.
Es importante tener en cuenta que 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.
Evitar secretos codificados 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 importante. 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 la canalización de implementación automatizada y usar patrones de inyección de secretos puede impedir que los secretos se expongan accidentalmente en registros o control de versiones, lo que mejora aún más la seguridad del proceso de implementación.
Consulte Recomendaciones para proteger los secretos de aplicación
Uso de almacenes de claves seguras
El aprovechamiento de almacenes de claves seguros garantiza que los secretos se almacenen en una ubicación segura y cifrada. Los servicios como Azure Key Vault y Azure Managed HSM 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 muy confidenciales o críticos, considere la posibilidad de cifrar el secreto con almacenes de claves en un modelo de seguridad de hardware (HSM), que ofrecen 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 cuál elegir, consulte Administración de claves en Azure y Elección de la solución de administración de claves adecuada.
Implementación de herramientas de análisis de secretos
Examinar periódicamente el código base para los secretos incrustados puede prevenir la exposición accidental. Las herramientas como el Analizador de credenciales de Azure DevOps y la característica de Análisis de secretos de GitHub pueden detectar y alertar automáticamente a los secretos que se encuentran en los repositorios. Integrar estas herramientas en su canalización de CI/CD garantiza la supervisión continua. Es fundamental tratar como en peligro a cualquier secreto encontrado por estas herramientas de examen, lo que significa que debe revocarse y reemplazarse inmediatamente para mantener la integridad de su posición de seguridad.
Sacar provecho de identidades administradas
Las identidades administradas en Azure proporcionan una manera segura de 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 a 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 el 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 asegurarse 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. También es aconsejable implementar roles distintos como usuario, administrador y auditor para administrar el acceso a secretos, lo que garantiza que solo las identidades de confianza tengan el nivel de permiso adecuado.
Consulte Guía RBAC de Azure Key Vault.
Rotación periódica de secretos
Los secretos son susceptibles a la pérdida o exposición a lo largo del tiempo. La rotación periódica de los secretos reduce el riesgo de accesos no autorizados. Puede rotar secretos en Azure Key Vault para determinados secretos. Para aquellos que no se pueden rotar automáticamente, establezca un proceso de rotación manual y asegúrese de que se purgan 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.
Supervisión y acceso de registro
Habilite el registro y la supervisión del sistema de administración de sus secretos para realizar un seguimiento del acceso y el uso. Use el registro o los servicios de Key Vault, como Azure Monitor y Azure Event Grid, para supervisar todas las actividades relacionadas con los 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.
Implementar aislamiento de red
Reduzca la exposición de sus secretos mediante la implementación del aislamiento de red. Configure firewalls y grupos de seguridad de red para restringir el acceso a los almacenes 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. Además, considere la posibilidad de usar varios almacenes de claves para crear límites de aislamiento para distintos componentes, lo que garantiza que, si un componente está en peligro, no pueda obtener control de otros secretos o toda la carga de trabajo.
Cifrado de secretos en reposo y en movimiento
Asegúrese de que sus secretos se cifren tanto en reposo como en movimiento. Azure Key Vault almacena de forma segura secretos mediante el cifrado de sobre, donde las claves de cifrado de datos (DEK) se cifran mediante claves de cifrado de claves (KEK), lo que proporciona una capa adicional de seguridad. Este enfoque mejora la protección contra accesos no autorizados. Además, use protocolos de comunicación seguros como HTTPS para cifrar los datos en tránsito entre las aplicaciones y el almacén de claves, lo que garantiza que los secretos se protegen durante el almacenamiento y la transmisión.
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 a través de TLS y MACsec para evitar accesos no autorizados durante la transmisión. Estas prácticas de cifrado proporcionan protección completa para sus datos, ya sea que se almacenen o transmitan entre sistemas. Para más información, consulte Cifrado en reposo y en movimiento.
Distribución segura de secretos
Al distribuir secretos, asegúrese de que se comparten de forma segura tanto dentro como 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 filtrada, se debe volver a generar inmediatamente. Para mejorar aún más la seguridad, 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.
Procedimientos recomendados específicos del servicio
Los servicios individuales pueden tener procedimientos recomendados adicionales e instrucciones para proteger los secretos. Estos son algunos ejemplos:
- API Management: Use valores con nombre en las directivas de Azure API Management con la integración de Key Vault
- Consulte Uso de referencias de Key Vault para App Service y Azure Functions
- Puerta de enlace de aplicación: Configuración de una puerta de enlace de aplicaciones con terminación TLS mediante Azure Portal
- Automatización: Administración de credenciales en Azure Automation
- Azure App Configuration: Tutorial: Uso de referencias de Key Vault en una aplicación ASP.NET Core
- Azure Bot Service: Cifrado para datos en reposo de Azure Bot Service
- Azure Center for SAP solutions: Centro de Azure para soluciones de SAP: implementación: Preparación de la red para la implementación
- Azure Communication Gateaway: Creación y almacenamiento de secretos
- Servicio de comunicaciones Azure: Crear y administrar tokens de acceso
- Servidor flexible de Azure Database for PostgreSQL:Azure Database for PostgreSQL: cifrado de datos de servidor flexible con una clave administrada por el cliente
- Azure Databricks: Integración de Key Vault en Databricks
- Azure DevTest Labs: Habilitación de identidades administradas asignadas por el usuario en máquinas virtuales de laboratorio en Azure DevTest Labs
- Azure Front Door: Secretos de Azure Front Door
- Azure HDInsight en AKS: Requisitos previos de recursos: creación de Azure Key Vault
- Azure Information Protection: Detalles de la compatibilidad con Key Vault de Azure Information Protection
- Azure Kubernetes Service (AKS): CSI Secret Store
- Azure Managed Applications: Acceso al secreto de Key Vault al implementar Azure Managed Applications
- Azure OpenAI: Desarrollo de aplicaciones de servicios de Azure AI con Key Vault
- Azure Pipelines: protección de secretos en Azure Pipelines
- Azure Purview: Credenciales de para la autenticación de origen en Microsoft Purview
- Azure SignalR Service: Referencia de secretos de Key Vault en la configuración de la plantilla de dirección URL
- Azure Service Bus: Autenticar y autorizar una aplicación con Microsoft Entra ID para acceder a las entidades de Azure Service Bus
- Azure Stack Edge: Administración de secretos de Azure Stack Edge mediante Azure Key Vault
- Azure Stack Hub: Girar secretos
- Azure Web PubSub: Añadir un certificado personalizado
- Copia de seguridad: Configuración de un almacén para cifrar mediante claves administradas por el cliente
- Cognitive Services: Desarrollo de aplicaciones de Azure Cognitive Services con Key Vault
- Data Factory: Almacenamiento de credenciales en Azure Key Vault
- ExpressRoute: Configurar el cifrado MACsec para ExpressRoute Direct.
- Funciones: Usar referencias de Key Vault para App Service y Azure Functions
- Key Vault: Acerca de los secretos de Azure Key Vault
- Logic Apps: Configuración de aplicaciones estándar de Logic Apps
- Machine Learning Service: Uso de secretos de credenciales de autenticación en trabajos de Azure Machine Learning
- IaaS de SQL: Configuración de la integración de Azure Key Vault para SQL Server en máquinas virtuales de Azure (Resource Manager)
- Almacenamiento: Administración de claves de cuenta de almacenamiento con Key Vault y la CLI de Azure
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.
Consulte Patrones y procedimientos recomendados de seguridad en Azure para obtener más procedimientos recomendados de seguridad que pueda aplicar cuando diseñe, implemente y administre las soluciones en la nube mediante Azure.