4.4. セキュリティーインサイトの表示
コードを更新して変更をプッシュすると、システムが自動的に on-push
パイプラインをトリガーします。RHTAP は、デフォルトで標準のビルドパイプラインを使用してコンテナーによるデプロイを迅速に実行し、Software Artifacts (SLSA) レベル 3 仕様に準拠してサプライチェーンのセキュリティーを強化します。
図4.1 正常なパイプライン実行

この図は、各パイプラインタスクの概要を示しています。緑色 のステータスは、正常に完了したことを示しています。細かく監視する必要をなくし、ワークフローを効率化します。
初期ビルドパイプラインのタスクは、次のもので構成されます。
-
init
: パイプラインを初期化し、再構築フラグと認証を設定して、PipelineRun のイメージリポジトリーシークレットを生成します。 -
clone-repository
: 指定されたリポジトリーをワークスペースに複製し、git-clone タスクで実行できるように準備します。 build-container
: このタスクは Buildah を使用してソースコードをコンテナーイメージに変換し、指定されたレジストリーにプッシュします。このタスクの主なアクションと結果は次のとおりです。- コンテナーイメージの作成とデプロイメント: Buildah がソースコードをコンテナーイメージにコンパイルします。作成が成功すると、イメージが指定されたイメージレジストリーにプッシュされます。
- Software Bill of Materials (SBOM) の生成: 透明性とコンプライアンスを確保する一環として、コンテナーイメージに含まれるコンポーネント、ライブラリー、依存関係の詳細を示す SBOM が生成されます。この SBOM は最終的なコンテナーイメージ内に埋め込まれ、簡単にアクセスして検証できるようになります。
- SBOM の公開: このタスクでは、SBOM をコンテナーイメージに組み込むだけでなく、Cosign を使用して SBOM を独立したイメージとしてプッシュします。これにより、セキュリティーチームとコンプライアンスチームによる SBOM の管理と検証が容易になります。
-
アーティファクトの作成: このタスクでは、イメージ署名 (
.sig
) やアテステーション (.att
) などの重要なセキュリティーアーティファクトを生成します。これらのアーティファクトは、コンテナーイメージとそのコンテンツの整合性と信頼性を検証するために不可欠であり、デプロイメントパイプライン内で信頼性とセキュリティーを検証するための堅牢なメカニズムを提供します。
-
update-deployment
: 新しくビルドされたイメージを使用してデプロイメント環境を更新します。この更新は、Overlay
>Development
ディレクトリーの GitOps リポジトリーで実行されます。 -
acs
タスク: コードとデプロイメント設定のセキュリティー評価を実施し、確立されたセキュリティーポリシーとベストプラクティスに準拠していることを確認します。 -
show-sbom
: アプリケーションで使用されるすべてのソフトウェアコンポーネントとライブラリーの包括的なリストを作成し、透明性を向上させ、脆弱性管理をサポートします。 -
summary
: PipelineRun の概要を提供し、PipelineRun の情報を追加して、PipelineRun によって使用されるイメージリポジトリーシークレットを削除します。
パイプライン実行内のタスクをクリックすると、タスクが正常に完了したときに生成されたログやその他の詳細にアクセスできます。正常に完了したタスクは、緑色 のチェックで示されます。
4.4.1. Red Hat Advanced Cluster Security のタスク
RHTAP は、パイプライン内で Red Hat Advanced Cluster Security (RHACS) とそのセキュリティーチェックを活用します。RHACS がインストールおよび設定されている場合、パイプラインは RHACS タスク (roxctl image scan
など) を実行します。完了すると緑色のチェックが表示されます。ただし、RHACS がインストールまたは設定されていない場合、パイプラインは RHACS タスクをスキップします。
- パイプライン内の RHACS タスクは、RHTAP のインストールプロセス中に RHACS をインストールおよび設定した場合にのみ、正常に実行します。RHACS のインストールの詳細な手順については、Red Hat Red Hat Advanced Cluster Security for Kubernetes のインストール を参照してください。
- RHTAP のインストールプロセス中に RHACS をインストールおよび設定しなかった場合は、ACS の設定 を参照してください。
図4.2 パイプライン実行内の RHACS タスク

