コンテナスキャンのトラブルシューティング
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
コンテナスキャンを使用していると、以下のイシューが発生する場合があります。
詳細ログを有効にする
コンテナスキャンのジョブの内容を詳しく確認する必要がある場合は、詳細出力を有効にします。詳細については、デバッグレベルのログを生成するを参照してください。
docker: Error response from daemon: failed to copy xattrs
Runnerがdocker executorを使用し、NFSが使用されている場合(例: /var/lib/dockerがNFSマウント上にある場合)、コンテナスキャンが次のようなエラーで失敗する可能性があります。
docker: Error response from daemon: failed to copy xattrs: failed to set xattr "security.selinux" on /path/to/file: operation not supported.このエラーは、Dockerのバグによるエラーで発生していましたが、すでに修正されています)。エラーを防ぐには、Runnerが使用しているDockerのバージョンが18.09.03以上であることを確認してください。詳細については、イシュー#10241を参照してください。
エラー: gl-container-scanning-report.json: no matching files
この警告に関する情報については、アプリケーションセキュリティの一般的なトラブルシューティングのセクションを参照してください。
エラー: unexpected status code 401 Unauthorized: Not Authorized
このエラーは、AWS ECRからコンテナイメージをスキャンし、AWSリージョンが構成されていない場合に発生する可能性があります。スキャナーは認可トークンを取得することができません。SECURE_LOG_LEVELをdebugに設定すると、次のようなログメッセージが表示されます:
[35mDEBUG[0m failed to get authorization token: MissingRegion: could not find region configurationこれを解決するには、AWS_DEFAULT_REGIONをCI/CD変数に追加します。
variables:
AWS_DEFAULT_REGION: <AWS_REGION_FOR_ECR>エラー: unable to open a file: open /home/gitlab/.cache/trivy/ee/db/metadata.json
圧縮されたTrivyデータベースはコンテナの/tmpフォルダーに保存され、ランタイム時に/home/gitlab/.cache/trivy/{ee|ce}/dbに展開されます。このエラーは、Runner設定に/tmpディレクトリのボリュームマウントがある場合に発生する可能性があります。
このイシューを解決するには、/tmpフォルダーをバインドする代わりに、/tmp内の特定のファイルまたはフォルダー(/tmp/myfile.txtなど)をバインドします。
エラー: context deadline exceeded
このエラーは、タイムアウトが発生したことを意味します。これを解決するには、十分な長さの期間を設定したTRIVY_TIMEOUT環境変数をcontainer_scanningジョブに追加します。
古いイメージに基づくイメージで検出された脆弱性はありません
Trivyは、更新を受信しなくなったオペレーティングシステムのイメージをスキャンしません。
これをUIで表示することは、イシュー433325で提案されています。
予期される脆弱性が検出されません
Trivyは言語固有の調査結果をデフォルトではレポートしないため、イメージに脆弱性のあるオペレーティングシステムの依存関係がない場合、空のレポートになる可能性があります。言語固有の調査結果を有効にするには、リンクされたドキュメントの手順に従って、スキャンを再実行してください。
警告: vulnerability database was built X days ago (max allowed age is Y days)
次のようなエラーメッセージが表示される場合があります:
1 error occurred: * the vulnerability database was built 6 days ago (max allowed age is 5 days)コンテナスキャンイメージが5日より古い場合、コンテナスキャンは失敗します。GitLabはイメージを毎日更新しますが、オフライン環境などでイメージのコピーを使用すると、イメージが古くなる可能性があります。現在のイメージにより、Trivyデータベース(イメージに保存されている)が最新の状態になります。
このイシューを解決するには、コンテナスキャンイメージを更新します。詳細については、ローカルコンテナイメージの更新を参照してください。