第12章 プロジェクトの署名と検証
プロジェクトの署名と検証を使用すると、プロジェクトディレクトリー内のファイルに署名し、そのコンテンツが何らかの方法で変更されていないか、またはファイルがプロジェクトに予期せず追加または削除されていないかどうかを検証できます。これを行うには、署名用の秘密鍵と、検証用の対応する公開鍵が必要です。
プロジェクトのメンテナーがコンテンツの署名を行い場合でサポートされている手法は、ansible-sign
ユーティリティーを使用して、付属の コマンドラインインターフェイス (CLI) を使用することです。
この CLI の目的は、GNU Privacy Guard (GPG) などの暗号化テクノロジーを簡単に使用して、プロジェクト内のファイルがいかなる方法でも改ざんされていないと検証することです。現在、サポートされている署名と検証の手段は GPG のみです。
Automation Controller は、署名されたコンテンツを検証するために使用されます。一致する公開鍵が署名されたプロジェクトに関連付けられた後、Automation Controller は、署名中に含まれたファイルが変更されていないこと、およびファイルが予期せず追加または削除されていないことを検証します。署名が無効であるかファイルが変更されている場合、プロジェクトは更新に失敗し、プロジェクトを使用するジョブは起動されません。プロジェクトの検証ステータスにより、安全で改ざんされていないコンテンツのみがジョブで実行できることが保証されます。
リポジトリーが署名と検証用にすでに設定されている場合、プロジェクト変更用の通常のワークフローは次のようになります。
- プロジェクトリポジトリーがすでに設定されており、ファイルに変更を加えるとします。
変更を加えて、次のコマンドを実行します。
ansible-sign project gpg-sign /path/to/project
このコマンドは、チェックサムマニフェストを更新し、署名します。
- 変更、更新されたチェックサムマニフェスト、および署名をリポジトリーにコミットします。
プロジェクトを同期すると、Automation Controller は新しい変更を取り込み、Automation Controller 内のプロジェクトに関連付けられた公開鍵が、チェックサムマニフェストの署名に使用された秘密鍵と一致することを確認します (これにより、チェックサムマニフェスト自体の改ざんが防止されます)。マニフェスト内の各ファイルのチェックサムを計算し、チェックサムが一致していること (つまり、ファイルが変更されていないこと) を確認します。また、すべてのファイルが考慮されていることも保証されます。
ファイルは MANIFEST.in
ファイルに含めるか、MANIFEST.in ファイルから除外する必要があります。このファイルの詳細は、プロジェクトの署名 を参照してください。ファイルが予期せず追加または削除された場合、検証は失敗します。
12.1. 前提条件
RHEL ノードを適切にサブスクライブしている。
- baseos および appstream リポジトリーを持つ RHEL サブスクリプションが有効になっている。
Red Hat Ansible Automation Platform サブスクリプションと適切なチャネルが有効になっている。
ansible-automation-platform-2.4-for-rhel-8-x86_64-rpms for RHEL 8 ansible-automation-platform-2.4-for-rhel-9-x86_64-rpms for RHEL 9
コンテンツ署名用に有効な GPG 公開鍵または秘密鍵のペアがある。詳細は、GPG キーペアの作成方法 を参照してください。
GPG キーの詳細は、GnuPG ドキュメント を参照してください。
次のコマンドを使用して、デフォルトの GnuPG キーリングに有効な GPG キーペアがあることを確認します。
gpg --list-secret-keys
このコマンドで何も出力されないか、
trustdb was created
という 1 行の出力が生成される場合は、デフォルトのキーリングに秘密鍵がありません。この場合、続行する前に、How to create GPG keypairs を参照して、新しいキーペアを作成する方法を確認してください。他の出力が生成される場合は、有効な秘密鍵があり、ansible-sign
を使用する準備ができています。