8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Super-Linter が 6.0.0 から checkov をサポートしました

これにより、これまでより一層厳密なチェックが行われます

ただし、どうしてもチェックで無視してほしい場合というのが出てきます

この記事では GitHub Actions の Super-Linter で checkov に無視してもらう方法を紹介します

checkov とは

checkov はクラウドインフラの構成定義をチェックするツールです

IaC (Infrastracture as Code) ツールで使用するファイルを静的解析し、セキュリティリスクなどを検出します

以下のような IaC 用ファイルに対応しています

  • Terraform
  • CloudFormation
  • AWS SAM
  • Kubernetes
  • Dockerfile
  • Ansible

設定ファイルによる無視

checkov 自体の設定ファイルでルール単位、IaCツール単位の無視が可能です

skip-check: 
  - CKV_DOCKER_3 
  - CKV_DOCKER_2 
skip-framework:
  - dockerfile
  - secrets

デフォルトの設定ファイル名は .checkov.yaml ですが、実行時に --config-file で指定可能です

リソース内のコメントによる無視

各ファイル内にコメントとして無視対象のルールを書くことで無視できます

resource "aws_s3_bucket" "foo-bucket" {
  region        = var.region
  #checkov:skip=CKV_AWS_20:The bucket is a public static content host
  bucket        = local.bucket_name
  force_destroy = true
  acl           = "public-read"
}

Super-Linter での checkov

毎回全てのファイルをチェックしていると時間も費用もかかるため、通常は変更箇所のみチェックするように GitHub Actions を設定します

---
...
      - name: Lint Code Base
        uses: github/super-linter/slim@v6
        env:
          DEFAULT_BRANCH: main
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          LINTER_RULES_PATH: ./
          VALIDATE_ALL_CODEBASE: false

VALIDATE_ALL_CODEBASE: false とすることで、 DEFAULT_BRANCH に指定した main との差分だけをチェックできます

ただし、 checkov に関しては複数ファイル間の参照まで検証する必要があるため、 必ず全量がチェックされます

プルリクエストに関係ない箇所までチェックするため厳密で良い反面、後に対応する予定の箇所などであっても毎回必ずエラーになってしまいます

Issue にも取り上げられていますが、今のところ対策は立てられていません

従って、エラーになるのを防ぐためには checkov に無視してもらう他ない状況です

checkov の無効化

VALIDATE_CHECKOV: false とすることで checkov 自体を無効化することが可能です

ただし、無視すべきもの以外も全て無視することになるためオススメしません

checkov の設定ファイル

環境変数 CHECKOV_FILE_NAME で checkov の設定ファイル名を指定可能です

デフォルトでは .checkov.yaml になっています

LINTER_RULES_PATH: ./ の場合、プロジェクトのルートディレクトリー配下に .checkov.yaml を作ることで設定を変更できます

.checkov.yaml 内に無視したいルールを書きましょう

まとめ

以下の方法で checkov のエラーを無視することができました

  • .checkov.yaml ファイルにスキップ対象のルールを書く
  • 各ファイル内にコメントでスキップ対象のルールを書く

無視する方法を書きましたが、基本的には無視せず対処した方が良いです

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?