7.4. サプライチェーンセキュリティーのコンテナー署名の検証


sigstore 署名方法を使用することで、サプライチェーンセキュリティーを強化できます。

重要

sigstore サポートはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

7.4.1. sigstore を使用してコンテナー署名を検証する方法

sigstore 署名方法を使用することで、イメージの整合性を検証するようにコンテナーランタイムを設定できます。MicroShift コンテナーランタイムを設定すると、イメージの整合性を検証できます。sigstore プロジェクトを使用すると、開発者はビルド内容にデジタル署名し、ソフトウェアをソースにトレースするより安全なチェーンを作成できます。その後、管理者は署名を検証し、ワークフローを大規模に監視できます。sigstore を使用すると、ビルドイメージと同じレジストリーに署名を保存できます。

  • ユーザー固有のイメージの場合、適切な公開鍵を指すように設定ファイルを更新するか、それらのイメージソースの署名の検証を無効にする必要があります。
重要

非接続またはオフラインの設定の場合は、公開鍵の内容をオペレーティングシステムイメージに埋め込む必要があります。

7.4.2. sigstore を使用したコンテナー署名の検証

sigstore を使用するようにコンテナーランタイムを設定して、MicroShift のコンテナー署名を検証します。コンテナーの署名の検証では、イメージの署名時に Red Hat キーペアからの公開鍵を使用します。sigstore を使用するには、コンテナーランタイムパッケージの一部としてインストールされるデフォルトの /etc/containers/policy.json ファイルを編集します。

以下のリンクで Red Hat 公開鍵にアクセスできます。

MicroShift コンテナーの署名を検証するには、リリースキー 3 を使用する必要があります。

前提条件

  • MicroShift ホストへの admin アクセスがある。
  • MicroShift をインストールしている。

手順

  1. 次のコマンドを実行して、関連する公開鍵をダウンロードし、/etc/containers/RedHat_ReleaseKey3.pub として保存します。

    $ sudo curl -sL https://access.redhat.com/security/data/63405576.txt -o /etc/containers/RedHat_ReleaseKey3.pub
    Copy to Clipboard Toggle word wrap
  2. Red Hat ソースからイメージを検証するようにコンテナーランタイムを設定するには、/etc/containers/policy.json ファイルを編集して以下の設定を含めます。

    ポリシー JSON ファイルの例

    {
        "default": [
            {
                "type": "reject"
            }
        ],
        "transports": {
            "docker": {
                "quay.io/openshift-release-dev": [{
                    "type": "sigstoreSigned",
                    "keyPath": "/etc/containers/RedHat_ReleaseKey3.pub",
                    "signedIdentity": {
                        "type": "matchRepoDigestOrExact"
                    }
                }],
                "registry.redhat.io": [{
                    "type": "sigstoreSigned",
                    "keyPath": "/etc/containers/RedHat_ReleaseKey3.pub",
                    "signedIdentity": {
                        "type": "matchRepoDigestOrExact"
                    }
                }]
            }
        }
    }
    Copy to Clipboard Toggle word wrap

  3. /etc/containers/registries.d/registry.redhat.io.yaml' ファイルを編集して、以下の設定を含めるように /etc/containers/registries.d/registry.redhat.io.yaml' ファイルを編集して、イメージをローカルストレージにプルする際に sigstore 添付を使用するように Red Hat リモートレジストリーを設定します。

    $ cat /etc/containers/registries.d/registry.redhat.io.yaml
    docker:
         registry.redhat.io:
             use-sigstore-attachments: true
    Copy to Clipboard Toggle word wrap
  4. /etc/containers/registries.d/registry.quay.io.yaml ファイルを編集して、以下の設定を含めるように /etc/containers/registries.d/registry.quay.io.yaml ファイルを編集して、イメージをローカルストレージにプルする際に sigstore 添付を使用するように Red Hat リモートレジストリーを設定します。

    $ cat /etc/containers/registries.d/quay.io.yaml
    docker:
      quay.io/openshift-release-dev:
        use-sigstore-attachments: true
    Copy to Clipboard Toggle word wrap
  5. ユースケースで、それらのイメージソースの署名の検証が必要な場合は、ユーザー固有のレジストリー設定ファイルを作成します。この例を使用して、開始して独自の要件を追加できます。

