[ 英语 | 印度尼西亚语 | 俄语 ]

安全

安全性是 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 安全指南