第 7 章 在自动化控制器配置文件中加密明文密码
存储在自动化控制器配置文件中的密码以纯文本形式保存。有权访问 /etc/tower/conf.d/ 目录的用户可以查看用于访问数据库的密码。对目录的访问权限是通过权限进行控制的,因此受到保护,但有些安全发现导致这种保护无法受到保护。解决方法是单独加密密码。
7.1. 创建 PostgreSQL 密码哈希 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
流程
在自动化控制器节点上运行以下命令:
awx-manage shell_plus
# awx-manage shell_plusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,从 python 提示符运行以下命令:
>>> from awx.main.utils import encrypt_value, get_encryption_key \ >>> postgres_secret = encrypt_value('$POSTGRES_PASS') \ >>> print(postgres_secret)>>> from awx.main.utils import encrypt_value, get_encryption_key \ >>> postgres_secret = encrypt_value('$POSTGRES_PASS') \ >>> print(postgres_secret)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意将
$POSTGRES_PASS变量替换为您要加密的实际纯文本密码。输出应类似以下示例:
$encrypted$UTF8$AESCBC$Z0FBQUFBQmtLdGNRWXFjZGtkV1ZBR3hkNGVVbFFIU3hhY21UT081eXFkR09aUWZLcG9TSmpndmZYQXFyRHVFQ3ZYSE15OUFuM1RHZHBqTFU3S0MyNEo2Y2JWUURSYktsdmc9PQ==
$encrypted$UTF8$AESCBC$Z0FBQUFBQmtLdGNRWXFjZGtkV1ZBR3hkNGVVbFFIU3hhY21UT081eXFkR09aUWZLcG9TSmpndmZYQXFyRHVFQ3ZYSE15OUFuM1RHZHBqTFU3S0MyNEo2Y2JWUURSYktsdmc9PQ==Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制这些哈希的完整值并保存它们。
哈希值以
$encrypted$开头,而不仅仅是字符字符串,如下例所示:$encrypted$AESCBC$Z0FBQUFBQmNONU9BbGQ1VjJyNDJRVTRKaFRIR09Ib2U5TGdaYVRfcXFXRjlmdmpZNjdoZVpEZ21QRWViMmNDOGJaM0dPeHN2b194NUxvQ1M5X3dSc1gxQ29TdDBKRkljWHc9PQ==
$encrypted$AESCBC$Z0FBQUFBQmNONU9BbGQ1VjJyNDJRVTRKaFRIR09Ib2U5TGdaYVRfcXFXRjlmdmpZNjdoZVpEZ21QRWViMmNDOGJaM0dPeHN2b194NUxvQ1M5X3dSc1gxQ29TdDBKRkljWHc9PQ==Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,
$*_PASS值已在清单文件中以纯文本形式。
这些步骤提供哈希值替换自动化控制器配置文件中的纯文本密码。