2.4.3.2. skopeo を使用して Red Hat コンテナーイメージの署名を検証する
OpenShift Container Platform リリースイメージに含まれるコンテナーイメージの署名は、OCP リリースミラーサイト から署名を取得して検証できます。ミラーサイトの署名は Podman や CRI-O が理解できる形式ではないため、skopeo standalone-verify コマンドを使用して、リリースイメージが Red Hat によって署名されていることを確認します。
前提条件
-
skopeoコマンドラインユーティリティーがインストールされている。
手順
次のコマンドを実行して、リリースの完全な SHA を取得します。
$ oc adm release info <release_version> \1 - 1
- <release_version> をリリース番号に置き換えます (例:
4.14.3)。出力の抜粋例
--- Pull From: quay.io/openshift-release-dev/ocp-release@sha256:e73ab4b33a9c3ff00c9f800a38d69853ca0c4dfa5a88e3df331f66df8f18ec55 ---
次のコマンドを実行して、Red Hat リリースキーをプルダウンします。
$ curl -o pub.key https://access.redhat.com/security/data/fd431d51.txt次のコマンドを実行して、検証する特定のリリースの署名ファイルを取得します。
$ curl -o signature-1 https://mirror.openshift.com/pub/openshift-v4/signatures/openshift-release-dev/ocp-release/sha256=<sha_from_version>/signature-1 \1 - 1
<sha_from_version>を、リリースの SHA に一致するミラーサイトへの完全なリンクの SHA 値に置き換えます。たとえば、4.12.23 リリースの署名へのリンクはhttps://mirror.openshift.com/pub/openshift-v4/signatures/openshift-release-dev/ocp-release/sha256=e73ab4b33a9c3ff00c9f800a38d69853ca0c4dfa5a88e3df331f66df8f18ec55/signature-1、SHA 値はe73ab4b33a9c3ff00c9f800a38d69853ca0c4dfa5a88e3df331f66df8f18ec55です。
次のコマンドを実行して、リリースイメージのマニフェストを取得します。
$ skopeo inspect --raw docker://<quay_link_to_release> > manifest.json \1 - 1
<quay_link_to_release>を、oc adm release infoコマンドの出力に置き換えます。たとえば、quay.io/openshift-release-dev/ocp-release@sha256:e73ab4b33a9c3ff00c9f800a38d69853ca0c4dfa5a88e3df331f66df8f18ec55です。
skopeo を使用して署名を検証します。
$ skopeo standalone-verify manifest.json quay.io/openshift-release-dev/ocp-release:<release_number>-<arch> any signature-1 --public-key-file pub.keyここでは、以下のようになります。
<release_number>-
リリース番号を指定します (例:
4.14.3)。 <arch>アーキテクチャーを指定します (例:
x86_64)。出力例
Signature verified using fingerprint 567E347AD0044ADE55BA8A5F199E2F91FD431D51, digest sha256:e73ab4b33a9c3ff00c9f800a38d69853ca0c4dfa5a88e3df331f66df8f18ec55