11.8. Image サービス (glance) イメージの署名


イメージを検証するように Image サービス (glance) を設定する場合は、イメージをアップロードする前に署名する必要があります。openssl コマンドを使用して、Key Manager サービス (barbican) に保存されている鍵でイメージに署名し、付随するイメージプロパティーとともにイメージを Image サービスにアップロードします。イメージの署名は使用前に毎回検証されます。署名が一致しない場合は、インスタンスのビルドプロセスが失敗します。

制限事項

  • 署名の検証は openSSL _rsa_sig_verify() に基づいています。現在、鍵長が 1024 でない場合、Image サービスで InvalidSignature 例外が発生します。この問題は、OpenSSL 3.0.7 のリグレッションが原因で発生します。署名の検証は、鍵長が 2048 で OpenSSL 3.0.2 の場合に正しく機能します。
  • OpenSSL は SHA256 アルゴリズムをサポートしていません。署名されたイメージを作成するには、SHA512 以上を使用する必要があります。

手順

  1. openssl コマンドを使用して鍵と証明書を作成します。

    • 秘密鍵を作成します。

      $ openssl genrsa -out private_key.pem 1024
    • 公開鍵を作成します。

      $ openssl rsa -pubout -in private_key.pem -out public_key.pem
    • 証明書を作成します。

      $ openssl req -new -key private_key.pem -out cert_request.csr
    • プロンプトが表示されたら、証明書要求に含める詳細を入力します。

      $ openssl x509 -req -days 14 -in cert_request.csr -signkey private_key.pem -out new_cert.crt
  2. 証明書を Key Manager サービスにアップロードします。証明書はサービスの secret store に保存されます。

    $ openstack secret store --name test --algorithm RSA --secret-type certificate \
      --payload-content-type "application/octet-stream" \
      --payload-content-encoding base64 \
      --payload "$(base64 new_cert.crt)"

    出力例:

    +---------------+-----------------------------------------------------------------------+
    | Field         | Value                                                                 |
    +---------------+-----------------------------------------------------------------------+
    | Secret href   | http://127.0.0.1:9311/v1/secrets/cd7cc675-e573-419c-8fff-33a72734a243 |
    +---------------+-----------------------------------------------------------------------+
    注記

    後の手順で使用するため、証明書の UUID を記録しておいてください。この例では、UUID は cd7cc675-e573-419c-8fff-33a72734a243 です。

  3. イメージを取得して署名を作成します。

    • イメージを取得します。

      $ echo <This is my image> > <myimage>
    • private_key.pem を使用してイメージに署名し、.signature ファイルを生成します。以下に例を示します。

      $ openssl dgst -sha512 -sign private_key.pem -sigopt rsa_padding_mode:pss -out myimage.signature myimage
    • .signature ファイルを Base64 形式に変換します。

      $ base64 -w 0 myimage.signature > myimage.signature.b64
    • イメージをアップロードするときに使用する変数に Base64 値をロードします。

      $ image_signature=$(cat myimage.signature.b64)
  4. 有効な署名プロパティーを持つイメージを Image サービスにアップロードします。

    $ openstack image-create \
      --name <my_signed_image> \
      --container-format bare \
      --disk-format qcow2 \
      --property img_signature="$image_signature" \
      --property img_signature_certificate_uuid="$cert_uuid" \
      --property img_signature_hash_method='SHA-512' \
      --property img_signature_key_type='RSA-PSS' < myimage
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る