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,如果您的剧本需要使用在此处定义的密钥或设置。

以上字段可以在作业设置窗口中找到

../_images/configure-awx-jobs-isolated-jobs-fields.png