新機能: プロジェクトの最新情報については TwitterMastodonでご確認ください。

cert-manager 署名検証

サプライチェーン攻撃を防ぐため、cert-manager のリリースアーティファクトの一部は暗号的に署名されています。これにより、インストールしようとしている cert-manager のバージョンが実際に cert-manager のメンテナーによってビルドおよび提供されたものであることを確認できます。

この署名は、何らかの理由で cert-manager のミラーバージョンを使用する必要がある場合に非常に重要です。ミラーがインストールしようとしているコードを改ざんしていないことを確認できます。

検証に必要な署名キーはすべてこのウェブサイトで入手できますが、実際に必要なキーは、今後検証しようとするアーティファクトによって異なる場合があります。執筆時点では、すべての署名に同じ基盤となるキーが使用されています。

コンテナイメージ / Cosign

v1.8.0以降のすべてのcert-managerバージョンでは、コンテナイメージはcosignを使用して署名され、検証可能です。

IMAGE_TAG=v1.16.1 # change as needed
KEY=https://cert-manager.dokyumento.jp/public-keys/cert-manager-pubkey-2021-09-20.pem
cosign verify --signature-digest-algorithm sha512 --insecure-ignore-tlog --key $KEY quay.io/jetstack/cert-manager-acmesolver:$IMAGE_TAG
cosign verify --signature-digest-algorithm sha512 --insecure-ignore-tlog --key $KEY quay.io/jetstack/cert-manager-cainjector:$IMAGE_TAG
cosign verify --signature-digest-algorithm sha512 --insecure-ignore-tlog --key $KEY quay.io/jetstack/cert-manager-ctl:$IMAGE_TAG
cosign verify --signature-digest-algorithm sha512 --insecure-ignore-tlog --key $KEY quay.io/jetstack/cert-manager-startupapicheck:$IMAGE_TAG
cosign verify --signature-digest-algorithm sha512 --insecure-ignore-tlog --key $KEY quay.io/jetstack/cert-manager-controller:$IMAGE_TAG
cosign verify --signature-digest-algorithm sha512 --insecure-ignore-tlog --key $KEY quay.io/jetstack/cert-manager-webhook:$IMAGE_TAG

Kubernetesでより機能豊富な署名検証プロセスについては、connaisseurをご覧ください。

なぜ--insecure-ignore-tlog

検証コマンドにinsecureというフラグを含めることは避けたいと考えており、将来的にはこれを修正する予定です。現時点では、透過ログを無視することで検証が機能します。

cert-managerキーはGoogle Cloud KMSに保存されており、cert-managerリリースの署名時にのみGoogle Cloud Buildで使用されます。

Helmチャート

Helmでは検証にPGPの使用が必要です。キー形式は異なります。

検証時に「プレーン」なPEMエンコードされた公開キーを使用しようとすると、失敗します。

v1.6.0以降のすべてのcert-managerバージョンでは、HelmチャートはHelm CLIを介して署名および検証できます。

最も簡単な検証方法は、GPGキーリングを直接取得し、次のようにhelm verifyに渡すことです。

curl -sSL https://cert-manager.dokyumento.jp/public-keys/cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg > cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg
helm verify --keyring cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg /path/to/cert-manager-vx.y.z.tgz

ご自身の責任において、GPGに簡単にインポートできる形式で署名キーが必要な場合は、ASCIIアーマードバージョンをご利用いただけます。