Este artigo tem objetivo construir imagem de contêiner segura e atualizada para o chart helm do Keycloak da Bitnami. Utilizando os projetos Apko e Melange, garantimos que a imagem esteja livre de Vulnerabilidades e Exposições Comuns (CVEs), oferecendo uma solução robusta e segura para ambientes de produção.

Anteriormente, escrevi outro artigo que demonstra o uso das imagens bases do Wolfi, uma distribuição Linux segura que usa o Alpine para tornar as imagens dos seus projetos mais segura:

Wolfi com Dockerfiles | Uma Abordagem Segura e Eficiente

Motivação

O Keycloak da Bitnami é um projeto que automatiza a construção de uma imagem do Keycloak para uso com o Bitnami, visando manter a compatibilidade com projetos que utilizam os charts helm da Bitnami e com um foco especial em segurança. Utilizando ferramentas fornecidas pela Chainguard, através dos projetos Apko e Melange, é possível aplicar correções de CVEs em imagens Docker, garantindo que a imagem resultante esteja protegida contra vulnerabilidades graves conhecidas.

Link: https://bitnami.com/stack/keycloak/helm

Ferramentas Utilizadas

Melange

O Melange é uma ferramenta de construção de pacotes APK que utiliza pipelines declarativos para criar os pacotes. É parte integrante das ferramentas de código aberto usadas pelo Wolfi, o sistema operacional que constroi as imagens do Chainguard, o qual seria possível construir pacotes personalizados quando as dependências necessárias não estão disponíveis no Wolfi, garantindo assim a flexibilidade e compatibilidade necessárias para diferentes projetos.

Link: https://edu.chainguard.dev/open-source/build-tools/melange/overview/

Apko

O Apko é uma ferramenta para trabalhar com imagens da Chainguard, o qual seria inspirado na ferramenta ko build e facilita a criação de imagens de contêineres seguras, no qual automatiza a inclusão de pacotes com as correções imediatas de vulnerabilidades conhecidas no mercado.

Link: https://edu.chainguard.dev/open-source/build-tools/apko/overview/

apko_melange_ecosystem_hu6466fa4d3ca2be1551c385d0a0b84b16_214353_900x0_resize_lanczos_3.png

Pré-requisitos e Instalação

Antes de iniciar a construção da imagem de contêiner, certifique-se de ter os seguintes pré-requisitos instalados: