This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第1章 SBOM のダウンロード、変換、分析
次の手順では、TPA を使用して SBOM を検査する方法を説明します。具体的には、SBOM をダウンロードし、SBOM を互換性のある形式に変換して、TPA で SBOM を分析する方法を説明します。
RHTAP 1.4 では、サポートされている CI プロバイダー (Tekton、Jenkins、GitLab CI、GitHub Actions) を使用してアプリケーションをビルドするときに、SBOM が TPA に自動的に公開されるため、この手順は必要ありません。GitHub Actions は テクノロジープレビュー 機能であり、完全にはテストされていないことに注意してください。
SBOM を手動で展開し、ローカルコピーを保持する場合は、次の手順に従ってください。
手順:
コンテナーレジストリーで、SBOM 検査の対象とするコンテナーイメージの完全なアドレスを確認します。アドレスの形式は、registry/namespace/image:tag です。たとえば、quay.io/app/app-image:ff59e21cc などです。
注記SBOM イメージのアドレス (末尾が
.sbomのもの) は使用しないでください。実際のアプリケーションイメージのアドレスを使用してください。CLI で、
cosignを使用して SBOM をダウンロードします。出力を、後で参照できるファイルにリダイレクトします。必ず新しいファイル名の末尾を.jsonにします。cosign download sbom quay.io/redhat/rhtap-app:8d34c03188cf294a77339b2a733b1f6811263a369b309e6b170d9b489abc0334 > /tmp/sbom.json
cosign download sbom quay.io/redhat/rhtap-app:8d34c03188cf294a77339b2a733b1f6811263a369b309e6b170d9b489abc0334 > /tmp/sbom.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション)最終的には、この
.jsonファイルにリストされている名前で TPA UI に SBOM が表示されます。デフォルトでは、Syft によって SBOM のファイルパスに基づいてその名前が作成されます。TPA UI に、よりわかりやすい名前を付けて SBOM を表示するには、ダウンロードした.jsonファイルで手動で SBOM を変更する必要があります。具体的には、.metadata.componentオブジェクト内の名前を置き換える必要があります。必要に応じて、ここでversionフィールドを追加することもできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して Bombastic API URL を環境変数として保存します。
bombastic_api_url="https://$(oc -n rhtap-tpa get route --selector app.kubernetes.io/name=bombastic-api -o jsonpath='{.items[].spec.host}')"$ bombastic_api_url="https://$(oc -n rhtap-tpa get route --selector app.kubernetes.io/name=bombastic-api -o jsonpath='{.items[].spec.host}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドと次のコマンドでは、
-nの後に、RHTAP をインストールした名前空間を必ず入力してください。この例では、rhtapという名前空間を使用していると想定しています。CLI で、次の値で新しい
token_issuer_url環境変数を作成します。token_issuer_url=https://$(oc -n rhtap-keycloak get route --selector app=keycloak -o jsonpath='{.items[].spec.host}')/realms/chicken/protocol/openid-connect/token$ token_issuer_url=https://$(oc -n rhtap-keycloak get route --selector app=keycloak -o jsonpath='{.items[].spec.host}')/realms/chicken/protocol/openid-connect/tokenCopy to Clipboard Copied! Toggle word wrap Toggle overflow TPA__OIDC__WALKER_CLIENT_SECRET環境変数を設定し、その値として TPA OIDC Walker クライアントシークレットを指定します。TPA__OIDC__WALKER_CLIENT_SECRET=$(kubectl get -n rhtap secrets/rhtap-trustification-integration --template={{.data.oidc_client_secret}} | base64 -d)$ TPA__OIDC__WALKER_CLIENT_SECRET=$(kubectl get -n rhtap secrets/rhtap-trustification-integration --template={{.data.oidc_client_secret}} | base64 -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して BOMbastic API のトークンを取得します。このトークンを使用すると、SBOM をアップロードできます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SBOM のアップロードを試行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エラーメッセージ
storage error: invalid storage contentが表示された場合は、Syft を使用して SBOM を以前の CycloneDX 1.4 に変換します。異なる pURL を持つパッケージのマージに関する警告は、無視しても問題ありません。この警告は、Syft が元の SBOM の一部のデータを破棄する可能性があることを示していますが、そのデータは重要ではありません。syft convert /tmp/sbom.json -o cyclonedx-json@1.4=/tmp/sbom-1-4.json
$ syft convert /tmp/sbom.json -o cyclonedx-json@1.4=/tmp/sbom-1-4.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow SBOM の再アップロードを試行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- OpenShift コンソールから、RHTAP を実行しているクラスターにアクセスします。
-
rhtap プロジェクトで Networking > Routes に移動します。
spog-uiサービスと同じ行にリストされている URL を開きます。 - Register ボタンを使用して新規アカウントを作成し、TPA に対して認証します。
SBOM (直近にアップロードしたもの) を選択し、その SBOM に基づいて TPA が提供した、アプリケーションに関する分析情報を確認します。
- Dependency Analytics Report タブに移動し、脆弱性および修復を表示します。
改訂日時: 2025-02-07