パイプラインには、roxctl
を使用して包括的なセキュリティーチェックを実行する次の 3 つの RHACS タスクが組み込まれています。
-
roxctl image scan
- イメージ内で検出されたコンポーネントと脆弱性を JSON 形式で返します。 -
roxctl image check
- イメージに含まれるセキュリティーポリシーのビルド時の違反をチェックします。たとえば、'log4j の禁止' や、curl、wget、パッケージマネージャーが実稼働環境のイメージに含まれていないかどうかをチェックします。 -
roxctl deployment check
- YAML デプロイメントファイルに含まれるセキュリティーポリシーのビルド時およびデプロイ時の違反をチェックします。
これらのタスクにより、開発段階からセキュリティーポリシーと設定を確実に遵守できます。
RHACS レポートの視覚化
Red Hat Developer Hub の CI タブの Pipeline Runs セクションには、構造化されたポップアップインターフェイスから詳細なタスクレポートにアクセスして解釈できる機能があります。ポップアップは次のセクションで構成されています。
- Red Hat Advanced Cluster Security (RHACS タスクが利用可能かどうかに応じて条件付きで表示されます): このセクションには、イメージスキャン、イメージチェック、デプロイメントチェックなど、すべての RHACS タスク用の個別のタブが表示され、セキュリティー問題の最初の概要が表示されます。
-
Others: このセクションには、
PipelineRun
の結果 (IMAGE_URL、IMAGE_DIGEST
など) が表示されます。このセクションは、ポップアップに複数のセクション (たとえば、Enterprise Contract または {RHRHACSLongName}) がある場合にのみ表示されます。
RHACS レポートを表示するには、以下を実行します。
- Catalog を選択し、RHACS レポートを確認する適切なコンポーネントを開きます。
CI タブ > Actions 列 > View output アイコンを選択し、ソフトウェアコンポーネントの詳細な RHACS レポートを確認します。
図4.3 詳細な RHACS レポート
適切な権限を持っている場合は、RHACS コンソールに移動して、脆弱性やポリシーを管理し、特定のイメージの詳細な脆弱性レポートを確認できます。詳細は、ダッシュボードの表示 を参照してください。
RHACS レポートの解釈
Red Hat Advanced Cluster Security (RHACS) タスクによって生成される詳細なレポートは、堅牢なセキュリティー体制を維持する上で重要なセキュリティーインサイトを提供するのに役立ちます。
roxctl image scan
(イメージスキャン) レポートを解釈する方法の例を以下に示します。roxctl image check
(イメージチェック) および roxctl deployment check
(デプロイメントチェック) からのレポートを解釈する場合にも、同様のアプローチを適用できます。
- 脆弱性の内訳: RHACS は、検出された脆弱性を重大度別 (重大、重要、中程度、低)、ステータス別 (修正可能、修正不可能) に分類し、スキャン結果の概要を提供します。この分類には、分析された脆弱性とコンポーネントの総数と、Common Vulnerabilities and Exposures (CVE) が含まれます。
表示される詳細情報: レポートには、特定された脆弱性ごとに次の内容が含まれています。
- CVE ID: 脆弱性の一意の識別子。
- 重大度: 脆弱性によってもたらされる脅威のレベル。
- コンポーネント: 脆弱性の影響を受けるソフトウェアコンポーネント。
- コンポーネントバージョン: 影響を受けるコンポーネントのバージョン。
- 修復の提案: 脆弱性に対処するための推奨事項。該当する場合は、脆弱性が修正されたバージョンが含まれています。
4.4.2. SBOM について
show-sbom
タスクは、コンポーネントが使用するすべてのソフトウェアライブラリーをリスト表示します。これにより、ソフトウェアサプライチェーンの透明性に貢献し、脆弱性の特定とセキュリティーへの影響の評価を容易にします。
図4.4 パイプライン実行内の show-sbom
タスク

SBOM の表示
手順
- Catalog を選択し、SBOM を表示する適切なコンポーネントを開きます。
CI タブを選択し、リンクアイコンを選択します。SBOM タスクのログが表示されます。Web ブラウザーを使用して、ソフトウェアサプライチェーンの脆弱性を示す用語を SBOM ですぐに検索できます。たとえば、
log4j
を検索してみてください。図4.5 SBOM の詳細
CLI での SBOM のダウンロード
前提条件
- Cosign CLI ツールがインストールされている。
-
build-container
およびshow-sbom
タスクが正常に実行されている。
手順
-
正常に実行された適切なパイプライン実行を展開し、
show-summary
タスクを選択します。 SBOM イメージの URL を見つけてコピーし、ターミナルで次のコマンドを実行します。
cosign コマンドの例
$ cosign download sbom <the-sbom-url-you-copied>
(オプション) 完全な SBOM を検索可能な形式で表示するには、次のコマンドを実行して出力をリダイレクトします。
cosign コマンドの例
$ cosign download sbom <the-sbom-url-you-copied> > sbom.txt
SBOM の確認
SBOM では、次の抜粋例に示すように、プロジェクトが使用する各ライブラリーの 4 つの特性を確認できます。
- 作成者または公開者
- 名前
- バージョン
- ライセンス
この情報は、個々のライブラリーが安全なソースからのものであり、更新済みで、コンプライアンスに準拠したものであることを確認するのに役立ちます。
SBOM の例
{ "bomFormat": "CycloneDX", "specVersion": "1.4", "serialNumber": "urn:uuid:89146fc4-342f-496b-9cc9-07a6a1554220", "version": 1, "metadata": { ... }, "components": [ { "bom-ref": "pkg:pypi/flask@2.1.0?package-id=d6ad7ed5aac04a8", "type": "library", "author": "Armin Ronacher <armin.ronacher@active-4.com>", "name": "Flask", "version": "2.1.0", "licenses": [ { "license": { "id": "BSD-3-Clause" } } ], "cpe": "cpe:2.3:a:armin-ronacher:python-Flask:2.1.0:*:*:*:*:*:*:*", "purl": "pkg:pypi/Flask@2.1.0", "properties": [ { "name": "syft:package:foundBy", "value": "python-package-cataloger" ...