Ya sea que se ejecute en una nube pública o privada, el uso de contenedores está arraigado en los flujos de trabajo orientados a desarrolladores de hoy en día. Por lo tanto, las cargas de trabajo deben configurarse para ejecutarse según los requisitos de cumplimiento obligatorios para aprovechar al máximo el potencial de los contenedores. Este artículo se centra en la creación y el funcionamiento de contenedores que cumplen con los estándares de protección de datos FIPS140-2 de los gobiernos de EE. UU. y Canadá.Para crear contenedores compatibles con Ubuntu 18.04 FIPS140-2, necesita un paquete certificado por FIPS140-2, accesible a través de una suscripción de Ubuntu Advantage o Ubuntu Pro en AWS o Azure
En nuestro ejemplo, demostraremos la creación de un contenedor FIPS en una imagen FIPS de Ubuntu Pro. Las imágenes de Ubuntu Pro FIPS están disponibles en Mercado de AWS y Mercado azulEstá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 para brindar los beneficios de Ubuntu Advantage sin suscripción. Las características clave incluyen parches de kernel en vivo, mayor tiempo de actividad y componentes certificados por FIPS140-2 para casos de uso de FedRAMP, HIPAA y PCI. Ubuntu Pro está respaldado por el compromiso de mantenimiento de 10 años de Canonical.
Sin entrar en los detalles de FIPS140-2, es importante enfatizar que un concepto clave de FIPS es que sus requisitos cubren todo el sistema, desde el núcleo hasta el paquete FIPS cifrado. Por lo tanto, cuando nos referimos a contenedores FIPS, nos referimos a imágenes de contenedor que contienen paquetes de cifrado FIPS de Ubuntu (p. ej., libgcrypt, openssl).Dado que la imagen del contenedor usa el kernel del host, el contenedor debe ejecutar Bajo el kernel de Ubuntu habilitado para FIPS para el cumplimiento de FIPS. Como regla general, cada contenedor FIPS de Ubuntu debe ejecutarse bajo un sistema de lanzamiento de Ubuntu equivalente con FIPS habilitado en el kernel.
El sistema que generará el contenedor FIPS debe tener una suscripción de Ubuntu Advantage adjunta, o puede ser una imagen de Ubuntu Pro FIPS. Las imágenes de Ubuntu Pro FIPS están disponibles en Mercado de AWS y Mercado azul.
Para simplificar, en este artículo demostraremos cómo generar dicho contenedor en una instancia de nube pública (AWS o Azure). Usaremos la AMI «Ubuntu Pro FIPS 18.04 LTS» en AWS EC2 y la imagen «Ubuntu Pro FIPS 18.04 LTS» en Azure.El ejemplo es muy similar cuando se usa un sistema Ubuntu habilitado para FIPS con una suscripción de Ubuntu Advantage adjunta.
Construya el contenedor con los componentes FIPS necesarios
Inicie «Ubuntu Pro FIPS 18.04 LTS» en AWS o Azure. Estas instancias tienen FIPS habilitado de fábrica. La instancia iniciada se usará para compilar y ejecutar el contenedor con el paquete FIPS.
Una vez que su instancia de trabajo de FIPS se esté ejecutando, puede generar un contenedor compatible con FIPS como se muestra a continuación. Puede ajustar la lista de paquetes instalados para incluir solo los paquetes requeridos por la 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, ejecútelo en Ubuntu FIPS 18.04 LTS:
$ sudo docker run -it ubuntu18-fips bash
Su contenedor ahora está listo para enviarse a su registro privado y usarse para impulsar sus cargas de trabajo.
generalizar
- Puede crear y ejecutar contenedores habilitados para FIPS en cualquier host con una suscripción activa de Ubuntu Advantage o en una imagen de Ubuntu Pro FIPS.
- Solo puede ejecutar contenedores habilitados para FIPS en hosts habilitados para FIPS para cumplir con los requisitos de FIPS140-2.