第 16 章 强化 API 端点


与 OpenStack 云互动的过程从查询 API 端点开始。虽然公共和私有端点有不同的挑战,但这些都是高价值资产,在被破坏时可能会带来巨大的风险。

本章推荐对面向公共和私有的 API 端点的安全性增强。

16.1. API 端点配置建议

本节论述了强化 API 端点的建议。

16.1.1. 内部 API 通信

OpenStack 同时提供面向公共的、内部管理员和私有 API 端点。默认情况下,OpenStack 组件使用公开定义的端点。建议将这些组件配置为在正确的安全域中使用 API 端点。内部管理端点允许对 keystone 进一步提升访问,因此可能需要进一步隔离它。

服务根据 OpenStack 服务目录选择对应的 API 端点。这些服务可能没有遵循列出的公共或内部 API 端点值。这会导致内部管理流量路由到外部 API 端点。

16.1.2. 在 Identity 服务目录中配置内部 URL

Identity 服务目录应该了解您的内部 URL。虽然默认不使用此功能,但可以通过 配置来提供。另外,当此行为成为默认值后,它应该与预期更改兼容。

考虑将配置的端点与网络级别隔离,只要它们具有不同的访问级别。Admin 端点可供云管理员访问,因为它提供了对内部或公共端点不支持的 keystone 操作的升级访问。内部端点设计为使用云内部(例如,OpenStack 服务),通常无法在部署网络外访问。公共端点应启用 TLS,并且部署外的唯一 API 端点供云用户操作。

director 自动注册端点的内部 URL。如需更多信息,请参阅 https://github.com/openstack/tripleo-heat-templates/blob/a7857d6dfcc875eb2bc611dd9334104c18fe8ac6/network/endpoints/build_endpoint_map.py

16.1.3. 为内部 URL 配置应用程序

您可以强制某些服务使用特定的 API 端点。因此,建议任何联系另一个服务的 API 的 OpenStack 服务都必须明确配置,才能访问正确的内部 API 端点。

每个项目可能出现定义目标 API 端点不一致的方法。OpenStack 的未来版本希望通过使用 Identity 服务目录一致地解析这些不一致的情况。

16.1.4. 粘贴和中间件

OpenStack 中的大多数 API 端点和其他 HTTP 服务都使用 Python Paste Deploy 库。从安全角度来说,这个库支持通过应用程序的配置操作请求过滤器管道。这个链中的每个元素都被称为中间件。在管道中更改过滤顺序或添加额外的中间件可能会产生无法预计的安全影响。

通常,实施者添加中间件来扩展 OpenStack 的基本功能。考虑谨慎考虑通过向 HTTP 请求管道添加非标准软件组件所引入的潜在风险。

16.1.5. API 端点进程隔离和策略

您应该隔离 API 端点进程,特别是驻留在公共安全域中的进程应该尽可能被隔离。在部署允许的情况下,API 端点应部署到单独的主机上,以增加隔离。

16.1.6. 命名空间

Linux 使用命名空间将进程分配到独立的域中。本指南的其他部分更详细地涵盖了系统划分。

16.1.7. 网络策略

API 端点通常跨越多个安全区,因此您必须特别注意 API 进程分离。例如,在网络设计级别上,您可以考虑只限制对指定系统的访问。如需更多信息,请参阅安全区的指导。

仔细建模时,您可以使用网络 ACL 和 IDS 技术来强制实施网络服务之间的明确点对点通信。作为关键的跨域服务,这种类型的显式实施也适用于 OpenStack 的消息队列服务。

要强制执行策略,您可以配置服务、基于主机的防火墙(如 iptables)、本地策略(SELinux)和可选的全局网络策略。

16.1.8. 强制访问控制

您应该将 API 端点进程相互隔离,以及机器上的其他进程。这些进程的配置应受到 Discretionary Access Controls (DAC)和强制访问控制(MAC)的限制。这些增强的访问控制的目标是帮助 API 端点安全破坏。

16.1.9. API 端点速率限制

速率限制是一种控制基于网络的应用程序接收的事件频率的方法。如果没有可靠的速率限制,则可能会导致应用程序容易受到各种拒绝服务攻击的影响。对于 API,这尤其适用,其性质设计为接受类似请求类型和操作的高频率。

建议所有端点(特别是公共)都提供额外的保护层,例如使用物理网络设计、速率限制代理或 Web 应用程序防火墙。

在配置并实施任何速率限制功能时,Operator 会仔细规划并考虑其 OpenStack 云中用户和服务的独立性能需求。

请注意,对于 Red Hat OpenStack Platform 部署,所有服务都放在负载均衡代理后面。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat