Administración de credenciales PKI e identidades de máquinas para aplicaciones

A continuación, se incluye información sobre la emisión y gestión de credenciales PKI e identidades de máquinas para aplicaciones en DevOps.

Al implementar muchos servicios, es necesario tener en cuenta la gestión de las identidades y los secretos de las máquinas. La gestión de las credenciales PKI y las identidades de las máquinas para las aplicaciones debe ser, preferiblemente, automatizada, pero con la mayor seguridad posible.

Automatización de la implementación de certificados TLS con ACME

Aunque el protocolo ACME ya se utiliza para emitir certificados de máquina en algunos de los casos de uso mencionados, merece una mención aparte, ya que puede emplearse en diversos escenarios dentro de una organización. Para obtener más información sobre el uso de ACME y la popular herramienta CertBot, consulte Uso de CertBot para emitir certificados con ACME a un servidor web Apache .

El protocolo ACME es extensible y puede esperar que se agreguen más funciones a la implementación del servidor ACME EJBCA.

Aprovisionar automáticamente certificados a contenedores en Kubernetes

Los contenedores suelen desempeñar un papel importante en los microservicios. Al implementar aplicaciones a gran escala, se crean y destruyen una gran cantidad de contenedores en cualquier momento. Uno de los desafíos de este enfoque es cómo emitir o gestionar los numerosos certificados (identidades de máquina) para estos contenedores dinámicos.

También existen ventajas, como que, dado que los contenedores se pueden tratar como recursos de corta duración, se pueden utilizar certificados de corta duración. Una estrategia de renovación sencilla es no renovar el certificado. En su lugar, cuando un certificado está a punto de caducar, se permite que el marco de orquestación destruya el contenedor y proporcione uno nuevo con un certificado nuevo.

Uso del proxy de solicitud de firma de certificado de K8s

El proxy de solicitud de firma de certificado EJBCA para K8s reenvía las solicitudes de firma de certificado generadas por Kubernetes a EJBCA para que una autoridad de certificación las firme. Con el firmante de CSR, cualquier producto que utilice la API CertificateSigningRequest podrá usar EJBCA como CA de back-end. Esta es una solución genérica que se integra bien, por ejemplo, con productos de malla de servicios como Istio y similares. El complemento EJBCA CSR Signer está disponible en Keyfactor GitHub .

Uso de Cert-Manager

Al usar Kubernetes para administrar contenedores, puede automatizar el aprovisionamiento de certificados. Una opción es usar el controlador nativo de administración de certificados de Kubernetes, cert-manager. Este complemento de Kubernetes permite que los contenedores recuperen automáticamente los certificados del servidor TLS mediante el protocolo ACME. Para obtener más información y ejemplos de archivos YAML de implementación, consulte " Emisión de certificados a servicios de Kubernetes mediante cert-manager y Keyfactor en GitHub" .

Uso de contenedores de inscripción y Podman

Para emitir certificados a contenedores, otra alternativa es crear un contenedor especial que pueda inscribir automáticamente certificados en el mismo pod (usando Podman) y almacenarlos en un volumen accesible a otros contenedores en el mismo pod.

Importación de certificados y claves a soluciones de gestión de claves

Las aplicaciones en ejecución pueden usar soluciones de gestión de claves, también conocidas como bóvedas de claves o KMS, para almacenar credenciales de forma más segura que si se administran en la aplicación (normalmente en disco). Al emitir un almacén de claves desde EJBCA, es posible que desee importar las credenciales a un KMS para que las utilice una aplicación específica.

Para obtener más información y un script para importar almacenes de claves PKCS12 en Azure Key Vault, consulte Keyfactor GitHub .