安全¶
安全性是 OpenStack-Ansible (OSA) 中的首要任务之一,许多 OpenStack 云的安全增强功能默认情况下在部署中可用。本节提供最重要的安全增强功能的详细概述。
注意
每个部署者都有不同的安全要求。 OpenStack 安全指南 提供了有关如何使用最安全的方法操作和使用 OpenStack 云的说明和建议。
加密通信¶
任何 OpenStack 云都有敏感信息在服务之间传输,包括用户凭据、服务凭据或有关正在创建的资源的信息。在无法信任网络的环境中,加密此流量至关重要。(有关保护网络的更多信息,请参阅 保护对 OpenStack 服务的网络访问 部分。)
使用 OpenStack-Ansible 部署的许多服务默认情况下已加密,或提供加密作为选项。 默认情况下,playbooks 会生成自签名证书,但部署者可以选择使用他们现有的证书、密钥和 CA 证书。
要了解有关如何自定义加密通信部署的更多信息,请参阅 使用 SSL 证书保护服务。
主机安全加固¶
OpenStack-Ansible 提供了一个全面的 安全加固角色,该角色应用了由国防信息系统局 (DISA) 提供的 安全技术实施指南 (STIG) 推荐的 200 多个安全配置。 这些安全配置被广泛使用,并且由美国政府公开分发。
主机安全加固是若干合规性和监管计划的要求,例如 支付卡行业数据安全标准 (PCI DSS)(要求 2.2)。
默认情况下,OpenStack-Ansible 会自动将 ansible-hardening 角色应用于所有部署。 该角色经过精心设计,可以执行以下操作
无破坏性地应用于生产 OpenStack 环境
平衡安全性和 OpenStack 性能和功能
尽快运行
有关安全配置的更多信息,请参阅 安全加固角色 文档。
隔离¶
默认情况下,OpenStack-Ansible 默认提供运行 OpenStack 基础设施(控制平面)服务的容器之间以及部署中最终用户生成的虚拟机之间的隔离。 这种隔离至关重要,因为它可以防止容器或虚拟机突破,或者至少减少突破可能造成的损害。
Linux 安全模块 (LSM) 框架允许管理员在 Linux 系统上设置 强制访问控制 (MAC)。 MAC 不同于 自主访问控制 (DAC),因为内核强制执行严格的策略,任何用户都无法绕过。 尽管任何用户都可以更改 DAC 策略(例如 chown bob secret.txt),只有 root 用户才能更改 MAC 策略。
OpenStack-Ansible 当前使用 AppArmor 在基础设施服务器和虚拟机管理程序上提供 MAC 策略。 AppArmor 配置设置访问策略,以防止一个容器访问另一个容器的数据。 对于虚拟机,libvirtd 使用 sVirt 扩展,以确保一个虚拟机无法访问另一个虚拟机的的数据或设备。
这些策略在内核级别应用和管理。 任何违反策略的进程都会被拒绝访问资源。 所有拒绝情况都记录在 auditd 中,并可在 /var/log/audit/audit.log 中找到。
最小权限原则¶
最小权限原则 在整个 OpenStack-Ansible 中使用,以限制攻击者获得任何凭据后可能造成的损害。
OpenStack-Ansible 为与 RabbitMQ 和 Galera/MariaDB 交互的每个服务配置唯一的用户名和密码组合。 连接到 RabbitMQ 的每个服务都使用单独的虚拟主机来发布和消费消息。 每个服务的 MariaDB 用户仅被授予访问他们需要查询的数据库的权限。
您还可以通过利用 Ansible 权限提升 方法以非 root 用户身份运行 OpenStack-Ansible。 有关详细信息,请参阅 以非 root 身份运行。
保护对 OpenStack 服务的网络访问¶
OpenStack 云为最终用户提供许多服务,使他们能够构建实例、配置存储和创建网络。 这些服务中的每一个都在网络上公开一个或多个服务端口和 API 端点。
但是,OpenStack 云中的某些服务可供所有最终用户访问,而其他服务只能供在安全网络上的管理员或操作员访问。
所有最终用户都可以访问的服务
这些服务包括 Compute (nova)、对象存储 (swift)、网络 (neutron) 和镜像 (glance)。
这些服务应在一个足够受限的网络上提供,该网络仍然允许所有最终用户访问这些服务。
必须使用防火墙来限制对网络的访问。
只有管理员或操作员才能访问的服务
这些服务包括 MariaDB、Memcached、RabbitMQ 以及 Identity (keystone) 服务的管理 API 端点。
这些服务必须在一个高度受限的网络上提供,该网络仅供管理用户使用。
必须使用防火墙来限制对网络的访问。
限制对这些网络的访问具有若干好处
允许进行网络监控和告警
防止未经授权的网络监控
降低凭据被盗的风险
减少因未知或未修补的服务漏洞造成的损害
OpenStack-Ansible 为每个服务部署 HAProxy 后端,并通过仅在管理网络上提供高度敏感的服务来限制访问。 具有外部负载均衡器的部署者必须确保后端配置安全,并且防火墙可以防止流量在网络之间交叉。
有关 OpenStack 云的推荐网络策略的更多信息,请参阅 API 端点过程隔离和策略 部分 OpenStack 安全指南