第 9 章 强化仪表板服务
本章介绍了使用 OpenStack Dashboard (horizon)的 Red Hat OpenStack Platform 部署的安全强化注意事项。
控制面板为用户提供一个自助服务门户,用于调配自己的资源(管理员设置的限制)。例如,您可以使用控制面板定义实例类别、上传虚拟机(VM)镜像、管理虚拟网络、创建安全组、启动实例,以及通过管理控制台远程访问实例。
如果仪表板具有与 OpenStack API 相同的敏感度,则应该可以对待控制面板,同时具有对云资源和配置的访问权限。
9.1. 规划仪表板部署 复制链接链接已复制到粘贴板!
本节论述了在部署 Dashboard (horizon)服务前需要考虑的安全问题。
9.1.1. 选择域名 复制链接链接已复制到粘贴板!
建议您将仪表板部署到二级域中,如 https://example.com
,而不是在共享子域(任何级别上)上部署仪表板,如 https://openstack.example.org
或 https://horizon.openstack.example.org。
它还建议您避免将仪表板部署到裸机内部域,如 https://horizon/
。这些建议基于浏览器 same-origin-policy
的限制。
这种方法可帮助您将 Cookie 和安全令牌与其他域隔离,因为您可能无法对内容进行完全控制。当部署到子域上时,仪表板的安全性等同于在同一第二级别域中部署的最低安全应用程序。
您可以通过避免由 Cookie 支持的会话存储和配置 HTTP Strict Transport Security (HSTS) (本指南中所述),来进一步缓解这一风险。
9.1.2. 配置 ALLOWED_HOSTS 复制链接链接已复制到粘贴板!
Web 服务可能会受到与虚拟 HTTP 主机标头关联的威胁的影响。为了帮助缓解这一点,请考虑将 ALLOWED_HOSTS
设置配置为使用由 OpenStack 控制面板提供的 FQDN。
配置后,如果传入 HTTP 请求的 Host:
标头中的值与此列表中的任何值不匹配,则将引发错误,并且请求者将无法继续。
Horizon 基于 python Django Web 框架构建,这需要设置 ALLOWED_HOSTS
以防止潜在的 HTTP Host:
标头的恶意操作。将此值设置为 FQDN,仪表板应该可从其中访问。对于 director,此设置由 HorizonAllowedHosts
管理。