第 17 章 安全最佳实践
您可以部署自动化控制器来安全地自动化典型的环境。但是,管理某些操作系统环境、自动化和自动化平台可能需要其他最佳实践来确保安全性。
要保护 Red Hat Enterprise Linux 从以下发行版本安全指南开始:
17.1. 了解 Ansible Automation Platform 和自动化控制器的架构 复制链接链接已复制到粘贴板!
Ansible Automation Platform 和自动化控制器包含一个通用的声明自动化平台。这意味着,当启动 Ansible Playbook 时(自动化控制器或直接在命令行中),提供给 Ansible 的 playbook、清单和凭据将被视为事实来源。如果您希望针对特定 playbook 内容、作业定义或清单内容进行外部验证的策略,您必须在自动化启动前完成这些进程,可以由自动化控制器 Web UI 或自动化控制器 API 进行。
使用源控制、分支和强制代码审核是 Ansible 自动化的最佳实践。有一些工具可帮助以这种方式创建使用源控制的进程流。
在更高级别上,存在支持针对任意工作流(包括自动化)创建批准和基于策略的操作的工具。然后,这些工具可以通过自动化控制器的 API 使用 Ansible 来执行自动化。
您必须在自动化控制器安装时使用安全的默认管理员密码。如需更多信息,请参阅 更改自动化控制器管理员密码。
自动化控制器在某些已知的端口上公开服务,如 HTTP 流量端口 80,HTTPS 流量使用端口 443。不要在开放互联网上公开自动化控制器,这减少了安装受到威胁的威胁。
17.1.1. 授予访问权限 复制链接链接已复制到粘贴板!
授予系统某些部分的访问权限会带来安全风险。应用以下实践来帮助安全访问:
17.1.2. 保持管理帐户的最小化 复制链接链接已复制到粘贴板!
最小化对系统管理帐户的访问对于维护一个安全系统至关重要。系统管理员或 root 用户可以访问、编辑和破坏任何系统应用程序。在可能的情况下,限制人员或具有 root 访问权限的帐户数量。不要为不受信任的用户提供 sudo 到 root 或 awx (自动化控制器用户)。请注意,当通过 sudo 等机制限制管理访问权限时,对特定命令的限制仍然可以授予广泛的访问权限。任何能够执行 shell 或任意 shell 命令的命令,或者可以更改系统上文件的任何命令都等于完全 root 访问权限。
使用自动化控制器时,任何自动化控制器 "系统管理员" 或 "superuser" 帐户都可以编辑、更改和更新自动化控制器中的清单或自动化定义。将其限制为只有最少的、可以进行低级自动化控制器配置和灾难恢复的用户集合。
17.1.3. 最小化本地系统访问 复制链接链接已复制到粘贴板!
当您将自动化控制器与最佳实践搭配使用时,除了用于管理目的外,不需要本地用户访问。非管理员用户无法访问自动化控制器系统。
17.1.4. 删除用户对凭证的访问 复制链接链接已复制到粘贴板!
如果自动化控制器凭证只存储在控制器中,您可以进一步保护它。您可以将 OpenSSH 等服务配置为只允许来自特定地址的连接的凭证。自动化使用的凭证可能与系统管理员用于灾难恢复或其他临时管理的凭证不同,从而可以更轻松地进行审核。
17.1.5. 强制隔离任务 复制链接链接已复制到粘贴板!
不同的自动化部分可能需要在不同级别上访问系统。例如,您可以有低级系统自动化来应用补丁并执行安全基线检查,同时具有更高级别的自动化部署应用程序。通过为每个自动化使用不同的密钥或凭证,可以最小化任何一个关键漏洞的影响,同时启用基准审计。