2.3. 初始配置
授予系统某些部分的访问权限会带来安全漏洞。应用以下实践来帮助安全访问:
- 最小化对系统管理帐户的访问。用户界面(web 接口)和自动化控制器在其中运行的操作系统之间有一个区别。系统管理员或 root 用户可以访问、编辑和破坏任何系统应用程序。对控制器具有 root 访问权限的人都可以解密这些凭证,因此尽量减少对系统管理帐户的访问对于维护安全系统至关重要。
- 最小化本地系统访问。除了管理目的外,自动化控制器不应该需要本地用户访问。非管理员用户不应该具有控制器系统的访问权限。
- 强制隔离任务。不同的自动化组件可能需要在不同级别上访问系统。为每个组件使用不同的密钥或凭证,以便最小化任何一个密钥或凭证漏洞的影响。
- 将自动化控制器限制为只能进行低级控制器配置和灾难恢复的最低用户集合。在控制器上下文中,任何控制器 '系统管理员' 或 'superuser' 帐户都可以编辑、更改和更新控制器中的任何清单或自动化定义。
2.3.1. 使用基础架构作为代码模式 复制链接链接已复制到粘贴板!
Red Hat Community of practice 创建了一组通过集合提供的自动化内容,以管理 Ansible Automation Platform 基础架构和配置作为代码。这可通过 Infrastructure as Code (IaC)或 Configuration as Code (CaC)实现平台本身的自动化。虽然这种方法的许多优点很明显,但需要考虑一些关键的安全隐患。
以下 Ansible 内容集合可用于使用基础架构作为代码方法管理 Ansible Automation Platform 组件,它们都在 Ansible Automation Hub 中找到:
| 验证的集合 | 集合目的 |
|
| 用于自动化 Ansible Automation Platform 第 1 天和第 2 天操作的 Ansible 内容,包括安装、备份和恢复、证书管理等。 |
|
| 管理自动化控制器组件的角色集合,包括管理用户和组(RBAC)、项目、作业模板和工作流、凭证等。 |
|
| 用于与自动化中心交互的 Ansible 内容,包括用户和组(RBAC)、集合上传和管理、集合批准、管理执行环境镜像 registry 等。 |
|
| 用于创建和管理执行环境镜像的角色集合,或者从旧的 Tower virtualenv 迁移到执行环境。 |
许多企业使用 CI/CD 平台来配置管道或其他方法来管理这类基础架构。但是,原生使用 Ansible Automation Platform,可以将 Webhook 配置为原生链接基于 Git 的存储库。这样,Ansible 可以直接响应 git 事件来触发作业模板。这从整个过程中删除了对外部 CI 组件的需要,从而减少了攻击面。
这些实践允许对所有基础架构和配置进行版本控制。应用 Git 最佳实践以确保在同步到 Ansible Automation Platform 前正确检查代码质量。相关的 Git 最佳实践包括:
- 创建拉取请求。
- 确保检查工具就位。
- 确保没有提交纯文本 secret。
- 确保遵循 pre-commit hook 和任何其他策略。
IaC 还鼓励使用外部 vault 系统,无需将任何敏感数据存储在存储库中,或者根据需要处理单独的 vault 文件。有关使用外部 vault 系统的更多信息,请参阅本指南中的 2.3.2.3 外部凭证库注意事项。
2.3.2. 控制器配置 复制链接链接已复制到粘贴板!
2.3.2.1. 配置集中式日志记录 复制链接链接已复制到粘贴板!
日志记录的一个关键功能是自动化控制器检测和采取措施来缓解故障,如达到存储容量,默认关闭控制器。本指南推荐应用服务器成为高可用性系统的一部分。在这种情况下,自动化控制器将执行以下步骤来缓解失败:
- 如果失败是由缺少日志记录存储容量导致的,则应用程序必须继续生成日志记录(如果需要,自动重启日志服务),以优先方式覆盖最旧的日志记录。
- 如果日志记录发送到集中式集合服务器,且与此服务器的通信丢失或服务器失败,则应用程序必须在本地队列记录,直到通信被恢复或直到手动检索日志记录为止。在恢复与集中式集合服务器的连接后,必须采取措施将本地日志数据与集合服务器同步。
要验证每个自动化控制器主机的 rsyslog 配置,请为每个自动化控制器完成以下步骤:
管理员必须检查每个自动化控制器主机的 rsyslog 配置,以针对组织定义的日志捕获大小验证日志滚动。要做到这一点,请使用以下步骤,并正确使用配置步骤:
检查自动化控制器配置中的
LOG_AGGREGATOR_ACTION_MAX_DISK_USAGE_GB字段。在主机上执行:awx-manage print_settings LOG_AGGREGATOR_ACTION_MAX_DISK_USAGE_GB如果此字段没有设置为组织定义的日志捕获大小,请按照配置步骤操作。
检查自动化控制器配置中的
LOG_AGGREGATOR_MAX_DISK_USAGE_PATH字段到/var/lib/awx。在主机上执行:awx-manage print_settings LOG_AGGREGATOR_MAX_DISK_USAGE_PATH如果此字段没有设置为
/var/lib/awx,请按照以下步骤执行:- 打开 Web 浏览器,再进入到 https://<automation controller server>/api/v2/settings/logging/,其中 <automation controller server> 是自动化控制器的完全限定主机名。如果显示 选项,点它,以自动化控制器 adminstrator 帐户身份登录,然后继续。
在 Content 部分中,修改以下值,然后点 :
- LOG_AGGREGATOR_ACTION_MAX_DISK_USAGE_GB = <new log buffer in GB>
-
LOG_AGGREGATOR_MAX_DISK_USAGE_PATH =
/var/lib/awx
请注意,需要在负载均衡的场景中在每个自动化控制器上进行这个更改。
必须记录所有用户会话数据,以支持故障排除、调试和分析,以进行可见性和分析。如果没有来自控制器 Web 服务器的这些数据,则事件调查的重要审计和分析将会丢失。要验证系统是否已配置为确保记录用户会话数据,请使用以下步骤:
对于每个自动化控制器主机,进入 console Settings >> System >> Miscellaneous System。
- 点 。
设置以下内容:
- 启用活动流 = On
- 为清单同步启用活动流 = On
- 机构管理员可以管理用户和团队 = Off
- 机构管理员可见所有用户 = On
- 点
要将日志记录设置为任何聚合器类型,请按照以下步骤读取 支持的日志聚合器 文档并配置日志聚合器:
- 进入 Ansible Automation Platform。
- 单击 。
- 在 System 选项列表中,选择 Logging settings。
- 在 Logging 设置屏幕底部,点 。
从提供的字段中设置可配置选项:
- 启用外部日志记录 :如果要将日志发送到外部日志聚合器,请单击切换按钮到 。在完成此操作前,UI 需要填写日志记录聚合器和日志记录聚合器端口字段。
- 日志记录聚合器 :输入您要发送日志的主机名或 IP 地址。
- 日志记录聚合器端口:如果聚合器需要端口,请为其指定端口。
日志记录聚合器类型 :从下拉菜单中选择聚合器服务:
- Splunk
- Loggly
- Sumologic
- 弹性堆栈(以前称为 ELK 堆栈)
- 日志记录聚合器用户名 :如果需要,输入日志记录聚合器的用户名。
- 日志记录聚合器密码/令牌 :如果需要,请输入日志记录聚合器的密码。
- 单独记录系统跟踪事实:点工具提示图标,单击工具提示图标,是否要将其打开,或者默认保持关闭。
- 日志记录聚合器协议 :选择一个连接类型(协议)来与日志聚合器通信。后续选项因所选协议而异。
- Logging Aggregator Level Threshold :选择希望日志处理器报告的严重性级别。
- TCP Connection Timeout:指定连接超时(以秒为单位)。这个选项仅适用于 HTTPS 和 TCP 日志聚合器协议。
- 启用/禁用 HTTPS 证书验证: HTTPS 日志协议默认启用证书验证。如果您不希望日志处理程序在建立连接前验证外部日志聚合器发送的 HTTPS 证书,点切换按钮变为 。
- 将数据发送到日志聚合器表单的日志记录器:默认情况下,所有四种类型数据都会预先填充。点字段旁的工具提示图标可查看每种数据类型的附加信息。删除您不想的数据类型。
- 日志格式 for API 4XX 错误:配置特定的错误消息。
- 点 应用设置,或点 来取消更改。
- 要验证您的配置是否已正确设置,请首先 ,然后单击 。这会使用自动化控制器中的当前日志记录配置向日志聚合器发送测试日志消息。您应该检查以确保外部日志聚合器收到了此测试信息。
为使用 LDAP 用户名和密码登录的任何用户自动创建自动化控制器帐户。这些用户可以作为常规用户或机构管理员自动放入机构中。这意味着,当使用 LDAP 集成时,应打开日志记录。您可以像为 LDAP 启用日志记录一样,为 SAML 适配器启用日志信息。
以下步骤启用 LDAP 日志记录:
要为 LDAP 启用日志记录,您必须在 Settings 配置窗口中将 level 设置为 DEBUG。
- 点击左侧导航栏中的 ,然后从 System 选项列表中选择 Logging settings。
- 点 。
- 将 Logging Aggregator Level Threshold 字段设置为 Debug。
- 点 保存您的更改。
2.3.2.2. 配置外部身份验证源 复制链接链接已复制到粘贴板!
如 用户身份验证计划 一节中所述,建议使用外部身份验证来访问自动化控制器。选择最适合您的需要的身份验证类型后,进入
当在自动化控制器中使用 LDAP 进行外部身份验证时,进入 并选择 Authentication,然后在自动化控制器中选择 LDAP 设置,并确保配置了以下之一:
-
对于 LDAP over SSL,LDAP Server URI 设置必须以
ldaps://'开头并使用端口 636,如ldaps://ldap-server.example.com:636。 - 对于 LDAP over TLS,LDAP Start TLS 设置必须设置为 "On"。
2.3.2.3. 外部凭证库注意事项 复制链接链接已复制到粘贴板!
Secret 管理是维护安全自动化平台的重要组件。我们推荐以下 secret 管理实践:
- 确保没有未授权用户对系统的访问权限,并确保只授予需要访问权限的用户。自动化控制器加密敏感信息,如密码和 API 令牌,但也存储要解密的密钥。授权用户可能有权访问所有内容。
- 使用外部系统来管理机密。如果需要更新凭证,外部系统就可以检索更新的凭证,其复杂性比内部系统要低。用于管理 secret 的外部系统包括 CyberArk、HashiCorp Vault、Microsoft Azure Key Management 等。如需更多信息,请参阅自动化控制器用户指南 v4.4 中的 Secret 管理系统 部分。