第 32 章 安全性
以下小节描述了自动化控制器如何处理并可让您控制文件系统安全性。
所有 playbook 都是通过 awx
文件系统用户执行的。对于运行作业,自动化控制器通过使用 Linux 容器提供作业隔离。这种保护可确保作业只能从该作业模板的项目目录访问 playbook、角色和数据。
为了获得凭证安全性,您可以选择上传锁定的 SSH 密钥,并将解锁密码设置为"ask"。您还可以选择让系统提示输入 SSH 凭证或 sudo 密码,而不是让系统将其存储在数据库中。
32.1. Playbook 访问和信息共享
自动化控制器使用自动化执行环境和 Linux 容器可防止 playbook 读取其项目目录之外的文件。
默认情况下,公开给容器内 ansible-playbook 进程的唯一数据是当前使用的项目。
您可以在 Job Settings 中自定义此功能,并将主机中的其他目录公开给容器中。
32.1.1. 隔离功能和变量
自动化控制器使用容器技术将作业相互隔离。默认情况下,只有当前项目公开给运行作业模板的容器。
如果需要公开其他目录,您必须自定义 playbook 运行。要配置作业隔离,您可以设置变量。
默认情况下,自动化控制器使用系统的 tmp
目录(默认为/tmp
)作为其暂存区域。这可以在 Jobs 设置 页面的 Job Execution Path 字段中更改,也可以在位于 /api/v2/settings/jobs
的 REST API 中进行更改:
AWX_ISOLATION_BASE_PATH = "/opt/tmp"
如果应该从主机向运行 playbook 的容器公开任何其他目录,您可以在 Jobs 设置页面的 Paths to Expose to Isolated Jobs 字段中指定,或者在位于 /api/v2/settings
/jobs 的 REST API 中指定它们:
AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
如果您的 playbook 需要使用 AWX_ISOLATION_SHOW_PATHS
中定义的密钥或设置,请将此文件添加到 /var/lib/awx/.ssh
中。
此处描述的字段可在 Jobs 设置 页面中找到: