Na segunda parte, continuaremos a explorar o fluxo de trabalho que desenvolvi para Continuous Integration (CI) utilizando GitHub Actions. Se você acompanhou o primeiro post, já está familiarizado com o contexto geral e pode acessar o repositório do projeto através do link. Neste post, vou guiar passo a passo na configuração e execução da montagem automática de uma imagem Docker, além de mostrar como fazer a verificação de segurança utilizando Docker Scout.
O básico de como entender um Action do GitHub pode ser entendido no meu post anterior. Neste serei mais sucinto por praticidade. Segue o código e explicação de cada action utilizado.
name: Build Image and Run Image Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4.1.1
- name: Set up Docker
uses: docker-practice/actions-setup-docker@v1
with:
docker_version: '20.10.7'
- name: Build Docker Image
run: docker build -f Dockerfile -t myapp:latest .
- name: Docker login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASS }}
- name: Docker Scout Install
run:
curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s --
- name: Docker Scout Run
run:
docker scout quickview
docker scout cves
Checkout code: Clona o repositório do GitHub na máquina virtual de execução, permitindo que o restante do fluxo de trabalho tenha acesso aos arquivos do repositório.
Set up Docker: Esta action configura o ambiente Docker na máquina virtual de execução. Ela utiliza uma action chamada
actions-setup-docker
na versão 1, especificando a versão do Docker que será usada (20.10.7, neste caso).Build Docker Image: Esta action executa o comando
docker build
para construir uma imagem Docker usando o arquivoDockerfile
no diretório raiz do repositório. A imagem resultante recebe o nomemyapp
com a taglatest
.Docker login: Esta action faz o login no Docker Hub para autenticar o acesso ao registro de contêineres. Ela utiliza a action
docker/login-action
na versão 3 e faz uso de credenciais armazenadas como secrets no repositório (DOCKER_USERNAME e DOCKER_PASS).- Para criar as credenciais. Siga os 3 passos abaixo. O nome pode ser qualquer um da sua escolha, e o conteúdo é únicamente a senha para realizar login no seu DOCKER HUB.
Docker Scout Install: Instala a ferramenta Docker Scout na máquina virtual de execução. O comando curl baixa o script de instalação
install.sh
do repositório do Docker Scout e o executa.Docker Scout Run: Esta action executa comandos da ferramenta Docker Scout para realizar verificações de segurança na imagem Docker construída. Os comandos
docker scout quickview
edocker scout cves
são utilizados para visualizar informações rápidas e listar vulnerabilidades conhecidas na imagem, respectivamente.
Em conclusão, neste segundo post, exploramos a integração do Static Application Security Testing (SAST) com a ferramenta Bandit. Demonstrei como configurar a análise de segurança estática do código-fonte do projeto, visando identificar potenciais vulnerabilidades de segurança. Ao implementar essa etapa adicional no fluxo de trabalho, a robustez e a confiabilidade do processo de integração contínua é maior, garantindo a detecção precoce de possíveis falhas de segurança (SHIFT LEFT). Com essas práticas em vigor, o ambiente fica mais preparado para fornecer software mais seguro e resiliente.