5.5. 自動化コンテンツコレクションとコンテナー署名の有効化
自動化コンテンツ署名はデフォルトで無効になっています。これを有効にするには、インベントリーファイルに次のインストール変数が必要です。
# Collection signing
hub_collection_signing=true
hub_collection_signing_key=<full_path_to_collection_gpg_key>
# Container signing
hub_container_signing=true
hub_container_signing_key=<full_path_to_container_gpg_key>
鍵がパスフレーズで保護されている場合は、次の変数が必要です。
# Collection signing
hub_collection_signing_pass=<gpg_key_passphrase>
# Container signing
hub_container_signing_pass=<gpg_key_passphrase>
hub_collection_signing_key および hub_container_signing_key 変数では、インストールを実行する前に鍵を設定する必要があります。
現在、自動化コンテンツ署名は GnuPG (GPG) ベースの署名鍵のみをサポートしています。GPG の詳細は、GnuPG の man ページ を参照してください。
使用するアルゴリズムと暗号はお客様の責任となります。
手順
RHEL9 サーバーで次のコマンドを実行して、コレクション署名用の新しい鍵ペアを作成します。
gpg --gen-key"Real name" と "Email address" に、ユーザー自身の情報を入力します。
出力例:
gpg --gen-key gpg (GnuPG) 2.3.3; Copyright (C) 2021 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-generate-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: Joe Bloggs Email address: jbloggs@example.com You selected this USER-ID: "Joe Bloggs <jbloggs@example.com>" Change (N)ame, (E)mail, or (O)kay/(Q)uit? O- これが失敗した場合、使用している環境に GPG に必要な前提条件パッケージがインストールされていません。続行するには必要なパッケージをインストールしてください。
- ダイアログボックスが表示され、パスフレーズの入力を求められます。これはオプションですが、推奨されます。
鍵が生成され、次のような出力が生成されます。
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key 022E4FBFB650F1C4 marked as ultimately trusted gpg: revocation certificate stored as '/home/aapuser/.gnupg/openpgp-revocs.d/F001B037976969DD3E17A829022E4FBFB650F1C4.rev' public and secret key created and signed. pub rsa3072 2024-10-25 [SC] [expires: 2026-10-25] F001B037976969DD3E17A829022E4FBFB650F1C4 uid Joe Bloggs <jbloggs@example.com> sub rsa3072 2024-10-25 [E] [expires: 2026-10-25]- 有効期限は、会社の標準とニーズに基づき慎重に設定してください。
次のコマンドを実行すると、すべての GPG 鍵を表示できます。
gpg --list-secret-keys --keyid-format=long公開鍵をエクスポートするには、次のコマンドを実行します。
gpg --export -a --output collection-signing-key.pub <email_address_used_to_generate_key>秘密鍵をエクスポートするには、次のコマンドを実行します。
gpg -a --export-secret-keys <email_address_used_to_generate_key> > collection-signing-key.priv- プロンプトが表示されたらパスフレーズを入力します。
秘密鍵ファイルの内容を表示するには、次のコマンドを実行します。
cat collection-signing-key.priv出力例:
-----BEGIN PGP PRIVATE KEY BLOCK----- lQWFBGcbN14BDADTg5BsZGbSGMHypUJMuzmIffzzz4LULrZA8L/I616lzpBHJvEs sSN6KuKY1TcIwIDCCa/U5Obm46kurpP2Y+vNA1YSEtMJoSeHeamWMDd99f49ItBp <snippet> j920hRy/3wJGRDBMFa4mlQg= =uYEF -----END PGP PRIVATE KEY BLOCK------ 手順 1 - 7 を繰り返して、コンテナー署名用の鍵ペアを作成します。
次の変数をインベントリーファイルに追加し、インストールを実行して署名サービスを作成します。
# Collection signing hub_collection_signing=true hub_collection_signing_key=/home/aapuser/aap/ansible-automation-platform-containerized-setup-<version_number>/collection-signing-key.priv # This variable is required if the key is protected by a passphrase hub_collection_signing_pass=<password> # Container signing hub_container_signing=true hub_container_signing_key=/home/aapuser/aap/ansible-automation-platform-containerized-setup-<version_number>/container-signing-key.priv # This variable is required if the key is protected by a passphrase hub_container_signing_pass=<password>