Red Hat Training
A Red Hat training course is available for RHEL 8
8.6. Fulcio と Rekor を使用した sigstore 署名を持つコンテナーイメージの検証
Fulcio および Rekor 関連の情報を policy.json
ファイルに追加することで、イメージの署名を検証できます。コンテナーイメージの署名を検証すると、イメージが信頼できるソースからのものであり、改ざんまたは変更されていないことが保証されます。
前提条件
-
container-tools
モジュールがインストールされている。
手順
次の内容を
/etc/containers/registries.conf.d/default.yaml
ファイルに追加します。docker: <registry>: use-sigstore-attachments: true
use-sigstore-attachments
オプションを設定することで、Podman と Skopeo はコンテナーの sigstore 署名をイメージと共に読み書きし、署名されたイメージと同じリポジトリーに保存できます。注記/etc/containers/registries.d
ディレクトリー内の任意の YAML ファイルのレジストリーまたはリポジトリー設定セクションを編集できます。単一のスコープ (default-docker、レジストリー、または名前空間) は、/etc/containers/registries.d
ディレクトリー内の 1 つのファイルにのみ存在できます。/etc/containers/registries.d/default.yaml
ファイルでシステム全体のレジストリー設定を編集することもできます。すべての YAML ファイルが読み取られ、ファイル名は任意であることに注意してください。
/etc/containers/policy.json
ファイルにfulcio
セクションとrekorPublicKeyPath
フィールドまたはrekorPublicKeyData
フィールドを追加します。{ ... "transports": { "docker": { "<registry>/<namespace>": [ { "type": "sigstoreSigned", "fulcio": { "caPath": "/path/to/local/CA/file", "oidcIssuer": "https://expected.OIDC.issuer/", "subjectEmail", "expected-signing-user@example.com", }, "rekorPublicKeyPath": "/path/to/local/public/key/file", } ] ... } } ... }
-
fulcio
セクションでは、署名が Fulcio 発行の証明書に基づいていることが規定されています。 -
Fulcio インスタンスの CA 証明書を含む
caPath
フィールドとcaData
フィールドのいずれかを指定する必要があります。 -
oidcIssuer
とsubjectEmail
は両方とも必須であり、予期される ID プロバイダー、および Fulcio 証明書を取得するユーザーの ID を正確に指定します。 -
rekorPublicKeyPath
フィールドとrekorPublicKeyData
フィールドのいずれかを指定する必要があります。
-
イメージをプルします:
$ podman pull <registry>/<namespace>/<image>
podman pull
コマンドは、設定どおりに署名の存在を強制します。追加のオプションは必要ありません。
関連情報
-
policy.json
man ページ -
container-registries.d
man ページ