Implementación de PKI y servicios de firma en entornos DevOps

Al implementar una PKI, ya sea una PKI centralizada única, varias PKI distribuidas o quizás PKI de corta duración para fines específicos, conviene hacerlo con las mismas herramientas y procesos que se utilizan para el resto del entorno. Dos herramientas comunes son Ansible y Kubernetes, y EJBCA funciona bien con ambas.

A continuación, se explica cómo implementar su PKI como máquinas virtuales o contenedores y cómo usar Ansible para automatizar la implementación y configuración de PKI.

Implementación de su PKI como máquinas virtuales o contenedores

La PKI, si bien en muchos casos es un servicio central utilizado por otros equipos de aplicaciones, puede ejecutarse en cualquier infraestructura que prefiera su organización. Además de los métodos de implementación más tradicionales, sus productos PKI también pueden utilizarse en entornos de virtualización si su organización prefiere esta opción.

Ejemplos de opciones de implementación clásicas:

  • Software local, nuestra plataforma de soluciones, que le permite instalar el software con total flexibilidad.

  • Hardware local, nuestro dispositivo de hardware, que le permite ejecutar una PKI segura que incluye un módulo de seguridad de hardware (HSM) integrado, como una solución llave en mano que incluye todo el software y hardware necesarios.

  • Nube, que le permite implementar soluciones de PKI y firma en su entorno de nube de AWS o Azure.

Ejemplos de productos PKI consumidos en entornos de virtualización:

  • Dispositivo de software, máquina virtual (VM) autosuficiente y empaquetada que utiliza su entorno de virtualización existente y se conecta a módulos de seguridad de hardware (HSM) conectados a la red.

  • Docker Container, que le permite implementar PKI en su infraestructura de contenedores, con toda la flexibilidad (y complejidad) esperada de los entornos en contenedores.

Implementación de PKI en Kubernetes y OpenShift

Kubernetes se ha vuelto muy popular como el entorno de ejecución/orquestador de contenedores más común, con instalaciones locales y ofertas de servicios en la nube. Si su infraestructura de TI se basa en contenedores, su PKI generalmente también puede ejecutarse en un entorno de ejecución de contenedores, siempre que se consideren los aspectos de seguridad. Ejecutar la PKI o la solución de firma digital como contenedores puede optimizarse y combinarse con Ansible para la automatización y la configuración parametrizada.

Las comunidades EJBCA y SignServer están disponibles para su implementación inmediata desde Docker Hub, lo que le permite obtener una PKI de prueba o una solución de firma digital en segundos. Para obtener más información y descargar contenedores de la comunidad, consulte EJBCA en Docker Hub y SignServer en Docker Hub .

Para personalizar implementaciones más complejas y recomendadas en Kubernetes, PrimeKey proporciona ejemplos de implementación de contenedores con archivos YAML listos para usar para MicroK8s y Docker Engine, configurando contenedores separados para la base de datos, EJBCA e Ingres. Para ver ejemplos de implementación de contenedores, consulte Keyfactor en GitHub .

Esta tecnología también se utiliza para implementar y ejecutar EJBCA en Red Hat OpenShift. Red Hat OpenShift es una plataforma Kubernetes empresarial, diseñada con componentes probados que ayudan a los desarrolladores a gestionar las implementaciones en la nube. La edición comunitaria de EJBCA está disponible en el catálogo de contenedores de confianza de Red Hat. Para más información, contacte con PrimeKey .

Para las versiones de contenedor de la edición Enterprise de EJBCA, comuníquese con PrimeKey .

Cómo agregar sus controladores HSM PKCS#11 a la imagen del contenedor

Muchas organizaciones ya cuentan con HSMs, a menudo gestionados por equipos de especialistas cualificados. Los controladores PKCS#11 de HSM utilizados pueden ser versiones específicamente aprobadas y probadas exhaustivamente con la versión de firmware del HSM implementada. Por lo tanto, es difícil incluir por defecto los controladores correctos para usuarios específicos en los contenedores. Además, los controladores de HSM se distribuyen bajo licencia del fabricante, lo que significa que podría no estar permitida la redistribución de controladores integrados con nuestros contenedores.

Esto crea la necesidad de poder agregar controladores HSM específicos a contenedores preempaquetados de forma sencilla. Para obtener información sobre cómo agregar controladores HSM al contenedor EJBCA mediante un Dockerfile, consulte los ejemplos de controladores HSM en Keyfactor GitHub .

Uso de Ansible para automatizar la implementación y configuración de PKI

Red Hat ofrece Ansible, una herramienta de automatización de código abierto, que permite el aprovisionamiento, la gestión de la configuración y la implementación eficientes y seguras de software y contenedores. Ansible es una herramienta popular para automatizar la implementación y la configuración en entornos Dev(Sec)Ops. Con Ansible, se crean Playbooks de Ansible que realizan tareas automatizadas, repetibles, parametrizadas e idempotentes.

Desde una perspectiva de PKI, puede utilizar Ansible para varias tareas, entre ellas:

  • Implemente las soluciones de PKI y/o firma digital. Cuando sea necesario configurar una CA, esto se puede hacer en segundos usando un playbook de Ansible, según su playbook y los parámetros necesarios para la implementación específica. Una jerarquía de PKI, con una o varias CA, se puede configurar completamente mediante configuraciones de plantilla previamente probadas. Los servidores de PKI configurados, ya sean máquinas virtuales o contenedores, también se pueden implementar automáticamente en su entorno de ejecución de virtualización o contenedor.

  • Al implementar servicios de aplicaciones con Ansible, estos servicios se pueden aprovisionar automáticamente con las identidades de máquina correctas (certificados) a medida que se implementan automáticamente en su máquina virtual o entorno de ejecución del contenedor. Durante la configuración de los servicios, el playbook de Ansible incluirá los pasos para registrar identidades de máquina únicas para los servidores de aplicaciones que se instanciarán.

En PrimeKey, utilizamos Ansible para configurar versiones y configuraciones específicas (por ejemplo, diferentes bases de datos y versiones de Java) de EJBCA y SignServer para realizar pruebas. Las máquinas virtuales se implementan automáticamente en un entorno de virtualización interno, lo que permite realizar pruebas en segundos.

Ofrecemos una colección de playbooks de Ansible para usar con EJBCA, SignServer e integraciones. Se admiten las versiones Community y Enterprise de EJBCA. Con estos playbooks de Ansible, puede poner en funcionamiento fácilmente EJBCA o SignServer, incluyendo una pila tecnológica completa. Para más información, consulte Keyfactor GitHub/Ansible . Para obtener más scripts de herramientas de ejemplo de EJBCA, consulte Keyfactor GitHub/Scripts .