Ubuntu

Construyendo y ejecutando contenedores FIPS en Ubuntu

Construyendo y ejecutando contenedores FIPS en Ubuntu

Ya sea que se ejecute en la nube pública o en una nube privada, el uso de contenedores está arraigado en los flujos de trabajo orientados a devops actuales. Tener cargas de trabajo configuradas para ejecutarse bajo los requisitos de cumplimiento obligatorios es, por lo tanto, necesario para aprovechar al máximo el potencial de los contenedores. Este artículo se centra en cómo construir y ejecutar contenedores que cumplan con el estándar de protección de datos FIPS140-2 del gobierno de EE. UU. Y Canadá. Para crear contenedores compatibles con Ubuntu FIPS140-2, necesitará los paquetes certificados FIPS140-2, a los que se puede acceder con una suscripción a Ubuntu Advantage o con Ubuntu Pro en AWS o Azure

En nuestro ejemplo, demostraremos la construcción de un contenedor FIPS en una imagen FIPS de Ubuntu Pro. Las imágenes de Ubuntu Pro FIPS están disponibles en AWS Marketplace y Azure Marketplace. Están preconfigurados y optimizados para el estándar de protección de datos FIPS140-2 del gobierno de EE. UU. Y Canadá. Son imágenes premium diseñadas por Canonical y brindan los beneficios de Ubuntu Advantage, sin la necesidad de una suscripción. Las características clave incluyen parches de kernel en vivo, lo que permite tiempos de actividad más prolongados, y componentes certificados FIPS140-2 para su uso en casos de uso de FedRAMP, HIPAA y PCI. Ubuntu Pro está respaldado por un compromiso de mantenimiento de 10 años de Canonical.

Requisitos de FIPS

Sin entrar en detalles sobre FIPS140-2, es importante subrayar que un concepto clave de FIPS es que sus requisitos cubren todo el sistema, desde el kernel hasta los paquetes FIPS criptográficos. Entonces, cuando nos referimos a un contenedor FIPS, nos referimos a una imagen de contenedor que contiene los paquetes criptográficos FIPS de Ubuntu (por ejemplo, libgcrypt, openssl). Como las imágenes de contenedor usan el kernel del host, ese contenedor debe correr bajo un kernel habilitado para FIPS de Ubuntu para cumplir con los requisitos de FIPS. Como regla general, cada contenedor FIPS de Ubuntu debe ejecutarse bajo el sistema de versión de Ubuntu equivalente, con FIPS habilitado en el kernel.

Configurar el sistema para generar un contenedor

El sistema que generará el contenedor FIPS debe tener una suscripción Ubuntu Advantage adjunta, o puede ser una imagen FIPS de Ubuntu Pro. Las imágenes de Ubuntu Pro FIPS están disponibles en AWS Marketplace y Azure Marketplace.

Para simplificar las cosas, en este artículo, demostraremos cómo generar dicho contenedor en una instancia de nube pública (AWS o Azure). En AWS EC2 usaremos la AMI ‘Ubuntu Pro FIPS 18.04 LTS’ y en Azure la imagen ‘Ubuntu Pro FIPS 18.04 LTS’. El ejemplo es muy similar cuando se usa un sistema Ubuntu con la suscripción Ubuntu Advantage adjunta y FIPS habilitado

Genere el contenedor con los componentes FIPS necesarios

Inicie un ‘Ubuntu Pro FIPS 18.04 LTS’ en AWS o Azure. Las instancias vienen con FIPS habilitado de fábrica. La instancia lanzada se utilizará para construir y ejecutar los contenedores con los paquetes FIPS.

Una vez que su instancia de trabajador de FIPS se esté ejecutando, puede generar un contenedor compatible con FIPS de la siguiente manera. Puede ajustar la lista de paquetes instalados para incluir solo los necesarios para su carga de trabajo.

$ mkdir -p ubuntu18-fips/packages

# install docker
$ sudo apt-get update
$ sudo apt-get install -y docker.io

#start the docker daemon
$ sudo systemctl start docker

# download the FIPS components to be included in the container
$ sudo apt-get clean
$ sudo apt-get install -y --reinstall --download-only 
    openssh-client openssh-client-hmac openssh-server 
    openssh-server-hmac strongswan strongswan-hmac 
    openssh-sftp-server libstrongswan libstrongswan-standard-plugins 
    strongswan-starter strongswan-libcharon strongswan-charon 
    openssl libssl1.1 libssl1.1-hmac kcapi-tools libkcapi1

# Next you’ll want to copy those deb packages to your build directory
$ cp /var/cache/apt/archives/*.deb ubuntu18-fips/packages/
$ cd ubuntu18-fips
$ cat >Dockerfile <<_EOF_
FROM ubuntu:18.04

RUN apt-get update
ADD packages packages/
RUN apt-get install -y ./packages/*.deb 
RUN apt-get clean
RUN rm -rf ./packages
_EOF_

$ sudo docker build -t ubuntu18-fips .

Para probar su contenedor recién creado, dentro de Ubuntu FIPS 18.04 LTS ejecute:

$ sudo docker run -it ubuntu18-fips bash

Su contenedor ahora está listo y puede enviarse a su registro privado y usarse para impulsar sus cargas de trabajo.

Resumen

  • Puede crear y ejecutar contenedores habilitados para FIPS en cualquier host con una suscripción válida a Ubuntu Advantage o en imágenes FIPS de Ubuntu Pro.
  • Puede ejecutar contenedores habilitados para FIPS solo en hosts habilitados para FIPS para cumplir con los requisitos de FIPS140-2.

Leave a Comment

You may also like

Más