オフライン設定
- プラン: Ultimate
- 提供形態: GitLab Self-Managed
インターネット経由で外部リソースへのアクセスが制限されている、または不安定な環境にあるインスタンスでは、DASTジョブを正常に実行するためにいくつかの調整が必要です。詳細については、オフライン環境を参照してください。
オフラインDASTサポートの要件
オフライン環境では、どのバージョンのDASTも使用できます。これを行うには、以下が必要です:
dockerまたはkubernetesexecutorを備えたGitLab Runner。Runnerは、ターゲットアプリケーションへのネットワークアクセス権を持っている必要があります。- DAST コンテナイメージのローカルで利用可能なコピーを含むDockerコンテナレジストリ(DASTコンテナレジストリにあります)。オフラインホストへのDockerイメージのロードを参照してください。
GitLab Runnerでは、デフォルトでpull policyがalwaysになっています。つまり、ローカルコピーが利用可能な場合でも、RunnerはGitLabコンテナレジストリからDockerイメージをプルしようとします。オフライン環境ではローカルで利用可能なDockerイメージのみを使用する場合は、GitLab Runnerのpull_policyをif-not-presentに設定できます。ただし、オフライン環境でない場合は、プルポリシーの設定をalwaysのままにしておくことをおすすめします。これにより、CI/CDパイプラインで常に最新のスキャナーを使用できるようになります。
Dockerレジストリ内でGitLab DASTアナライザーイメージを利用できるようにする
DASTの場合は、次のデフォルトのDASTアナライザーイメージをregistry.gitlab.comからローカルDockerコンテナレジストリにインポートします:
registry.gitlab.com/security-products/dast:latest
DockerイメージをローカルのオフラインDockerレジストリにインポートするプロセスは、your network security policy(ネットワークのセキュリティポリシー)によって異なります。IT部門に相談して、外部リソースをインポートまたは一時的にアクセスするための承認済みプロセスを確認してください。これらのスキャナーは新しい定義で定期的に更新されています。また、自分で随時更新できる場合もあります。
Dockerイメージをファイルとして保存および転送する方法の詳細については、docker save 、docker load 、docker export 、docker importに関するDockerのドキュメントを参照してください。
ローカルDASTアナライザーを使用するようにDAST CI/CDジョブ変数を設定する
次の設定を.gitlab-ci.ymlファイルに追加します。imageを、ローカルDockerコンテナレジストリでホストされているDAST Dockerイメージを参照するように置き換える必要があります:
include:
- template: DAST.gitlab-ci.yml
dast:
image: registry.example.com/namespace/dast:latestこの設定により、DASTジョブは、インターネットアクセスを必要とせずに、DASTアナライザーのローカルコピーを使用してコードをスキャンし、セキュリティレポートを生成できるようになります。
または、CI/CD変数SECURE_ANALYZERS_PREFIXを使用して、dastイメージのベースレジストリアドレスをオーバーライドできます。