第 14 章 强化 API 端点


与 OpenStack 云交互的过程首先查询 API 端点。虽然公共和私有端点存在不同的挑战,但这些价值资产可能会带来很大的风险。

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

14.1. API 端点配置建议

本节介绍了强化 API 端点的建议。

14.1.1. 内部 API 通信

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

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

14.1.2. 在身份服务目录中配置内部 URL

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

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

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

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

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

每个项目可能具有定义目标 API 端点的不一致方式。未来版本的 OpenStack 寻求通过一致性地使用身份服务目录来解决这些不一致的问题。

14.1.4. 粘贴和中间件

OpenStack 中的大多数 API 端点和其他 HTTP 服务都使用 Python Paste Deploy 库。从安全角度而言,这个库通过应用程序的配置启用请求过滤管道的操作。此链中的每个元素都称为中间件。更改管道中过滤器的顺序,或者添加额外的中间件可能对不可预测的安全影响。

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

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

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

14.1.6. 命名空间

Linux 使用命名空间将进程分配给独立的域。本指南的其他部分将更详细地阐述系统划分。

14.1.7. 网络策略

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

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

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

14.1.8. 强制访问控制

您应该将 API 端点进程与计算机上的其他进程相互隔离。这些进程的配置应受 Discretionary 访问控制(DAC)和强制访问控制(MAC)的限制。这些增强型访问控制的目标是帮助对 API 端点安全漏洞的包含性。

14.1.9. API 端点速率限制

速率限制是一种控制网络基于网络应用程序接收的事件的频率。如果不存在强大的速率限制,则应用程序可能会受到各种拒绝服务攻击的影响。对 API 来说尤其如此,其特性旨在接受类似请求类型和操作的高频率。

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

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

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat