第2章 Web コンソールで OpenShift Pipelines を設定してソフトウェアサプライチェーンのセキュリティー要素を表示する方法


開発者 または 管理者 のパースペクティブを使用して、パイプラインを作成または変更し、プロジェクト内の主要なソフトウェアサプライチェーンセキュリティー要素を表示します。

以下を表示するには OpenShift Pipelines を設定します。

  • プロジェクトの脆弱性: プロジェクト内で特定された脆弱性の視覚的な表現。
  • ソフトウェア部品表 (SBOM): PipelineRun コンポーネントの詳細なリストをダウンロードまたは表示します。

さらに、Tekton Chains の要件を満たす PipelineRun には、名前の横に署名付きバッジが表示されます。このバッジは、パイプライン実行の実行結果が暗号的に署名され、OCI イメージ内などに安全に保存されていることを示します。

図2.1 署名済みのバッジ

badge

PipelineRun では、Tekton Chains が設定されている場合にのみ、名前の横に署名されたバッジが表示されます。Tekton Chains の設定は、OpenShift Pipelines サプライチェーンセキュリティーでの Tekton Chains の使用 を参照してください。

2.1. プロジェクトの脆弱性を表示するための OpenShift Pipelines の設定

PipelineRun の詳細ページには、特定された脆弱性が重大度 (重大、高、中、低) 別に分類されて視覚的に表示されます。この合理化されたビューにより、優先順位付けと修復作業が容易になります。

図2.2 PipelineRun の詳細ページでの脆弱性表示

脆弱性の詳細

パイプライン実行リストビューページの Vulnerabilities 列で脆弱性を確認することもできます。

図2.3 PipelineRun リストビューでの脆弱性表示

脆弱性リスト
注記

特定された脆弱性の視覚的な表現は、OpenShift Container Platform バージョン 4.15 リリース以降で利用できます。

前提条件

手順

  1. 開発者 または 管理者 のパースペクティブで、脆弱性を視覚的に表現する関連プロジェクトに切り替えます。
  2. 既存の脆弱性スキャンタスクを更新して、出力が .json ファイルに保存され、次の形式で脆弱性の概要が抽出されるようにします。

    # The format to extract vulnerability summary (adjust the jq command for different JSON structures).
    jq -rce \
        '{vulnerabilities:{
          critical: (.result.summary.CRITICAL),
          high: (.result.summary.IMPORTANT),
          medium: (.result.summary.MODERATE),
          low: (.result.summary.LOW)
          }}' scan_output.json | tee $(results.SCAN_OUTPUT.path)
    注記

    異なる JSON 構造に合わせて jq コマンドを調整する必要がある場合があります。

    1. (オプション) 脆弱性スキャンタスクがない場合は、次の形式で作成します。

      Roxctl を使用した脆弱性スキャンタスクの例

      apiVersion: tekton.dev/v1
      kind: Task
      metadata:
        name: vulnerability-scan  1
        annotations:
          task.output.location: results  2
          task.results.format: application/json
          task.results.key: SCAN_OUTPUT  3
      spec:
        params:
          - description: Image to be scanned
            name: image
            type: string
        results:
          - description: CVE result format  4
            name: SCAN_OUTPUT
        steps:
          - name: roxctl
            image: 'quay.io/lrangine/crda-maven:11.0'  5
            env:
              - name: ROX_CENTRAL_ENDPOINT
                valueFrom:
                  secretKeyRef:
                    key: rox_central_endpoint    6
                    name: roxsecrets
              - name: ROX_API_TOKEN
                valueFrom:
                  secretKeyRef:
                    key: rox_api_token   7
                    name: roxsecrets
      
            name: roxctl-scan
            script: | 8
              #!/bin/sh
              curl -k -L -H "Authorization: Bearer $ROX_API_TOKEN" https://$ROX_CENTRAL_ENDPOINT/api/cli/download/roxctl-linux --output ./roxctl
              chmod +x ./roxctl
              ./roxctl image scan --insecure-skip-tls-verify -e $ROX_CENTRAL_ENDPOINT --image $(params.image) --output json  > roxctl_output.json
              jq -rce \
              "{vulnerabilities:{
              critical: (.result.summary.CRITICAL),
              high: (.result.summary.IMPORTANT),
              medium: (.result.summary.MODERATE),
              low: (.result.summary.LOW)
              }}" roxctl_output.json | tee $(results.SCAN_OUTPUT.path)
      1
      タスクの名前。
      2
      タスク出力を保存する場所。
      3
      スキャンタスク結果の命名規則。有効な命名規則は、SCAN_OUTPUT 文字列で終わる必要があります。たとえば、SCAN_OUTPUT、MY_CUSTOM_SCAN_OUTPUT、ACS_SCAN_OUTPUT などです。
      4
      結果の説明。
      5
      スキャンツールを実行するコンテナーイメージの場所です。
      6
      Advanced Cluster Security for Kubernetes (ACS) から取得した rox_central_endpoint キー。
      7
      ACS から取得した rox_api_token
      8
      シェルスクリプトは脆弱性スキャンを実行し、タスク実行結果にスキャン出力を設定します。
    注記

    これは設定例です。結果を必要とされる形式で設定するには、特定のスキャンツールに合わせて値を変更します。

  3. 適切なパイプラインを更新して、次の形式で脆弱性の仕様を追加します。

    ...
    spec:
      results:
        - description: The common vulnerabilities and exposures (CVE) result
          name: SCAN_OUTPUT
          value: $(tasks.vulnerability-scan.results.SCAN_OUTPUT)

検証

  • PipelineRun の詳細ページに移動し、特定された脆弱性の視覚的な表現について Vulnerabilities 行を確認します。
  • または、PipelineRun リストビューページに移動して、Vulnerabilities 列を確認することもできます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.