32. 安全性
以下部分将帮助您了解 AWX 如何处理并允许您控制文件系统安全性。
所有剧本都通过 awx
文件系统用户执行。对于运行作业,AWX 通过使用 Linux 容器提供作业隔离。此投影确保作业只能访问该作业模板的项目目录中的剧本、角色和数据。
为了确保凭据安全,用户可以选择上传锁定的 SSH 密钥并将解锁密码设置为“ask”。您还可以选择让系统提示他们输入 SSH 凭据或 sudo 密码,而不是让系统将它们存储在数据库中。
32.1. 剧本访问和信息共享
AWX 使用自动化执行环境和 Linux 容器来防止剧本读取其项目目录之外的文件。
默认情况下,容器内 ansible-playbook 进程唯一公开的数据是当前正在使用的项目。
您可以在作业设置中自定义此设置,并将主机中的其他目录暴露到容器中。有关更多信息,请参阅下一节,隔离功能和变量。
32.1.1. 隔离功能和变量
AWX 使用容器技术将作业彼此隔离。默认情况下,只有当前项目会暴露给运行作业模板的容器。
您可能会发现需要自定义剧本运行以公开其他目录。为了微调您对作业隔离的使用,可以设置某些变量。
默认情况下,AWX 将使用系统的 tmp
目录(默认为 /tmp
)作为其暂存区。这可以在作业设置屏幕的“作业执行路径”字段中更改,或在 REST API 中的 /api/v2/settings/jobs
中更改。
AWX_ISOLATION_BASE_PATH = "/opt/tmp"
如果需要从主机到运行剧本的容器中公开任何其他特定目录,则可以在作业设置屏幕的“要公开到隔离作业的路径”字段中指定这些目录,或在 REST API 中的 /api/v2/settings/jobs
中指定。
AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
注意
可能需要添加到
AWX_ISOLATION_SHOW_PATHS
的主要文件是/var/lib/awx/.ssh
,如果您的剧本需要使用在此处定义的密钥或设置。
以上字段可以在作业设置窗口中找到