Blog de Amazon Web Services (AWS)

Cómo implementar una solución PKI híbrida en AWS

Por Max Farnga, Consultor de transformación de seguridad para los servicios profesionales de AWS
A medida que los clientes migran cargas de trabajo a Amazon Web Services (AWS), es posible que estén ejecutando una combinación de infraestructura local y en la nube. Cuando se emiten certificados para esta infraestructura, tener una raíz de confianza común en la jerarquía de certificados permite la coherencia y la interoperabilidad de la solución de infraestructura de clave pública (PKI).

En esta publicación de blog, le mostraré cómo puede planificar e implementar una PKI que permita la emisión de certificados en un entorno híbrido (en la nube y en las instalaciones) con una raíz común. Esta solución utilizará la Autoridad de certificación de Windows Server (CA de Windows), también conocida como Servicios de certificados de Active Directory (ADCS) para distribuir y administrar certificados x.509 a usuarios de Active Directory, controladores de dominio, enrutadores, estaciones de trabajo, servidores web, dispositivos móviles y otros dispositivos. Y una autoridad de certificación privada de AWS Certificate Manager (ACM PCA) para administrar certificados para servicios de AWS, incluidos API Gateway, CloudFront, Elastic Load Balancers y otras cargas de trabajo.

La CA de Windows también se integra con AWS Cloud HSM para almacenar de forma segura las claves privadas que firman los certificados emitidos por sus CA y utilizar el HSM para realizar operaciones de firma criptográfica. En la Figura 1, el siguiente diagrama muestra cómo ACM PCA y Windows CA se pueden usar juntos para emitir certificados en un entorno híbrido.

Figura 1: Jerarquía de PKI híbrida

 

PKI es un marco que permite un entorno digital seguro y confiable mediante el uso de un mecanismo de cifrado de clave pública y privada. PKI mantiene seguras las transacciones electrónicas a través de Internet y redes privadas. También rige la verificación, emisión, revocación y validación de sistemas individuales en una red.

Hay dos tipos de PKI:

Esta publicación de blog se centra en la implementación de una PKI privada para emitir y administrar certificados privados.

Al implementar una PKI, puede haber desafíos desde la perspectiva de la seguridad, la infraestructura y las operaciones, especialmente cuando se trata de cargas de trabajo multiplataforma. Estos desafíos incluyen la administración de PKI aisladas para redes individuales locales y en la nube de AWS, la administración de PKI sin un módulo de seguridad de hardware (HSM) o un HSM local, y la falta de automatización para escalar rápidamente los servidores PKI para satisfacer la demanda.

La Figura 2 muestra cómo una PKI interna puede limitarse a una sola red. En el siguiente ejemplo, la CA raíz, las CA emisoras y el punto de distribución de la lista de revocación de certificados (CRL) están todos en la misma red y emiten certificados criptográficos solo para usuarios y dispositivos en la misma red privada.

Figura 2: Jerarquía de PKI local en una sola red

Planificación de la implementación de su sistema PKI

Es importante considerar cuidadosamente los requisitos de su negocio, los casos de uso de cifrado, la arquitectura de la red corporativa y las capacidades de sus equipos internos. También debe planificar cómo administrar la confidencialidad, la integridad y la disponibilidad de las claves criptográficas. Estas consideraciones deben guiar el diseño y la implementación de su nuevo sistema PKI.

En la siguiente sección, describimos los servicios y componentes clave utilizados para diseñar e implementar esta solución PKI híbrida.

 

Servicios y componentes clave de esta solución PKI híbrida

 

Descripción general de la solución

Esta PKI híbrida se puede usar si necesita una nueva PKI privada o desea actualizar una PKI existente con un proveedor de servicios criptográficos (CSP) a una PKI segura con Windows Cryptography Next Generation (CNG). El diseño híbrido de PKI le permite administrar sin problemas las claves criptográficas en la infraestructura de TI de su organización, desde las instalaciones hasta varias redes de AWS.

Figura 3: Arquitectura de la solución PKI híbrida

 

