HCLをGitにコミットする前に、pre-commitでtfsecを動かして静的解析を行っていましたが、tfsecの開発が終了?したのでTrivyに移行することにしました。その時の設定内容について記述します。
↓参考記事
環境
ツール
- Azure DevOps
- Repos(Git)
- Pipelines
- WSL Ubuntu22.04LST
- trivy
# WSLにHomebrewを入れているので、インストールはHomebrewで行いました。
brew install trivy
- pre-commit
- pre-commit-terraform
tfsecを動かしていたタイミング
- コミットする直前のpre-commit内
- Azure DevOpsのプルリクエストでマージする直前のPipelines内
pre-commit
pre-commitを使う場合、プロジェクトのルートに.pre-commit-config.yaml
を作成していると思うので、tfsecをtrivyに書き換えます。--ignorefileフラグは除外するルールが記述されたファイル、--configフラグはtrivyコマンドのオプションなどが記述されたファイルです。
trivy.yaml
には.terraform以下を対象外にするようにしています。
.pre-commit-config.yaml
- id: terraform_trivy
args:
- >
--args=--ignorefile=__GIT_WORKING_DIR__.trivyignore
--config=__GIT_WORKING_DIR__trivy.yaml
.trivyignore
# パスワード長は社内ルールに準拠しているため除外します。
AVD-AWS-0063
# こめんと
AVD-AWS-0026
trivy.yaml
scan:
skip-files:
- "**/.terraform/**/*"
Azure Pipelines
まず、Azure DevOpsでTrivyエクステンションをインストールします。
azure-pipelines.yml
のtfsecだったところをtrivyに置き換えます。
azure-pipelines.yml
- task: trivy@1
displayName: "Trivy"
inputs:
path: .
options: --ignorefile ./.trivyignore --config ./trivy.yaml
Trivyエクステンションで使えるパラメータは以下を参照
インラインルール除外
tfsecと同じ要領です。
#trivy:ignore:AVD-AWS-0124
以上です。