次のステップ

  1. ミラーレジストリーを使用している場合は、sigstore 添付を有効にします。
  2. それ以外の場合は、ローカルコンテナーのストレージ消去に進みます。

7.4.2.1. ミラーレジストリーの sigstore アタッチメントを有効にする

ミラーレジストリーを使用している場合は、追加の設定を適用して、sigstore 添付とダイジェストによるミラーリングを有効にする必要があります。

前提条件

  • MicroShift ホストへの admin アクセスがある。
  • sigstore を使用したコンテナー署名の検証の手順を完了している。

手順

  1. /etc/containers/registries.d/mirror.registry.local.yaml ファイルを作成して、sigstore 添付を有効にします。

    $ cat /etc/containers/registries.d/<mirror.registry.local.yaml> 
    1
    
    docker:
       mirror.registry.local:
            use-sigstore-attachments: true
    Copy to Clipboard Toggle word wrap
    1
    ミラーレジストリー URL の後に < mirror.registry.local.yaml > ファイルに名前を付けます。
  2. 以下の内容で /etc/containers/registries.conf.d/999-microshift-mirror.conf を作成して、ダイジェストによるミラーリングを有効にします。

    $ cat /etc/containers/registries.conf.d/999-microshift-mirror.conf
    [[registry]]
        prefix = "quay.io/openshift-release-dev"
        location = "mirror.registry.local"
        mirror-by-digest-only = true
    
    [[registry]]
        prefix = "registry.redhat.io"
        location = "mirror.registry.local"
        mirror-by-digest-only = true
    Copy to Clipboard Toggle word wrap

次のステップ

  1. ローカルコンテナーのストレージ消去を消去します。

7.4.2.2. ローカルコンテナーのストレージ消去のワイプ

設定を既存のシステムに適用する場合は、ローカルコンテナーストレージをクリーンアップする必要があります。コンテナーストレージをクリーンアップすると、署名のあるコンテナーイメージが適切にダウンロードされます。

前提条件

  • MicroShift ホストへの管理者アクセス権がある。
  • ミラーレジストリーで sigstore を有効にしている。

手順

  1. 次のコマンドを実行して、CRI-O コンテナーランタイムサービスと MicroShift を停止します。

    $ sudo systemctl stop crio microshift
    Copy to Clipboard Toggle word wrap
  2. 以下のコマンドを実行して CRI-O コンテナーランタイムストレージのクリーニングを消去します。

    $ sudo crio wipe --force
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、CRI-O コンテナーランタイムサービスと MicroShift を再起動します。

    $ sudo systemctl start crio microshift
    Copy to Clipboard Toggle word wrap

検証

次のコマンドを入力して、すべての Pod が正常な状態であることを確認します。

$ oc get pods -A
Copy to Clipboard Toggle word wrap

出力例

NAMESPACE                   NAME                                                     READY   STATUS   RESTARTS  AGE
default                     i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr  1/1     Running  0		    46m
kube-system                 csi-snapshot-controller-5c6586d546-lprv4                 1/1     Running  0		    51m
openshift-dns               dns-default-45jl7                                        2/2     Running  0		    50m
openshift-dns               node-resolver-7wmzf                                      1/1     Running  0		    51m
openshift-ingress           router-default-78b86fbf9d-qvj9s                          1/1     Running  0		    51m
openshift-ovn-kubernetes    ovnkube-master-5rfhh                                     4/4     Running  0		    51m
openshift-ovn-kubernetes    ovnkube-node-gcnt6                                       1/1     Running  0		    51m
openshift-service-ca        service-ca-bf5b7c9f8-pn6rk                               1/1     Running  0		    51m
openshift-storage           topolvm-controller-549f7fbdd5-7vrmv                      5/5     Running  0		    51m
openshift-storage           topolvm-node-rht2m                                       3/3     Running  0		    50m
Copy to Clipboard Toggle word wrap

注記

この出力例は、基本的な MicroShift を示しています。オプションの RPM をインストールしている場合は、それらのサービスを実行している Pod のステータスも出力に表示されるはずです。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat