【Docker】Dockleとgithub-actionsを使ってコンテナイメージの自動脆弱性診断を行う

Dockerを用いて開発を行っている場合、コンテナのセキュリティも少々気になりますよね。そんなときはerzz/dockle-actionを使えばgithub-actions上で脆弱性診断が行なえます。

使い方

以下のyamlを.github/workflows/docker-test.ymlに貼り付けてリモートにpushするだけです。 ただし、ビルドを行う部分docker build -t ${{ env.DOCKER_IMAGE_TAG }} .は適切に変更する必要があります。今回はリポジトリのルートにDockerfileがあるのでこのようにしています。

name: Docker Test
on:
  push:
    branches: [main, dev]
    paths:
      - Dockerfile
  pull_request:
    branches: [main, dev]
    paths:
      - Dockerfile
env:
  DOCKER_IMAGE_TAG: "sample-tag"

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3

      - name: docker-build
        run: |
          docker build -t ${{ env.DOCKER_IMAGE_TAG }} .

      - name: run-dockle
        uses: erzz/dockle-action@v1

        with:
          image: ${{ env.DOCKER_IMAGE_TAG }}
          exit-code: 1
          failure-threshold: fatal

実際にはこのように検証が行われ、WARNよりも危険な問題を含んでいた場合はビルドに失敗するようになっています。

「イメージの検証ならTrivyがあるじゃないか!」という声が飛んでくると思いますが、なんとDockleはtrivyを内包しているので安心です。

以上Dockleの紹介でした。みなさんも自動脆弱性診断を試してみてください!