第 12 章 项目签名和验证
项目签名和验证可让您在项目目录中签署文件,然后验证内容是否以任何方式更改,或者文件被意外地从项目中添加或删除。要做到这一点,您需要私钥来签名和匹配的公钥进行验证。
12.1. 关于项目签名 复制链接链接已复制到粘贴板!
对于项目维护人员,支持签署内容的方式是使用 ansible-sign
实用程序,其 使用提供的命令行界面 (CLI)。
CLI 旨在方便地使用加密技术,如 GNU Privacy Guard (GPG)等技术来验证项目中的文件是否未被篡改。目前,GPG 是唯一支持的签名和验证方法。
自动化控制器用于验证签名的内容。在与签名项目关联了匹配的公钥后,自动化控制器会验证包含的文件在签名过程中没有改变,并且文件已被意外添加或删除。如果签名无效或者文件已更改,则项目无法更新,并且使用项目的作业不会启动。项目的验证状态可确保只有安全、未被调整的内容才能在作业中运行。
如果已经为签名和验证配置了存储库,更改项目的常见工作流如下:
- 您已设置了项目存储库,并希望更改文件。
您可以进行更改,并运行以下命令:
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 此命令更新校验和清单并进行签名。
- 您可以将更改、更新的校验和清单以及签名提交到存储库。
当您同步项目时,自动化控制器会拉取新的更改,检查与自动化控制器中的项目关联的公钥是否与校验和清单签名的私钥匹配(这可以防止对校验和清单本身的篡改),然后重新计算清单中每个文件的校验和,以确保校验和匹配(从而没有更改文件)。它还确保考虑了所有文件:
文件必须包含在 MANIFEST.in 文件中,或排除在 MANIFEST.in
文件中。有关此文件的更多信息,请参阅 签署项目。如果意外添加或删除文件,验证会失败