Checkov avec Github Action

Salut!

J’utilise très souvent l’outil open source Checkov afin de réaliser des scans du code que je développe pour les infrastructures que je réalise.

Checkov vous permet de scanner du code dit d’infrastructure as code (Les plateformes Azure, AWS et Google Cloud sont supportés) avec les languages suivants:

  • ARM
  • Terraform
  • Cloud Formation
  • Kubernetes
  • Serverless framework

L’outil vous propose par défaut plus de 400 checks de sécurité – https://github.com/bridgecrewio/checkov/blob/master/docs/3.Scans/resource-scans.md

Mais il est tout à fait possible de réaliser ses propres checks – https://github.com/bridgecrewio/checkov/blob/master/docs/5.Contribution/New-Check.md

Je vous propose de regarder ensemble comment nous pouvons intégrer checkov dans un workflow Github Action. Dans cet exemple notre scan d’exécutera lors d’un merge dans la branche master.

Vous trouverez ci-dessous le code que j’utilise pour mon workflow, libre à vous de l’adapter à vos besoins.

---
name: Checkov
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7]
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v1
        with:
          python-version: ${{ matrix.python-version }}
      - name: Test with Checkov
        run: |
          pip install checkov
          checkov -d .

Je vous donne rendez-vous dans votre repository github, puis je vous invite à cliquer sur l’onglet ‘Actions’ puis « set up a workflow yourself ».

Copier/Coller le code précédent et cliquer sur « Start commit »

Enfin cliquer sur « Commit new file »

Notre workflow est désormais en place, il s’exécutera lors du prochain merge de votre code dans la branche « master ».

Ci-dessous un exemple d’un scan:

Maxime.

Démarrez une conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *