IBM Cloud Docs
信頼できるコンテンツの画像への署名 Container Registry

信頼できるコンテンツの画像への署名 Container Registry

IBM Cloud® Container Registry は信頼できるコンテンツ・テクノロジーを提供することで、イメージに署名して、レジストリーの名前空間のイメージのインテグリティーを確保できるようにします。

署名付きのイメージをプル/プッシュすることで、イメージをプッシュしたのが継続的統合 (CI) ツールなどの正当なパーティーであることを検証できます。

Red Hat® 署名を使用すると、イメージに署名できます。

Red Hat 署名を使用したイメージの署名

様々なツールを使って、画像に Red Hat の署名を作成することができます。 IBM Cloud Container Registry でサポートされる Red Hat 署名拡張 API を使用して、信頼できるコンテンツの署名付きイメージを保管できます。

以下のツールを使用して、Red Hat 署名を作成できます。

Skopeo によるイメージへの署名

画像に署名するには Skopeo を使用して画像に署名するには、プライベートな GNU Privacy Guard(GnuPG または GPG) ID を作成し、 skopeo コマンドを実行する必要があります。

以下の例には、Skopeo 認証は含まれていません。

  1. GnuPG ID を作成するには、以下のコマンドを実行します。

    gpg --generate-key
    
  2. GnuPG ID を使用してイメージに署名することによって、イメージのプッシュと署名を同時に行います。 YOUR_EMAIL は GnuPG, REPOSITORY:TAG はあなたのリポジトリとタグ、 IMAGE<region><namespace><repository>:<tag> の形式であなたの画像の名前です。 <region> はあなたの地域名、 <namespace> はあなたの名前空間名、 <repository>:<tag> はあなたのリポジトリとタグです。

    イメージの名前を調べるには、ibmcloud cr image-list を実行します。 Repository 列の内容 (repository) と Tag 列の内容 (tag) をコロン (:) で区切って連結し、<repository>:<tag> 形式のイメージ名を作成します。 画像の一覧表示コマンドがタイムアウトする場合は、「 画像を一覧表示するときにタイムアウトするのはなぜですか?

    skopeo --insecure-policy copy --sign-by YOUR_EMAIL docker-daemon:REPOSITORY:TAG docker://IMAGE
    

    例えば、 YOUR_EMAIL はあなたの GnuPG メールアドレス(user@email.com )、 bluebird:build1 はあなたのリポジトリとタグ、 us.icr.io/birds/bluebird:build1 は画像の名前です。

    skopeo --insecure-policy copy --sign-by user@email.com docker-daemon:bluebird:build1 docker://us.icr.io/birds/bluebird:build1
    

    macOS macOS, でエラー が発生した場合は、 オプションを付けてコマンドを実行することで、正しい署名ストレージが使用されるように、レジストリ構成の内部デフォルトをオーバーライドする。 Error copying image to the remote destination: Error writing signatures: mkdir /var/lib/containers/sigstore: permission denied --registries.d

    skopeo --registries.d . --insecure-policy copy --sign-by user@email.com docker-daemon:us.icr.io/birds/bluebird:build1 docker://us.icr.io/birds/bluebird:build1
    

LinuxmacOS Linux®、 では、ローカルに署名を保存するのがツールのデフォルト設定である。 macOS, 署名をローカルに保存すると、署名がレジストリーにないため、署名の検証に失敗する可能性があります。 この問題を修正するには、構成ファイルを変更または削除します。 Linux® で、コンフィギュレーションは /etc/containers/registries.d/default.yaml に保存される。 macOS の場合、構成ファイルは /usr/local/etc/containers/registries.d/default.yaml に保存されます。 Homebrew パッケージ・マネージャーを使用して Skopeo をインストールした macOS, では、コンフィギュレーション・ファイルは Apple silicon の場合は /opt/homebrew/Cellar/etc/containers/registries.d/default.yaml に、インテルの場合は /usr/local/Cellar/etc/containers/registries.d/default.yaml にあるかもしれません。

Podman によるイメージへの署名

Podman を使用してイメージに署名できます。 詳しくは Podman.

Red Hat OpenShift CLI を使用したイメージへの署名

Red Hat OpenShift CLI を使用してイメージに署名できます。 詳細については、 Red Hat OpenShift CLIを参照。 Red Hat® OpenShift® CLIでは、 oc コマンドを使用する。