En ciberseguridad, la configuración de la renovación automática de certificados es importante para mantener un entorno seguro y fiable. Si no se actualizan o renuevan los certificados de forma oportuna, los sistemas se exponen a vulnerabilidades. Entre las áreas potencialmente vulnerables se incluyen:
- Certificados TLS/SSL que han expirado.
- Redes que están sujetas a posibles infracciones.
- Datos confidenciales que no están seguros.
- Servicios que dejan de funcionar para los procesos entre empresas.
- Pérdida de reputación de la marca que compromete la integridad y confidencialidad de las transacciones digitales.
Azure Key Vault admite la renovación automática de certificados emitidos por una entidad de certificación (CA) integrada, como DigiCert o GlobalSign. Para una entidad de certificación no integrada, se requiere un enfoque manual.
Este artículo salva la brecha al proporcionar un proceso de renovación automático adaptado a los certificados de entidades de certificación no integradas. Este proceso almacena sin problemas los nuevos certificados en Key Vault, mejora la eficacia, aumenta la seguridad y simplifica la implementación al integrarse con varios recursos de Azure.
Un proceso de renovación automático reduce los errores humanos y minimiza las interrupciones del servicio. Cuando se automatiza la renovación de certificados, no solo se acelera el proceso de renovación, sino que disminuye la probabilidad de que se produzcan errores durante la gestión manual. Al aplicar las funcionalidades de Key Vault y sus extensiones, puede crear un proceso automático para optimizar las operaciones y la fiabilidad.
Aunque automatizar la renovación de certificados es el objetivo inicial, el objetivo más amplio es mejorar la seguridad en todas las áreas del proceso. Este esfuerzo incluye cómo implementar el principio del mínimo privilegio (PoLP) o controles de acceso similares usando Key Vault. También hace hincapié en la importancia de unas prácticas sólidas de registro y supervisión de Key Vault. En este artículo se subraya la importancia de usar Key Vault para fortalecer todo el ciclo de vida de administración de certificados y se demuestra que las ventajas de seguridad no se limitan al almacenamiento de certificados.
Puede usar Key Vault y su proceso de renovación automática para actualizar continuamente los certificados. La renovación automática desempeña un papel importante en el proceso de implementación y ayuda a los servicios de Azure que se integran con Key Vault a beneficiarse de certificados actualizados. En este artículo se explica cómo la renovación y la accesibilidad continuas contribuyen a la eficacia de la implementación y a la fiabilidad de los servicios Azure.
Arquitectura
He aquí un breve resumen de la arquitectura subyacente a esta solución.
Descargue un archivo Visio de esta arquitectura.
El entorno de Azure consta de los siguientes recursos de plataforma como servicio (PaaS): un almacén de claves dedicado para almacenar solo los certificados emitidos por la misma entidad de certificación no integrada, un tema del sistema de Azure Event Grid, una cola de cuentas de almacenamiento y una cuenta de Azure Automation que expone un webhook dirigido por Event Grid.
En este escenario se supone que ya existe una infraestructura de clave pública (PKI) existente, que consta de una entidad de certificación de Microsoft Enterprise unida a un dominio de Microsoft Entra ID. Tanto la PKI como el dominio de Active Directory pueden residir en Azure o en el entorno local, así como los servidores que deben configurarse para la renovación de certificados.
Las máquinas virtuales (VM) con certificados para supervisar la renovación no necesitan estar unidas a Active Directory o Microsoft Entra ID. El único requisito es que la entidad de certificación e hybrid worker, si se encuentra en una máquina virtual diferente de la entidad de certificación, estén unidos a Active Directory.
En las secciones siguientes se proporcionan detalles del proceso de renovación automático.
Flujo de trabajo
En esta imagen se muestra el flujo de trabajo automático para la renovación de certificados dentro del ecosistema de Azure.
Configuración de Key Vault: la fase inicial del proceso de renovación implica almacenar el objeto de certificado en la sección Certificados designada del almacén de claves.
Aunque no es obligatorio, puede configurar notificaciones de correo electrónico personalizadas mediante el etiquetado del certificado con la dirección de correo electrónico del destinatario. Etiquetar el certificado garantiza notificaciones puntuales cuando finaliza el proceso de renovación. Si necesita varios destinatarios, separe sus direcciones de correo electrónico con una coma o un punto y coma. El nombre de etiqueta para este para este fin es Recipient y su valor es una o varias direcciones de correo electrónico de los administradores designados.
Al usar etiquetas, en lugar de las notificaciones de certificado integradas, puede aplicar notificaciones a un certificado específico con un destinatario designado. Las notificaciones de certificado integradas se aplican indiscriminadamente a todos los certificados del almacén de claves y usan el mismo destinatario para todas.
Puede integrar notificaciones integradas con la solución, pero usar un enfoque diferente. Aunque las notificaciones integradas solo pueden notificar sobre una próxima expiración del certificado, las etiquetas pueden enviar notificaciones cuando el certificado se renueva en la entidad de certificación interna y cuando está disponible en Key Vault.
Configuración de la extensión de Key Vault: debe equipar a los servidores que necesitan usar los certificados con la extensión de Key Vault, una herramienta versátil compatible con los sistemas Windows y Linux. Se admiten servidores de infraestructura como servicio (IaaS) de Azure y locales u otros servidores en la nube que se integran a través de Azure Arc. Configure la extensión de Key Vault para sondear periódicamente Key Vault para ver los certificados actualizados. El intervalo de sondeo es personalizable y flexible para que pueda alinearse con requisitos operativos específicos.
Integración de Event Grid: a medida que un certificado se aproxima a la expiración, dos suscripciones de Event Grid interceptan este evento de duración importante del almacén de claves.
Desencadenadores de Event Grid: una suscripción de Event Grid envía información de renovación de certificados a una cola de cuentas de almacenamiento. La otra suscripción desencadena el inicio de un runbook a través del webhook configurado en la cuenta de Automation. Si el runbook no puede renovar el certificado o si la entidad de certificación no está disponible, un proceso programado reintenta la renovación del runbook desde ese punto hasta que se borra la cola. Este proceso da solidez a la solución.
Para mejorar la resistencia de la solución, configure un mecanismo de ubicación de mensajes fallidos. Administra posibles errores que pueden producirse durante el tránsito de mensajes de Event Grid a los destinos de la suscripción, la cola de almacenamiento y el webhook.
Cola de cuentas de almacenamiento: el runbook se inicia dentro del servidor de entidad de certificación configurado como una instancia de Hybrid Runbook Worker de Automation. Recibe todos los mensajes de la cola de la cuenta de almacenamiento que contienen el nombre del certificado que expira y el almacén de claves que hospeda el runbook. Se producen los pasos siguientes para cada mensaje de la cola.
Renovación de certificados: el script del runbook se conecta a Azure para recuperar el nombre de plantilla del certificado que configuró durante la generación. La plantilla es el componente de configuración de la entidad de certificación que define los atributos y el propósito de los certificados que se van a generar.
Después de que el script interactúe con Key Vault, inicia una solicitud de renovación de certificado. Esta solicitud desencadena Key Vault para generar una solicitud de firma de certificado (CSR) y aplica la misma plantilla que generó el certificado original. Este proceso garantiza que el certificado renovado se alinee con las directivas de seguridad predefinidas. Para obtener más información sobre la seguridad en el proceso de autenticación y autorización, consulte la sección Seguridad.
El script descarga la CSR y la envía a la entidad de certificación.
La entidad de certificación genera un nuevo certificado x509 basado en la plantilla correcta y lo devuelve al script. Este paso garantiza que el certificado renovado se alinee con las directivas de seguridad predefinidas.
Combinación de certificados y actualización de Key Vault: el script combina el certificado renovado en el almacén de claves, finalizando el proceso de actualización y quitando el mensaje de la cola. Durante todo el proceso, la clave privada del certificado nunca se extrae del almacén de claves.
Supervisión y notificación por correo electrónico: todas las operaciones que ejecutan varios componentes de Azure, como una cuenta de Automation, Key Vault, una cola de cuentas de almacenamiento y Event Grid, se registran en el área de trabajo Registros de Azure Monitor para habilitar la supervisión. Una vez que el certificado se combina en el almacén de claves, el script envía un mensaje de correo electrónico a los administradores para notificarles el resultado.
Recuperación de certificados: la extensión de Key Vault en el servidor desempeña un papel importante durante esta fase. Descarga automáticamente la versión más reciente del certificado desde el almacén de claves en el almacén local del servidor que usa el certificado. Puede configurar varios servidores con la extensión de Key Vault para recuperar el mismo certificado (comodín o con varios certificados de nombre alternativo del firmante (SAN)) del almacén de claves.
Componentes
La solución usa varios componentes para controlar la renovación automática de certificados en Azure. En las secciones siguientes se describe cada componente y su propósito específico.
Extensión de Key Vault
La extensión de Key Vault desempeña un papel fundamental en la automatización de la renovación de certificados y debe instalarse en servidores que requieren la automatización. Para obtener más información sobre los procedimientos de instalación en servidores Windows, consulte Extensión de Key Vault para Windows. Para obtener más información sobre los pasos de instalación para los servidores Linux, consulte Extensión de Key Vault para Linux. Para obtener más información sobre los servidores habilitados para Azure Arc, consulte Extensión de Key Vault para servidores habilitados para Arc.
Nota:
A continuación se muestran scripts de ejemplo que puede ejecutar desde Azure Cloud Shell para configurar la extensión de Key Vault:
Los parámetros de configuración de la extensión de Key Vault incluyen:
- Nombre del almacén de claves: almacén de claves que contiene el certificado para la renovación.
- Nombre del certificado: el nombre del certificado que se va a renovar.
- Almacén de certificados, nombre y ubicación: almacén de certificados donde se almacena el certificado. En los servidores Windows, el valor predeterminado de Nombre es
My
y el de Ubicación esLocalMachine
, que es el almacén de certificados personal del equipo. En los servidores Linux, puede especificar una ruta de acceso del sistema de archivos, suponiendo que el valor predeterminado seaAzureKeyVault
, que es el almacén de certificados de Key Vault. - linkOnRenewal: marca que indica si el certificado debe estar vinculado al servidor durante la renovación. Si se establece en
true
en máquinas Windows, copia el nuevo certificado en el almacén y lo vincula al certificado anterior, que vuelve a enlazar el certificado de forma eficaz. El valor predeterminado esfalse
, que significa que se requiere un enlace explícito. - pollingIntervalInS: intervalo de sondeo de la extensión de Key Vault para buscar actualizaciones de certificados. El valor predeterminado es
3600
segundos (1 hora). - authenticationSetting: la configuración de autenticación de la extensión de Key Vault. En el caso de los servidores de Azure, puede omitir esta configuración, lo que significa que la identidad administrada asignada por el sistema de la máquina virtual se usa en el almacén de claves. Para los servidores locales, especificar el ajuste
msiEndpoint = "http://localhost:40342/metadata/identity"
significa el uso de la entidad de servicio asociada al objeto de equipo creado durante la incorporación de Azure Arc.
Nota:
Especifique los parámetros de extensión de Key Vault solo durante la configuración inicial. Esto garantiza que no se someten a ningún cambio durante el proceso de renovación.
Cuenta de Automation
La cuenta de Automation controla el proceso de renovación de certificados. Debe configurar la cuenta con un runbook mediante el script de PowerShell.
También debe crear un grupo de Hybrid Worker. Asocie el grupo de Hybrid Worker a un miembro de Windows Server del mismo dominio de Active Directory de la entidad de certificación, idealmente la propia entidad de certificación, para iniciar runbooks.
El runbook debe tener un webhook asociado, iniciado desde Hybrid Runbook Worker. Configure la dirección URL del webhook en la suscripción de eventos del tema del sistema de Event Grid.
Cola de cuentas de almacenamiento
La cola de cuentas de almacenamiento almacena los mensajes que contienen el nombre del certificado que se renueva y el almacén de claves que contiene el certificado. Configure la cola de cuentas de almacenamiento en la suscripción de eventos del tema del sistema de Event Grid. La cola controla el desacoplamiento del script del evento de notificación de expiración del certificado. Admite la conservación del evento dentro de un mensaje de cola. Este enfoque ayuda a garantizar que el proceso de renovación de los certificados se repita a través de trabajos programados, incluso si hay problemas que se producen durante la ejecución del script.
Trabajo híbrido de runbook
Hybrid Runbook Worker desempeña un papel fundamental en el uso de runbooks. Debe instalar el Hybrid Runbook Worker con el método extensión de Azure Hybrid Worker, que es el modo admitido para una nueva instalación. Debe crearlo y asociarlo con un miembro de Windows Server en el mismo dominio de Active Directory de la entidad de certificación, idealmente la propia certificación.
Key Vault
Key Vault es el repositorio seguro para los certificados. En la sección de eventos del almacén de claves, asocie el tema del sistema de Event Grid con el webhook de la cuenta de Automation y una suscripción.
Event Grid
Event Grid controla la comunicación controlada por eventos dentro de Azure. Configure Event Grid definiendo el tema del sistema y la suscripción a eventos para supervisar los eventos pertinentes. Entre los eventos pertinentes se incluyen las alertas de expiración de certificados, la activación de acciones dentro del flujo de trabajo de automatización y la publicación de mensajes en la cola de cuentas de almacenamiento. Configure el tema del sistema de Event Grid con los parámetros siguientes:
- Origen: el nombre del almacén de claves que contiene los certificados.
- Tipo de origen: tipo del origen. Por ejemplo, el tipo de origen de esta solución es
Azure Key Vault
. - Tipos de eventos: tipo de evento que se va a supervisar. Por ejemplo, el tipo de evento de esta solución es
Microsoft.KeyVault.CertificateNearExpiry
. Este evento se desencadena cuando un certificado está a punto de expirar. - Suscripción para webhook:
- Nombre de la suscripción: el nombre de la suscripción al evento.
- Tipo de punto de conexión: tipo de punto de conexión que se va a usar. Por ejemplo, el tipo de punto de conexión de esta solución es
Webhook
. - Punto de conexión: la dirección URL del webhook asociado al runbook de la cuenta de Automation. Para obtener más información, consulte la sección Cuentas de Azure Automation.
- Suscripción a StorageQueue:
- Nombre de la suscripción: el nombre de la suscripción al evento.
- Tipo de punto de conexión: tipo de punto de conexión que se va a usar. Por ejemplo, el tipo de punto de conexión de esta solución es
StorageQueue
. - Punto de conexión: la cola de cuentas de almacenamiento.
Alternativas
Esta solución usa una cuenta de Automation para organizar el proceso de renovación de certificados y usa Hybrid Runbook Worker para proporcionar la flexibilidad de integrarse con una entidad de certificación local o en otras nubes.
Un enfoque alternativo es usar Logic Apps. La principal diferencia entre los dos enfoques es que la cuenta de Automation es una solución de plataforma como servicio (PaaS), mientras que Logic Apps es una solución de software como servicio (SaaS).
La principal ventaja de Logic Apps es que es un servicio totalmente administrado. No es necesario preocuparse por la infraestructura subyacente. Además, Logic Apps puede integrarse fácilmente con conectores externos, ampliando la gama de posibilidades de notificación, como interactuar con Microsoft Teams o Microsoft 365.
Logic Apps no tiene una funcionalidad similar a Hybrid Runbook Worker, lo que da como resultado una integración menos flexible con la entidad de certificación, por lo que una cuenta de automatización es el enfoque de preferencia.
Detalles del escenario
Cada organización requiere una administración segura y eficaz del ciclo de vida de sus certificados. No actualizar un certificado antes de que expire puede provocar interrupciones del servicio e incurrir en costes significativos para la empresa.
Las empresas suelen gestionar infraestructuras de TI complejas en las que intervienen varios equipos responsables del ciclo de vida de los certificados. La naturaleza manual del proceso de renovación de certificados suele introducir errores y consumir un tiempo valioso.
Esta solución aborda los desafíos mediante la automatización de la renovación de certificados emitida por el Servicio de certificados de Microsoft. El servicio se utiliza ampliamente para diversas aplicaciones de servidor, como servidores web y servidores SQL, y para fines de cifrado, no repudio y firma, así como para garantizar actualizaciones puntuales y el almacenamiento seguro de certificados dentro de Key Vault. La compatibilidad del servicio con servidores de Azure y servidores locales admite la implementación flexible.
Posibles casos de uso
Esta solución satisface a las organizaciones de varios sectores que:
- Usan el Servicio de certificados de Microsoft para la generación de certificados de servidor.
- Requieren la automatización del proceso de renovación de certificados para acelerar las operaciones y minimizar los errores, lo que ayuda a evitar pérdidas de negocio e infracciones de los acuerdos de nivel de servicio (SLA).
- Requieren un almacenamiento seguro de certificados en repositorios como Key Vault.
Esta arquitectura actúa como un enfoque de implementación fundamental en las suscripciones de zona de aterrizaje de aplicaciones.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
En el sistema del almacén de claves, los certificados se almacenan de forma segura como secretos cifrados, protegidos por el control de acceso basado en rol (RBAC) de Azure.
A lo largo del proceso de renovación de certificados, los componentes que usan identidades son:
- La cuenta del sistema de Hybrid Runbook Worker, que funciona en la cuenta de la máquina virtual.
- La extensión de Key Vault, que usa la identidad administrada asociada a la máquina virtual.
- La cuenta de Automation, que usa su identidad administrada designada.
El principio de privilegios mínimos se aplica rigurosamente en todas las identidades que participan en el procedimiento de renovación de certificados.
La cuenta del sistema del servidor Hybrid Runbook Worker debe tener derecho a inscribir certificados en una o varias plantillas de certificado que generen nuevos certificados.
En el almacén de claves que contiene los certificados, la identidad de la cuenta de Automation debe tener el rol Key Vault Certificate Officer
. Además, los servidores que requieren acceso a certificados deben tener permisos de Get
y List
dentro del almacén de certificados del almacén de claves.
En la cola de cuentas de almacenamiento, la identidad de la cuenta de Automation debe tener los roles Storage Queue Data Contributor
, Reader and Data Access
y Reader
.
En escenarios en los que la extensión de Key Vault se implementa en una máquina virtual de Azure, la autenticación se produce a través de la identidad administrada de la máquina virtual. Sin embargo, cuando se implementa en un servidor habilitado para Azure Arc, la autenticación se controla mediante una entidad de servicio. Tanto la identidad administrada como la entidad de servicio deben tener asignado el rol de usuario secreto del almacén de claves dentro del almacén de claves que almacena el certificado. Debe usar un rol secreto porque el certificado se almacena en el almacén de claves como secreto.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.
Esta solución usa soluciones PaaS de Azure que funcionan con un marco de pago por uso para optimizar el costo. Los gastos dependen del número de certificados que necesitan renovación y del número de servidores equipados con la extensión de Key Vault, lo que da lugar a una sobrecarga baja.
Los gastos resultantes de la extensión de Key Vault e Hybrid Runbook Worker dependen de las opciones de instalación y los intervalos de sondeo. El costo de Event Grid corresponde al volumen de eventos generados por Key Vault. Al mismo tiempo, el costo de la cuenta de Automation se correlaciona con el número de runbooks que usa.
El costo de Key Vault depende de varios factores, incluida la SKU elegida (Estándar o Premium), la cantidad de certificados almacenados y la frecuencia de las operaciones realizadas en los certificados.
Las consideraciones similares a las configuraciones descritas para Key Vault se aplican igualmente a la cuenta de almacenamiento. En este escenario, una SKU estándar con replicación de almacenamiento con redundancia local basta para la cuenta de almacenamiento. Por lo general, el costo de la cola de cuentas de almacenamiento es mínimo.
Para estimar el costo de implementación de esta solución, use la Calculadora de precios de Azure y especifique los servicios que se describen en este artículo.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para obtener más información, consulte la Lista de comprobación de revisión de diseño para la excelencia operativa.
El procedimiento de renovación de certificados automático almacena de forma segura certificados mediante procesos estandarizados aplicables a todos los certificados del almacén de claves.
La integración con Event Grid desencadena acciones complementarias, como notificar a Microsoft Teams o Microsoft 365 y simplificar el proceso de renovación. Esta integración reduce significativamente el tiempo de renovación de certificados y mitiga el potencial de errores que podrían provocar interrupciones en la empresa e infracciones de acuerdos de nivel de servicio.
Además, la integración sin problemas con Azure Monitor, Microsoft Sentinel, Microsoft Copilot for Security y Microsoft Defender for Cloud facilita la supervisión continua del proceso de renovación de certificados. Admite la detección de anomalías y garantiza que se mantienen las medidas de seguridad sólidas.
Implementación de este escenario
Seleccione el botón siguiente para implementar el entorno descrito en este artículo. La implementación tarda unos dos minutos en completarse y crea un Key Vault, un tema del sistema de Event Grid configurado con las dos suscripciones, una cuenta de almacenamiento que contiene la cola certlc y una cuenta de Automation que contiene el runbook y el webhook vinculados a Event Grid.
Puede encontrar información detallada sobre los parámetros necesarios para la implementación en el portal de ejemplos de código.
Importante
Puede implementar un entorno de laboratorio completo para mostrar todo el flujo de trabajo de renovación automática de certificados. Use el ejemplo de código para implementar los siguientes recursos:
- Servicios de dominio de Active Directory (AD DS) en una máquina virtual de controlador de dominio.
- Servicios de certificados de Active Directory (AD CS) dentro de una máquina virtual de entidad de certificación, unida al dominio, configurada con una plantilla, WebServerShort, para inscribir los certificados que se van a renovar.
- Un servidor de protocolo simple de transferencia de correo (SMTP) de Windows instalado en la misma máquina virtual de la entidad de certificación para enviar notificaciones por correo electrónico. MailViewer también se instala para comprobar las notificaciones por correo electrónico enviadas.
- La extensión Key Vault instalada en la máquina virtual del controlador de dominio para recuperar los certificados renovados de la extensión de Key Vault.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Creadores de entidad de seguridad:
- Fabio Masciotra | Consultor principal
- Angelo Mazzucchi | Arquitecto de entrega
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Recursos relacionados
Key Vault
Extensión de Key Vault para Windows
Extensión de Key Vault para Linux
¿Qué es Azure Automation?
Hybrid Runbook Worker de Azure Automation
Azure Event Grid