5.10. oc-mirror プラグイン v2 でのイメージ署名のミラーリングと検証
OpenShift Container Platform 4.19 以降、oc-mirror プラグイン v2 は、コンテナーイメージに対する cosign のタグベース署名のミラーリングおよび検証をサポートします。
5.10.1. oc-mirror プラグイン v2 の署名ミラーリングを有効にする リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、署名のミラーリングは無効になっています。oc mirror コマンドに --remove-signatures=false フラグを設定することで、すべてのイメージに対して署名ミラーリングを有効にできます。
有効にすると、oc-mirror プラグイン v2 は次のイメージの Sigstore タグベースの署名をミラーリングします。
- OpenShift Container Platform リリースイメージ
- Operator イメージ
- 追加イメージ
- Helm チャート
設定ファイルを提供しない場合、oc-mirror プラグイン v2 は、--remove-signatures=false フラグが使用されている場合にデフォルトですべてのイメージの署名ミラーリングを有効にします。
カスタム設定ディレクトリーを指定するには、--registries.d フラグを使用します。
詳細は、containers-registries.d(5) のマニュアルを参照してください。
手順
次のコマンドを実行して、すべてのイメージに対して署名ミラーリングを有効にします。
$ oc mirror --remove-signatures=false次の手順を実行して、トランスポートプロトコル、レジストリー、namespace、イメージなどの特定の要素の署名ミラーリングを有効または無効にします。
-
$HOME/.config/containers/registries.d/または/etc/containers/registries.d/ディレクトリーのいずれかに YAML ファイルを作成します。 次の例に示すように、
use-sigstore-attachmentsパラメーターを指定し、制御する特定の要素でtrueまたはfalseに設定します。例:
quay.ioレジストリーの署名ミラーリングを無効にする# ... docker: quay.io: use-sigstore-attachments: false # ...例: すべてのレジストリーの署名ミラーリングを有効にする
# ... default-docker: use-sigstore-attachments: true # ...
-
5.10.2. oc-mirror プラグイン v2 の署名検証を有効にする リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 4.19 以降、oc-mirror プラグイン v2 は署名検証をサポートしますが、デフォルトでは無効になっています。有効にすると、プラグインはコンテナーイメージが署名と一致することを確認し、変更されていないこと、信頼できるソースからのものであることを確認します。署名の不一致が検出されると、ミラーリングワークフローは失敗します。
手順
すべてのイメージに対して署名検証を有効にする場合は、次のコマンドを実行します。
$ oc mirror --secure-policy=trueトランスポートプロトコル、レジストリー、namespace、イメージなどの特定の要素の署名検証を有効または無効にする場合は、次の手順に従います。
$HOME/.config/containers/または/etc/containers/ディレクトリーのいずれかにpolicy.jsonファイルを作成します。注記ポリシー設定ファイルがデフォルトのディレクトリー外にある場合は、
oc mirrorコマンドで--policyフラグを使用してパスを指定できます。詳細は、
containers-policy.json(5)を参照してください。適切なポリシー設定を使用して、必要なスコープ (レジストリーやイメージなど) の検証ルールを定義します。各要素の下に任意のルールを指定することにより、検証要件を設定できます。
例: 特定のイメージのみ検証を有効にし、他のすべてのイメージを拒否する
{ "default": [{"type": "reject"}], "transports": { "docker": { "hostname:5000/myns/sigstore-signed-image": [ { "type": "sigstoreSigned", "keyPath": "/path/to/sigstore-pubkey.pub", "signedIdentity": {"type": "matchRepository"} } ] } } }