2.4. CI パイプラインとの統合
これらの手順を完了したら、次のステップは CI パイプラインと統合することです。
各 CI システムでは、わずかに異なる設定が必要になる場合があります。
2.4.1. Jenkins の使用
StackRox Container Image Scanner Jenkins プラグインを使用して、Jenkins と統合します。このプラグインは、Jenkins フリースタイルプロジェクトとパイプラインの両方で使用できます。
2.4.2. CircleCI の使用
Red Hat Advanced Cluster Security for Kubernetes を CircleCI と統合できます。
前提条件
-
Image
リソースのread
とwrite
権限を持つトークンがある。 - Docker Hub アカウントのユーザー名とパスワードがある。
手順
- CircleCI にログインして、既存のプロジェクトを開くか、新しいプロジェクトを作成します。
- Project Settings をクリックします。
- Environment variables をクリックします。
変数の Add variable をクリックして、次の 3 つの環境変数を作成します。
- Name: STACKROX_CENTRAL_HOST - Central の DNS 名または IP アドレス。
- Name: ROX_API_TOKEN - Red Hat Advanced Cluster Security for Kubernetes にアクセスするための API トークン。
- Name: DOCKERHUB_PASSWORD - Docker Hub アカウントのパスワード。
- Name: DOCKERHUB_USER - Docker Hub アカウントのユーザー名。
-
CircleCI 設定ファイルがまだない場合は、選択したプロジェクトのローカルコードリポジトリーのルートディレクトリーに
.circleci
というディレクトリーを作成します。 .circleci
ディレクトリーの次の行にconfig.yml
設定ファイルを作成します。version: 2 jobs: check-policy-compliance: docker: - image: 'circleci/node:latest' auth: username: $DOCKERHUB_USER password: $DOCKERHUB_PASSWORD steps: - checkout - run: name: Install roxctl command: | curl -H "Authorization: Bearer $ROX_API_TOKEN" https://$STACKROX_CENTRAL_HOST:443/api/cli/download/roxctl-linux -o roxctl && chmod +x ./roxctl - run: name: Scan images for policy deviations and vulnerabilities command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_registry/repo/image_name>" 1 - run: name: Scan deployment files for policy deviations command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_deployment_file>" 2 # Important note: This step assumes the YAML file you'd like to test is located in the project. workflows: version: 2 build_and_test: jobs: - check-policy-compliance
注記リポジトリーに CircleCI の
config.yml
ファイルがすでにある場合は、既存の設定ファイルに指定された詳細を含む新しいジョブセクションを追加します。- 設定ファイルをリポジトリーにコミットした後、CircleCI ダッシュボードの Jobs キューに移動して、ビルドポリシーの適用を確認します。