La arquitectura de la solución se muestra en la figura anterior: Figura 3. La solución utiliza una CA raíz fuera de línea que se puede operar en las instalaciones o en una VPC de Amazon, mientras que las CA de Windows subordinadas se ejecutan en instancias EC2 y están integradas con CloudHSM para la gestión y el almacenamiento de claves. Para aislar la PKI del acceso externo, el clúster de CloudHSM se implementa en subredes protegidas, las instancias EC2 se implementan en subredes privadas y la VPC del host tiene conectividad de red de sitio a sitio con la red local. Los volúmenes de Amazon EC2 se cifran con claves administradas por el cliente de AWS KMS. Los usuarios y dispositivos se conectan y se suscriben a la interfaz PKI a través de un Network Load Balancer.

Esta solución también incluye una CA privada subordinada de ACM para emitir certificados que se instalarán en los servicios de AWS integrados con ACM. Por ejemplo, ELB, CloudFront y API Gateway. Esto es para que los certificados que ven los usuarios siempre se presenten desde la PKI interna de su organización.

Requisitos previos para implementar esta PKI interna híbrida en AWS

Se requiere experiencia con la nube de AWS, Windows Server y AD CS para implementar y configurar esta solución.

  • Una cuenta de AWS para implementar recursos en la nube.
  • Una CA raíz fuera de línea, que se ejecute en Windows 2016 o posterior, para firmar CloudHSM y emitir CA, incluidas las CA privadas y las CA de Windows. Aquí hay un artículo de inicio rápido de AWS para implementar su CA raíz en una VPC. Recomendamos instalar Windows Root CA en su propia cuenta de AWS.
  • Una VPC con al menos cuatro subredes. Dos o más subredes públicas y dos o más subredes privadas, en dos o más AZ, con reglas de firewall seguras como HTTPS para comunicarse con sus servidores web PKI a través de un balanceador de carga, junto con DNS, RDP y otro puerto para comunicarse en la red de su organización. Puede usar esta plantilla de VPC de CloudFormation de ejemplo para ayudarlo a comenzar a aprovisionar su VPC de PKI.
  • AWS Direct Connect o conexión VPN de sitio a sitio desde su VPC a su red local y otras VPC para administrar de forma segura varias redes.
  • Instancias EC2 de Windows 2016 para CA subordinadas.
  • Un entorno de Active Directory que tenga acceso a la VPC que aloja los servidores PKI. Esto es necesario para una implementación de Windows Enterprise CA.

 

Implementar la solución

El código de CloudFormation y las instrucciones a continuación lo ayudarán a implementar y configurar todos los componentes de AWS que se muestran en el diagrama de arquitectura anterior. Para implementar la solución, desplegará una serie de plantillas de CloudFormation a través de la Consola de administración de AWS.

Si no está familiarizado con CloudFormation, aprenda sobre él en Primeros pasos con AWS CloudFormation. Las plantillas para esta solución se pueden implementar mediante la consola de CloudFormation, el catálogo de servicios de AWS o un pipeline de código.

Descargue y revise el paquete de plantillas

Para facilitar la implementación de los componentes de esta solución PKI integrada, descargue e implemente un paquete de plantillas. El paquete incluye un conjunto de plantillas de CloudFormation y un script de PowerShell para completar la integración entre los servidores CloudHSM y Windows CA.

Para descargar el paquete de plantillas

  1. Descargue o clone el repositorio de código fuente de la solución desde AWS GitHub.
  2. Revise las descripciones de cada plantilla para obtener más instrucciones.

Implemente las plantillas de CloudFormation

Ahora que ha descargado las plantillas, use la consola de CloudFormation para implementarlas.

Para implementar la plantilla de modificación de VPC

Implemente esta plantilla en una VPC existente para crear las subredes protegidas para implementar un clúster de CloudHSM.

  1. Navegue a la consola de CloudFormation.
  2. Seleccione la región de AWS adecuada y a continuación elija Crear pila.
  3. Elija Cargar un archivo de plantilla.
  4. Seleccione 01_PKI_Automated-VPC_Modifications.yaml como el archivo de pila de CloudFormation y elija Siguiente.
  5. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila. Algunos parámetros tienen una lista desplegable que puede usar para seleccionar valores existentes.
Figure 4: Example of a <strong>Specify stack details</strong> page  Figura 4: Ejemplo de una página de detalles de especificación de pila

6. Elija Siguiente, Siguiente, Crear pila.

Para implementar la plantilla de depósito de PKI CDP S3

