第12章 プロジェクトの署名と検証
プロジェクトの署名と検証を使用すると、プロジェクトディレクトリー内のファイルに署名し、そのコンテンツが何らかの方法で変更されていないか、またはファイルがプロジェクトに予期せず追加または削除されていないかどうかを検証できます。これを行うには、署名用の秘密鍵と、検証用の対応する公開鍵が必要です。
12.1. プロジェクトの署名について リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトのメンテナーがコンテンツの署名を行い場合でサポートされている手法は、ansible-sign
ユーティリティーを使用して、付属の コマンドラインインターフェイス (CLI) を使用することです。
この CLI の目的は、GNU Privacy Guard (GPG) などの暗号化テクノロジーを簡単に使用して、プロジェクト内のファイルがいかなる方法でも改ざんされていないと検証することです。現在、サポートされている署名と検証の手段は GPG のみです。
Automation Controller は、署名されたコンテンツを検証するために使用されます。一致する公開鍵が署名されたプロジェクトに関連付けられた後、Automation Controller は、署名中に含まれたファイルが変更されていないこと、およびファイルが予期せず追加または削除されていないことを検証します。署名が無効であるかファイルが変更されている場合、プロジェクトは更新に失敗し、プロジェクトを使用するジョブは起動されません。プロジェクトの検証ステータスにより、セキュアで改ざんされていないコンテンツのみがジョブで実行できることが保証されます。
リポジトリーが署名と検証用にすでに設定されている場合、プロジェクト変更用の通常のワークフローは次のようになります。
- プロジェクトリポジトリーがすでに設定されており、ファイルに変更を加えるとします。
変更を加えて、次のコマンドを実行します。
ansible-sign project gpg-sign /path/to/project
ansible-sign project gpg-sign /path/to/project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、チェックサムマニフェストを更新し、署名します。
- 変更、更新されたチェックサムマニフェスト、および署名をリポジトリーにコミットします。
プロジェクトを同期すると、Automation Controller は新しい変更を取り込み、Automation Controller 内のプロジェクトに関連付けられた公開鍵が、チェックサムマニフェストの署名に使用された秘密鍵と一致することを確認します (これにより、チェックサムマニフェスト自体の改ざんが防止されます)。マニフェスト内の各ファイルのチェックサムを計算し、チェックサムが一致していること (つまり、ファイルが変更されていないこと) を確認します。また、すべてのファイルが考慮されていることも保証されます。
ファイルは MANIFEST.in
ファイルに含めるか、MANIFEST.in ファイルから除外する必要があります。このファイルの詳細は、プロジェクトの署名 を参照してください。予期せずファイルが追加または削除された場合、検証が失敗します。