Docker 上のVerify Bridgeのイメージ署名の検証

PodmanIBM® Container Registry に掲載されている画像には icr.io/isv-saas/verify-bridge:latest 署名が付いており、この画像を自分のマシンにダウンロードすると、または を使用して Skopeo この署名を検証することができます。

始める前に

公開鍵が必要です。
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGQjSS0BEADBqABkTk0zd3CYmDWlA+NupW8Pn6gWni6xfpARhVZPmBP/DI/u
s+wuaEJVgA9Sf13qlFdd166BCYayFv3V7bbwX2i0sXVqSR6dxkigM+Y700e0VhDC
eGyTnLIwG5z3SEG26Wo0y+3x14tWe0jG7hV01lb2rx+1k9k4pHfA6AOPVtuYEmoC
ZrIstMcTa6hPGft2wJL1tnpB+MRLp1DlnFiaLo9FWFJ1zEELSNAkUw+zJNRrnzpT
C3RGh+I0byqB4EKxa2+P8minLetQVEt9wBc7Yr2BngHWKWAMiWTpZOhu3WhUrWxm
mTdshdvu0xw+HeRMFzARQMddDpmBtrkRhSXCsvNRIaElhZcZXm7UMzW5w/NK7H1w
dyB2HKiGZBcD4gdx2iBSJtMHrlKua0Cvrz7AVabYw7hR29TtmRaH8q4eMp/yRNt3
abZ9SZsEPAxv6Ur33AaqxO7s4z9fWXg51j/YtL3VnXiAsY+MbDxUwsn6vpK6IVPW
lmm/7V2PZDmq0+9OdV6poi2IvYKtozD1/oM5kE5WEDn0p/HL8XPg6GcgVSd+rh+J
Z37AccDjs9UHNBseCkQk1zFrfjP+HWZbb6GzZecMIjThagA2VjxYM+GDlE6AAElf
pdZhI/nZR14csUoOgPVPbHI+HS6KQSs32hhev3X10AnYo6rGTObZx80ArQARAB
tC1JQk0gU2VjdXJpdHkgVmVyaWZ5IEJyaWRnZSA8cHNpcnRAdXMuaWJtLmNvbT6J
AjoEEwEIACQFAmQjSS0CGw8FCwkIBwIGFQoJCAsCBBYCAwECHgEFCQAAAAAACgkQ
AQH8KJX/rscK7BAAlpPIi/Wjqroryw560p6GxvjHRbB/rofIbyled5u7Mw/U74Nl
6x/P8Vytpxx/om5JgbP/OP01iHakeJHHkpgux7bJYqvMRlWlR88H806gVAttaFUU
DKQzchVP1R+/gqaoXpNDmZytapYcsDICX+B2aXo1MshTKoYd8MYOnoKnm69dhqlL
ImzMxZk9bRvmsOrx4XB7+1IdoBA/Hck0xrsQTlQocHy4IQICErnJwgYhoSClcSjG
6Nm6p+BfR4oWwKmj51OyzGr7aywJu3304ZE4Ea1qGWVAoF+FinbVcHuA6mYGA+cf
TsZcqsNaMct7KDnC9lzRQpY6MzghHaCAHqE2oIfp7uSCfNYqtN5GQTC6VBcFALoK
Nxm2+YI6WDpJKx4nkGm4NpPsFFF0meofqWMu/oB4U+lADPhJvmqTNxjdqcc+gjEL
skLnA5dkijownmzwWHQHEPzl00Fdx3LS4v26rT0jE/HCrUIhKNrr82hQ90ELGwas
o5gcMuXd85qO1FzPrBKKZU1Ax2SH6J1TYZ6El5i//qUAHY7vc5M+a64IiyWBEol3
xu68GqEBRQi3ZrCNIxZ0ulhOUcs7G275mKClw4uy+f18i91SlyX1zdZ18W9ENcNf
8QY6g9cU6Gn6SfLNnr0wLAMzFt78ylNQTkfnGqr9egsJiwZGCT7eFNtQ7/s=
=hwfo

-----END PGP PUBLIC KEY BLOCK-----

このタスクについて

Red Hat® OpenShift®、 Skopeo、および Podman で使用されるコンテナランタイムは、署名検証ポリシーを記述したファイルです policy.json 。 ポリシーが作成され、コンテナツール( Red Hat OpenShift、 Skopeo、または Podman )に適用されると、そのポリシーは署名を検証することでイメージの完全性を確保します。 また、単純な署名ペイロードの他の部分についても検証を行うことができます。

手順

  1. 対象システムにログインしてください。
  2. ~/policy.jsonまたは、. などのファイルを作成または更新します /etc/containers/policy.json
    イメージポリシーについては、 Red Hat OpenShift のドキュメント「 podman-image-trust 」を参照してください。 <public key>古いプラットフォームと新しいプラットフォームの公開鍵が複数ある場合、または証明書の更新後に公開鍵が複数ある場合は、両 gpg 方の公開鍵を結合して、そのファイルを.で使用できます。
    例えば、以下のとおりです。
    {
        "default": [
            {
                "type":"reject"
            }
        ],
        "transports":
            {
                "docker":
                    {
                        "": [{ "type": "signedBy", "keyType": "GPGKeys", "keyPath": "<path to public keyfile>"}]
                    }
            }
    }
  3. 以下のコマンドのいずれかを使用して、 Docker イメージの署名に対するVerify Bridgeの検証方法を指定します。
    • をローカルの仮保存ディレクトリにコピーして Skopeo 署名を検証するには、次のコマンドを実行してください。
      skopeo copy --policy ~/policy.json docker://icr.io/isv-saas/verify-bridge:latest dir:./temp
    • オプション --policy を使用して Skopeo 署名を検証し、ローカルの仮保存ディレクトリにコピーするには、次のコマンドを実行してください。
      skopeo copy --policy ~/policy.json docker://icr.io/isv-saas/verify-bridge:latest dir:./temp
    • Podmanプル操作中に署名を検証するには、次のコマンドを実行してください。
      podman pull --signature-policy ~/policy.json icr.io/isv-saas/verify-bridge:latest