Esta plantilla crea un bucket de S3 para el punto de distribución de CRL y AIA, con políticas de bucket iniciales que permiten el acceso desde la VPC de PKI y a los usuarios y dispositivos de PKI de su red local, en función de la información que haya proporcionado. Para otorgar acceso a cuentas de AWS, VPC y redes locales adicionales, consulte las instrucciones en la plantilla.

1. Navegue a la consola de CloudFormation.

2. Elija Cargar un archivo de plantilla.

3. Seleccione 02_PKI_Automated-Central-PKI_CDP-S3Bucket.yaml como el archivo de pila de CloudFormation y elija Siguiente.

4. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila.

5. Elija Siguiente, Siguiente y Crear pila

 

Para implementar el modelo subordinado de ACM Private CA

Este paso aprovisiona la CA privada de ACM, que está firmada por una CA raíz de Windows existente. El aprovisionamiento de su CA privada con CloudFormation hace posible firmar la CA con una CA raíz de Windows.

1. Navegue a la consola de CloudFormation.

2. Elija Cargar un archivo de plantilla.

3. Seleccione 03_PKI_Automated-ACMPrivateca-Provisioning.yaml como el archivo de pila de CloudFormation y elija Siguiente.

4. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila. Algunos parámetros tienen una lista desplegable que puede usar para seleccionar valores existentes.

5. Elija Siguiente, Siguiente, Crear pila.

Asignar y configurar certificados

Después de implementar las plantillas anteriores, use la consola para asignar permisos de renovación de certificados a ACM y configurar sus certificados.

Para asignar permisos de renovación

1. En la consola de CA privada de ACM, seleccione CA privadas.

2. Seleccione su CA privada de la lista.

3. Elija la pestaña Permisos.

4. Seleccione Autorizar ACM para usar esta CA para renovaciones.

5. Elija Guardar.

Para firmar certificados de CA privados con una CA externa (consola)

1. En la consola de CA privada de ACM, seleccione su CA privada de la lista.

2. En el menú Acciones, elija Importar certificado CA. La consola de ACM Private CA devuelve la solicitud de firma de certificado (CSR).

3. Elija Exportar CSR a un archivo y guárdelo localmente.

4. Elija Siguiente.

a. Utilice su CA raíz de Windows existente.

b. Copie la CSR en la CA raíz y fírmela.

c. Exporte la CSR firmada en formato base64.

d. Exporte el certificado <RootCA>.crt en formato base64.

5. En la página Cargar certificados, cargue los certificados CSR y RootCA firmados.

6. Elija Confirmar e importar para importar el certificado de CA privado.

Para solicitar un certificado privado mediante la consola de ACM

Nota: Tome nota de los ID de certificado que configura en esta sección para usar al implementar las plantillas de escucha de HTTPS CloudFormation.

1. Inicie sesión en la consola y abra la consola de ACM.

2. Elija Solicitar un certificado.

3. En la página Solicitar un certificado, elija Solicitar un certificado privado y Solicitar un certificado para continuar.

4. En la página Seleccionar una autoridad de certificación (CA), elija Seleccionar una CA para ver la lista de CA privadas disponibles.

5. Elija Siguiente.

6. En la página Agregar nombres de dominio, ingrese su nombre de dominio. Puede utilizar un nombre de dominio completo, como www.example.com, o un nombre de dominio simple, también llamado vértice, como example.com. También puede usar un asterisco (*) como comodín en la posición más a la izquierda para incluir todos los subdominios bajo el mismo dominio raíz. Por ejemplo, puede usar *.example.com para incluir todos los subdominios del dominio raíz de example.com.

7. Para agregar otro nombre de dominio, elija Agregar otro nombre a este certificado y escriba el nombre en el cuadro de texto.

8. (Opcional) En la página Agregar etiquetas, verifique su certificado.

9. Cuando termine de agregar etiquetas, elija Revisar y realizar el pedido.

10. Si la página Revisar y realizar el pedido contiene la información correcta sobre su pedido, seleccione Confirmar y realizar el pedido.

Nota: Puede obtener más información en Solicitud de un certificado privado.

Para compartir la CA privada con otras cuentas o su organización

