第 4 章 在私有自动化中心中的集合和内容签名
作为机构的自动化管理员,您可以配置私有自动化中心,以根据机构中的不同组签名和发布 Ansible 内容集合。
为提高安全性,自动化创建者可以配置 Ansible-Galaxy CLI 以验证这些集合,确保在上传到自动化中心后不会更改它们。
4.1. 在私有自动化 hub 中配置内容签名
要成功签名并发布 Ansible 认证的内容集合,您必须配置私有自动化中心进行签名。
前提条件
- 您的 TIPC 密钥对已安全设置并管理您的机构。
- 您的公钥/私钥对有权在私有自动化中心上配置内容签名。
流程
创建只接受文件名的签名脚本。
注意此脚本充当签名服务,必须使用通过
PULP_SIGNING_KEY_FINGERPRINT
环境变量指定的密钥为该文件生成 ascii-armored 分离gpg
签名。然后,该脚本会输出一个 JSON 结构,其格式如下:
{"file": "filename", "signature": "filename.asc"}
所有文件名都是当前工作目录中的相对路径。对于分离的签名,文件名必须保持相同,如下所示。
以下示例显示了为内容生成签名的脚本:
#!/usr/bin/env bash FILE_PATH=$1 SIGNATURE_PATH="$1.asc" ADMIN_ID="$PULP_SIGNING_KEY_FINGERPRINT" PASSWORD="password" # Create a detached signature gpg --quiet --batch --pinentry-mode loopback --yes --passphrase \ $PASSWORD --homedir ~/.gnupg/ --detach-sign --default-key $ADMIN_ID \ --armor --output $SIGNATURE_PATH $FILE_PATH # Check the exit status STATUS=$? if [ $STATUS -eq 0 ]; then echo {\"file\": \"$FILE_PATH\", \"signature\": \"$SIGNATURE_PATH\"} else exit $STATUS fi
部署私有自动化中心后,向 Ansible Automation Platform 集群启用签名后,新的 UI 会在与集合交互时显示。
查看 Ansible Automation Platform 安装程序清单文件中的以
automationhub_*
开头的选项。[all:vars] . . . automationhub_create_default_collection_signing_service = True automationhub_auto_sign_collections = True automationhub_require_content_approval = True automationhub_collection_signing_service_key = /abs/path/to/galaxy_signing_service.gpg automationhub_collection_signing_service_script = /abs/path/to/collection_signing.sh
两个新密钥(automationhub_auto_sign_collections 和 automationhub_require_content_approval)表示必须签名集合,并在上传到私有自动化中心后需要批准。