Red Hat Training

A Red Hat training course is available for RHEL 8

8.5. Fulcio と Rekor を使用した sigstore 署名によるコンテナーイメージの署名

Fulcio および Rekor サーバーを使用すると、秘密鍵を手動で管理する代わりに、OpenID Connect (OIDC) サーバー認証に基づく短期証明書を使用して署名を作成できるようになりました。

前提条件

  • container-tools モジュールがインストールされている。
  • Fulcio (https://<your-fulcio-server>) サーバーと Rekor (https://<your-rekor-server>) サーバーが実行および設定されている。
  • Podman v4.4 以降がインストールされている。

手順

  1. 次の内容を /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 ファイルが読み取られ、ファイル名は任意であることに注意してください。

  2. file.yml ファイルを作成します。

    fulcio:
      fulcioURL: "https://<your-fulcio-server>"
      oidcMode: "interactive"
      oidcIssuerURL: "https://<your-OIDC-provider>"
      oidcClientID: "sigstore"
    rekorURL: "https://<your-rekor-server>"
    • file.yml は、sigstore 署名の作成に必要なオプションを保存するために使用される sigstore 署名パラメーター YAML ファイルです。
  3. イメージに署名し、レジストリーにプッシュします。

    $ podman push --sign-by-sigstore=file.yml <registry>/<namespace>/<image>
    • あるいは、同様の --sign-by-sigstore オプションを指定して skopeo copy コマンドを使用して、既存のイメージをコンテナーレジストリー間で移動しながら署名することもできます。
警告

パブリックサーバーへの送信には、公開鍵と証明書に関するデータ、署名に関するメタデータが含まれることに注意してください。

関連情報

  • containers-sigstore-signing-params.yaml の man ページ
  • podman-push の man ページ
  • container-registries.d man ページ