Puede utilizar ACM Private CA para compartir una sola CA privada con varias cuentas de AWS. Para compartir su CA privada con varias cuentas, siga las instrucciones en Uso de AWS RAM para compartir su cuenta cruzada de ACM Private CA.

Continuar implementando plantillas de CloudFormation

Con los certificados asignados y configurados, puede completar la implementación de las plantillas de CloudFormation para esta solución.

Para implementar la plantilla del balanceador de carga de red

En este paso, aprovisiona un balanceador de carga de red.

1. Navegue a la consola de CloudFormation.

2. Elija Cargar un archivo de plantilla.

3. Seleccione 05_PKI_Automated-LoadBalancer-Provisioning.yaml como el archivo de pila de CloudFormation y elija Siguiente.

4. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila. Algunos parámetros se completan automáticamente o tienen una lista desplegable que puede usar para seleccionar valores existentes.

5. Elija Siguiente, Siguiente, Crear pila.

Para implementar la plantilla de configuración del agente de escucha HTTPS

Los siguientes pasos crean el agente de escucha HTTPS con una configuración inicial para el balanceador de carga.

1. Navegue a la consola de CloudFormation:

2. Elija Cargar un archivo de plantilla.

3. Seleccione 06_PKI_Automated-HTTPS-Listener.yaml como el archivo de pila de CloudFormation y elija Siguiente.

4. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila. Algunos parámetros se completan automáticamente o tienen una lista desplegable que puede usar para seleccionar valores existentes.

5. Elija Siguiente, Siguiente, Crear pila.

Para implementar la plantilla CMK de AWS KMS

En este paso, crea una CMK de AWS KMS para cifrar volúmenes EC2 EBS y otros recursos. Esto es necesario para las instancias EC2 de esta solución.

1. Abra la consola de CloudFormation.

2. Elija Cargar un archivo de plantilla.

3. Seleccione 04_PKI_Automated-KMS_CMK-Creation.yaml como el archivo de pila de CloudFormation y elija Siguiente.

4. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila.

5. Elija Siguiente, Siguiente, Crear pila.

Para implementar el modelo de aprovisionamiento de instancias de Windows EC2

Esta plantilla aprovisiona una instancia EC2 de Windows especialmente diseñada en una VPC existente. Aprovisionará una instancia EC2 para la CA de Windows, con KMS para cifrar el volumen de EBS, un perfil de instancia de IAM e instalará automáticamente el agente de SSM en su instancia.

También tiene funciones y flexibilidades opcionales. Por ejemplo, la plantilla puede crear automáticamente un nuevo grupo objetivo o agregar una instancia a un grupo objetivo existente. También puede configurar reglas de escucha, crear registros de Route 53 y unirse automáticamente a un dominio de Active Directory.

Nota: AWS KMS CMK y el rol de IAM son necesarios para aprovisionar EC2, mientras que el grupo de destino, las reglas de escucha y las características de unión al dominio son opcionales.

1. Navegue a la consola de CloudFormation.

2. Elija Cargar un archivo de plantilla.

3. Seleccione 07_PKI_Automated-EC2-servers-provisioning.yaml como el archivo de pila de CloudFormation y elija Siguiente.

4. En la página Especificar los detalles de la pila, ingrese el nombre y los parámetros de la pila. Algunos parámetros se completan automáticamente o tienen una lista desplegable que puede usar para seleccionar valores existentes.

Nota: La sección de propiedades opcionales al final de la lista de parámetros no es necesaria si no está uniendo la instancia EC2 a un dominio de Active Directory.

5. Elija Siguiente, Siguiente, Crear pila.

Crear e inicializar un clúster de CloudHSM

En esta sección, creará y configurará CloudHSM en las subredes de VPC aprovisionadas en los pasos anteriores. Una vez que el clúster de CloudHSM esté completo y firmado por la CA raíz de Windows, se integrará con los servidores EC2 de Windows aprovisionados en las secciones anteriores.

Para crear un clúster de CloudHSM

1. Inicie sesión en su cuenta de AWS, abra la consola y navegue hasta CloudHSM.

2. Elija Crear clúster.

3. En la sección Configuración del clúster:

a. Seleccione la VPC que creó.

b. Seleccione las tres subredes privadas que creó en las zonas de disponibilidad en los pasos anteriores.

