Cómo los equipos de DevOps pueden automatizar la implementación de PKI bajo demanda con Keyfactor Ansible y EJBCA
Pocas cosas cambian más rápido que la tecnología, y DevOps, en particular, vive a la vanguardia de la innovación y la automatización.
DevOps refers to tools and best practices that allow for more efficient software delivery. Growing out of the popular Agile methodology, DevOps focuses on using automation, standardization, and rapid iteration to streamline the software lifecycle.
A crucial part of DevOps is public key infrastructure (PKI). To remain in compliance, keep sensitive information locked down, and maintain security, working environments need to be built on top of a robust PKI.
Sin embargo, las herramientas PKI no han seguido el ritmo de evolución del espacio DevOps, lo que supone un reto y una oportunidad.
Los equipos de aplicaciones y operaciones actuales deben moverse con rapidez, funcionar en cualquier plataforma y automatizarlo todo. Pero los desarrolladores no pueden moverse rápido ni ser ágiles cuando se ven constantemente frenados por los procesos de seguridad manuales y arcaicos que implica el uso de las herramientas PKI tradicionales.
This problem can’t be overstated. If developers are routinely working with PKI tools that make it impossible to meet tight deadlines, they will find faster, non-compliant ways of obtaining certificates. Put another way: automation isn’t optional when deploying and using PKI in DevOps.
El equipo de Keyfactor abordó este tema en un seminario web reciente y analizó las herramientas y las mejores prácticas que los equipos de DevOps pueden utilizar para simplificar y escalar PKI.
Cómo se utiliza PKI en entornos CI/CD
Cuando se utiliza PKI en contextos de integración continua/despliegue continuo (CI/CD), todo se reduce a la confianza. Si está creando y desplegando aplicaciones, necesita saber que la infraestructura que está ejecutando y el software que entrega son de confianza.
Esto es mucho más fácil de conseguir con PKI bajo demanda. Como cualquier otro servicio bajo demanda, PKI bajo demanda significa que puede escalar dinámicamente la emisión, revocación y gestión de certificados. Cuando se trabaja en entornos avanzados que cambian rápidamente, como los que caracterizan a los DevOps modernos, esta flexibilidad y capacidad de adaptación no pueden ser más importantes.
Para comprender plenamente la importancia de la PKI a la carta, conviene concretar los casos de uso específicos en los que puede ser necesaria. He aquí algunos de ellos:
- Emisión de certificaciones de dispositivos para la autenticación 802.1x en una red
- WiFi certs for devices, such as in a factory or Internet of Things (IoT) application.
- Code signing or time stamping of code
Los certificados digitales son la columna vertebral de la PKI, por lo que este tipo de gestión de certificados es absolutamente vital. Disponer de un modo de gestionar rápida y eficazmente la certificación de dispositivos es una parte fundamental para operar de forma segura, pero también debe ser capaz de mostrar cómo se validan y certifican los dispositivos para demostrar que su seguridad cumple las normas exigidas. Esto es especialmente cierto si desea trabajar con contratos gubernamentales o con datos clasificados.
La importancia de la automatización en DevOps
Ya dijimos al principio que la automatización no es opcional cuando se gestiona PKI para DevOps. DevOps y automatización van de la mano porque, cuando se combinan, crean dos cosas que los equipos necesitan: velocidad y coherencia.
Fundamentalmente, DevOps se aleja de la configuración estática. Mientras que en el pasado, procesos como la integración de código se gestionaban manualmente y sólo se revisaban si había un problema importante, en el DevOps moderno se definen en secuencias de comandos. Cuando un proceso se define en un script, se automatiza y se repite, y esto, a su vez, lo hace fiable (porque el script siempre se ejecutará de la misma manera) y escalable (porque siempre es posible aumentar los recursos informáticos, mientras que aumentar el tiempo humano es mucho más difícil). Si se hacen correctamente, los scripts son modulares y reutilizables, lo que facilita la comprobación, modificación y mantenimiento del código base.
Pero para proteger el entorno en el que se escriben y ejecutan estos scripts, DevOps debe confiar en PKI. Esto se convierte en un cuello de botella importante en el flujo de trabajo de DevOps porque el conjunto existente de herramientas PKI es manual, lento y requiere mucha configuración.
Microsoft Certificate Authority (CA) is a great example. A CA is responsible for assigning digital certificates to devices, websites, people, and other entities.
Microsoft CA tiene desventajas sustanciales, que hacen que no encaje bien en los entornos DevOps modernos: depende en gran medida de la infraestructura de Microsoft, los equipos tienen que aprovisionar un nuevo servidor cada vez que necesitan una nueva CA y las tareas importantes, como el aprovisionamiento de CA, no se automatizan fácilmente. Al igual que la mayoría de las demás soluciones de PKI disponibles, no puede permitir las cosas que DevOps necesita para seguir siendo innovador.
Companies today need a PKI infrastructure that can integrate smoothly with their current tooling while including basic functionality like automation. They often find that they’ve outgrown their PKI when they need a rich REST API, they want to use the Enrollment over Secure Transport (EST) or Certificate Management Protocol (CMP) for x.509 certification, or when they want to use a communications protocol like the Automated Certificate Management Environment (ACME).
Y esto sin mencionar las dificultades de intentar crear rápidamente una PKI específica de grupo para realizar pruebas o reconstruir antiguas PKI a partir de especificaciones, dos tareas bastante básicas y rutinarias desde la perspectiva de DevOps.
Dicho todo esto, podemos preguntarnos: ¿qué deben buscar estos equipos en una solución PKI?
Automatización de PKI
PKI for DevOps needs to be able to provision PKI on demand in a way that’s repeatable and scalable while not compromising the critical underlying processes that make PKI the bedrock for trust in software.
Para apoyar DevOps en su forma actual, una plataforma PKI debe estar diseñada para desplegarse en cualquier lugar, en cualquier forma que necesite, ya sea como un servicio basado en la nube, como un contenedor Docker o Kubernetes, o como una aplicación llave en mano hardware/software . En otras palabras, debe encajar en el molde de lo que sea que esté tratando de lograr.
Además, debe ser capaz de escalar dinámicamente. En concreto, esto significa poder desplegar varias CA en un único nodo, segmentarlas en distintos nodos y agruparlas en clústeres de alta disponibilidad. Todo esto es imposible con Microsoft CA.
Y una plataforma PKI debe integrarse en la infraestructura y las herramientas existentes. Debe ser compatible con los protocolos EST, CMP y ACME ya mencionados. Como puede atestiguar cualquiera que haya trabajado en PKI, hay una gran variedad de formatos y casos de uso que deben abordarse. También debe admitir distintos métodos para interactuar con los algoritmos y los módulos de seguridad Hardware (HSM) que están detrás de la PKI.
Si tiene estas propiedades, su PKI puede desplegarse como y como quiera de una forma automatizada, flexible, escalable, repetible y que encaje con la pila DevOps actual que ya esté utilizando. Esto le permite avanzar con rapidez pero sin comprometer la confianza.
For many teams, the combination of EJBCA and Ansible is the solution that best meets their needs. By treating PKI as a set of microservices in CI/CD and DevOps, PKI deployment is fast, the configuration is consistent, and the infrastructure is scalable.
To learn more about using DevOps tools and best practices to simplify and scale PKI and watch a demo of EJBCA and Ansible in action, check out our webinar “PKI On-Demand for DevOps with Ansible and EJBCA.”
Suscríbase a The Source
Stay secure with Keyfactor's monthly newsletter, packed with expert insights and practical steps for quantum-readiness.