4. Elija Siguiente: Revisar.

5. Revise la configuración de su clúster y elija Crear clúster.

Para crear un HSM

1. Abra la consola y vaya al clúster de CloudHSM que creó en el paso anterior.

2. Elija Inicializar.

3. Seleccione una AZ para el HSM que está creando y luego elija Crear.

Para descargar y firmar un CSR

Antes de inicializar el clúster, debe descargar y firmar una CSR generada por el primer HSM del clúster.

1. Abra la consola de CloudHSM.

2. Elija Inicializar junto al clúster que creó anteriormente.

3. Cuando el CSR esté listo, seleccione Cluster CSR para descargarlo.

Figure 5: Download CSR

Figura 5: Descargar el CSR

Para inicializar el clúster

  1. Abra la consola de CloudHSM.
  2. Elija Inicializar junto al clúster que creó anteriormente.
  3. En la página de solicitud de firma de certificado de descarga, seleccione Siguiente. Si Siguiente no está disponible, elija uno de los enlaces CSR o Certificado, luego elija Siguiente.
  4. En la página Firmar solicitud de firma de certificado (CSR), seleccione Siguiente.
  5. Utilice su CA raíz de Windows existente.
  6. a. Copie la CSR en la CA raíz y fírmela.
  7. b. Exporte la CSR firmada en formato base64.
  8. d. Exporte también el certificado <RootCA>.crt en formato base64.
  9. En la página Cargar certificados, cargue los certificados CSR y CA raíz firmados.
  10. Elija Cargar e inicializar.

Integre el clúster CloudHSM con Windows Server AD CS

En esta sección, se utiliza un script que proporciona instrucciones paso a paso para ayudarle a integrar correctamente su CA de Windows Server con AWS CloudHSM.

Para integrar el clúster de CloudHSM con Windows Server AD CS

Abra el script 09_PKI_AWS_CloudHSM-Windows_CA-Integration-Playbook.txt y siga las instrucciones para completar la integración de CloudHSM con los servidores de Windows.

Instalar y configurar Windows CA con CloudHSM

Una vez que se complete la integración con CloudHSM, instale y configure su Windows Server CA con el proveedor de almacenamiento de claves CloudHSM y seleccione RSA #Cavium Key Storage Provider como su proveedor criptográfico.

 

Conclusión

Al implementar la solución híbrida en esta publicación, implementó una PKI para administrar la seguridad en todas las cargas de trabajo en sus cuentas de AWS y en su red local.

Con esta solución, puede utilizar una CA privada para emitir certificados de seguridad de la capa de transporte (TLS) para sus balanceadores de carga de aplicaciones, balanceadores de carga de red, CloudFront y otras cargas de trabajo de AWS en varias cuentas y VPC. Windows CA le permite mejorar su seguridad interna al vincular sus usuarios internos, dispositivos digitales y aplicaciones a las claves privadas apropiadas. Puede usar esta solución con TLS, seguridad de protocolo de Internet (IPsec), firmas digitales, VPN, autenticación de red inalámbrica y más.

 

Recursos adicionales

Si tiene comentarios sobre esta publicación, envíe sus comentarios en la sección Comentarios a continuación. Si tiene preguntas sobre esta publicación, inicie un nuevo hilo en el foro de AWS Certificate Manager o el foro de CloudHSM, o comuníquese con AWS Support.

¿Quiere más anuncios de recursos, noticias y contenido procesable sobre la seguridad de AWS? Síganos en Twitter.

 

Este artículo fue traducido del Blog da AWS em Inglês.

 


Acerca del autor

Max Farnga es consultor de transformación de seguridad para los servicios profesionales de AWS: equipo de seguridad, riesgo y cumplimiento. Tiene una formación técnica diversa en infraestructura, seguridad y computación en la nube. Ayuda a los clientes de AWS a implementar soluciones seguras e innovadoras en la nube de AWS.

 

 

 

 

Revisores

Francisco Ariza es un Arquitecto de Soluciones del equipo de Cloud Solutions Center para Latinoamérica que está basado en Colombia. Tiene una formación técnica en ingeniería de software e ingeniería de información con énfasis en analítica, inteligencia artificial y Big Data. Apoya a pequeñas y medianas empresas a potencializar su negocio con la nube de AWS.