我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
适用于 SAP 企业门户的应用程序负载均衡器
简介
对于 SAP 企业门户 (EP) 等 SAP Java 应用程序,客户使用 SAP Web 调度器作为其 HTTP 请求的入口点。SAP Web 调度器接收来自互联网或内联网的请求,并在应用程序服务器之间分发请求。对于基于互联网的 HTTP 请求,SAP Web 调度器需要可以访问互联网,这需要将其安装在公有子网中。许多 SAP 客户避免在公有子网上安装 EC2 实例,以减少可能的攻击面,从而缩小潜在的爆炸半径。
本博客介绍了客户如何将 E
应用程序负载均衡器及其功能
ALB 是一项高度可用的服务,它接受来自客户端的 HTTP 请求,并根据规则将其分发给目标组。每个目标组都包含 SAP EP 的单个或多个应用程序服务器的 IP 地址或 EC2 实例 ID 和 HTTP 端口组合。ALB 将将 HTTP 请求转发到应用程序服务器。
ALB 可以满足以下 SAP EP 要求
- 第 7 层 HTTP (s) 负载平衡服务,高度可用,能够跨多个可用区 (AZ) 分配请求。
- 高度安全、可靠和可扩展的 亚马逊云科技 托管服务,无需任何手动服务器维护(无服务器)。
- 可以根据基于主机和/或端口的映射将 HTTP (s) 请求转发到多个应用程序服务器。
- TLS/SSL 加密卸载。ALB 使用 SSL 证书来加密负载均衡器和客户端之间的流量。传入流量必须通过访问控制列表 (ACL) 的严格检查,然后才能到达托管 SAP 应用程序的 EC2 实例。
- 通过简单且受保护的 GSS-API 协商 (SPNEGO) 和使用 Active Directory 等身份提供商进行安全断言标记语言 (SAML) 身份验证,支持单点登录 (SSO)。
- HTTP 请求过滤。
WAF 可以与 ALB 一起用作额外的安全层,抵御开放式 Web 应用程序安全项目 (OWASP) 攻击,例如本博客中提到的 SQL 注入。 它还以 ACL 和规则的形式提供流量检查和过滤规则支持。我们可以按照文档 在 WAF 中定义自定义规则。 - SSL 证书管理。
如本文档所述,ACM 可用于管理 SSL/TLS 证书。
架构
1) 适用于 SAP EP 的单个 ALB 架构
我们可以使用单个 ALB 在多个 SAP 应用程序服务器之间分配负载。ALB 可以面向互联网或面向内联网(也称为内部 ALB)。对于通过直接连接或虚拟专用网络 (VPN) 从客户网络发出的 HTTP 请求,“内部” ALB 会将请求和负载平衡转发到应用程序服务器。但是,如果客户希望允许用户从互联网访问SAP EP,则需要面向互联网的 ALB,如图 1 右侧图所示,

图 1:左 — SAP EP 的单一内部 ALB 架构和右 — 适用于 SAP EP 的单一互联网 ALB 架构
2) 适用于 SAP EP 的 ALB 三明治架构

图 2:适用于 SAP EP 的 ALB 三明治架构
我们可以选择两个 ALB 的组合,在公有子网中有一个面向互联网的 ALB,在私
架构描述
- 我们已经考虑了双账户策略,其中公有子网位于网络账户中,私有子网位于 亚马逊云科技 生产账户中。您还可以在单个账户中部署相同的架构。
- 网络账户可以访问互联网,而 亚马逊云科技 生产账户无法直接访问互联网。这使得 亚马逊云科技 生产账户更加安全。
- 我们已经考虑了两个 ALB。网络账户中的ALB是SAP EP面向互联网的ALB。这将为互联网(外部)用户提供服务,并连接到面向内联网(内部)ALB,在那里它将为内联网(内部)用户提供服务。
- 在图 2 中,我们在多个可用区上使用了一组分布式虚拟机系列防火墙和 Amazon EC2 Auto Scaling 组,以提高可用性和灵活性。
- 这种三明治架构用于满足入站流量防火墙检查的要求。流量首先通过用作 Auto Scaling 虚拟机系列防火墙组前端的 ALB。每个防火墙的目标是 ALB,后面包含目标组(本例中为 EC2 实例)。这种方法允许安全检查层和网络前端层以经济高效的方式相互独立地向内和向外扩展。更多详细信息可以在此
博客 中找到 。
面向互联网的 ALB 配置
- 面向互联网的 ALB 配置为监听 HTTP 或 HTTPS 流量。将 HTTP 端口 80 路由到 HTTPS 端口 443 以提高安全性。
- 默认安全策略
elbSecurityPolicy-2016-08 是面向互联网和内部负载均衡器的推荐策略,因为它支持 TLSv1.2。 - 对于 HTTPS 侦听器,我们使用
ACM 证书或第三方证书在 ALB 上部署一个 SSL/TLS 服务器证书。
流程如下:
- 流量是在面向互联网的 ALB 处接收的。
- 它将流量转发到基于防火墙实例的目标组。
- 在防火墙实例中,使用静态网络地址转换 (NAT) 或端口到主机 NAT 策略将流量路由到内部 ALB。
- 内部 ALB 将接收来自防火墙的流量。
内部 ALB 配置
- 端口 80 定义为 HTTP 端口,用于监听通过防火墙路由的面向互联网的 ALB 的传入请求。
- 端口 443 定义为 HTTPS 端口,用于监听用户直接访问企业网络中的 SAP EP。
- 默认安全策略
elbSecurityPolicy-2016-08 是面向互联网和内部负载均衡器的推荐策略,因为它支持 TLSv1.2 - 对于 HTTPS 侦听器,我们使用
ACM 证书或第三方证书在 ALB 上部署一个 SSL/TLS 服务器证书。

图 3:内部 ALB 侦听器
内部 ALB 的目标群体
SAP EP 应用程序服务器的所有 IP 地址都添加到目标组。请注意,尽管可以添加 EC2 实例,但最好将

图 4:内部 ALB 的 SAP EP 的目标群体
SAP EP 目标组属性
Stickiness Type | Application cookie[app_cookie] |
Stickiness Duration | 17 hours |
App cookie name | saplb_* |

图 5:SAP EP 的粘性属性
SAP EP 需要启用基于应用程序的粘性。需要将后续请求传递到相关的应用程序服务器以支持有状态的用户会话。我们需要确保后端 SAP EP 添加了那个 saplb_* cookie,ALB 将复制其值并创建另一个名为 亚马逊云科技ALBAPP-* cookie 的 cookie。粘性持续时间必须足以确保用户的会话始终由 ALB 路由到特定的应用程序服务器。可以根据要求进行调整。我们建议在工作时间或一天内工作。
听众规则
监听器是一个使用您配置的协议和端口检查连接请求的进程。您可以在创建 ALB 时定义监听器,并且可以随时向负载均衡器添加监听器。例如,如图 3 所示,我们在内部 ALB 中定义了两个监听器:
- HTTP 80 用于来自面向互联网的 ALB 的流量
- HTTPS 443 适用于来自公司网络的流量
监听器的监听器规则决定了 ALB 如何将请求路由到其注册的目标。每条规则都包含优先级、一个或多个操作以及一个或多个条件。有关更多详细信息,请参阅此
内部 ALB 侦听器规则
下表描述了 ALB 的示例规则和配置。
Rule Number | Internal ALB Listener –Port 443 (Rule for internet traffic/internet facing ALB forward) |
Internal ALB Listener – Port 80 (Rule for intranet traffic) |
Corresponding SAP Web Dispatcher Rule |
5 | If Source IP is 10.0.0.0/8 OR 192.168.138.0/23 PATH is */webdynpro/dispatcher/sap.com/tc~sec~ume~wd~umeadmin/* Then Forward to sap-ep-prod-alb-tg: 1(100%) |
If PATH is */webdynpro/dispatcher/sap.com/tc~sec~ume~wd~umeadmin/* “Return Fixed Response- This Feature is Blocked over Internet” |
#User Administrator if %{PATH} regimatch ^/webdynpro/dispatcher/sap.com/tc~sec~ume~wd~umeadmin(.*) [and] If %{REMOTE_ADDR} !regimatch 10(.*) [and] %{REMOTE_ADDR} !regimatch 192.168.138(.*) [and] %{REMOTE_ADDR} !regimatch 192.168.139(.*) RegForbiddenURL ^/webdynpro/dispatcher/sap.com/tc~sec~ume~wd~umeadmin(.*) – [break] |
6 | If PATH is */webdynpro/dispatcher/sap.com/tc~sec~ume~wd~umeadmin/* “Return Fixed Response- This Feature is Blocked over Internet” |
上述两个监听器规则 5 和 6 将确保用户管理引擎 (UME) 管理员只能由系统管理员在内部访问。
规则 5 表示,允许从公司内部子网范围 10.0.0.0/8 或 192.168.138.0/24 或 192.168.139.0/24 内的 IP 地址访问 UME 管理员
规则 6 表示不允许从其他 IP 地址访问 UME 管理员。

图 6:内部 ALB HTTPs 侦听器端口 443 配置
面向互联网的 ALB 监听器规则
当 HTTP 请求到达面向 Internet 的 ALB(监听端口 443)时,它会将流量转发到内部 ALB,后者被定义为面向互联网的 ALB 的目标组。
根据监听器规则,当有来自互联网的请求向UME Admin发出请求时,将按照图 7 和图 8 将其阻止。

图 7:内部 ALB HTTP 侦听器端口 80 配置

图 8:尝试从互联网访问用户管理网址时的结果
ALB 属性和安全注意事项
- 建议 ALB 丢弃无效的数据包,并确保 ALB 配置为使用带有无效标头字段的 HTTP 标头被负载均衡器删除。
- TLS 1.2 在 ALB 级别上生效,因为与 TLS 1.1 相比,它增强了安全性
- 如果计划使用 EC2 自动扩展,则必须禁用删除保护。
- 空闲超时应等于或大于 SAP 应用程序的处理超时。默认情况下,SAP EP 的超时时间为 600 秒,必须将其合并到面向互联网和内联网的 ALB 中。
ALB 支持通过互联网通过 SAP EP 访问 SAP ECC 后端内容
我们希望确保ALB支持与SAP EP的连接,并通过互联网从SAP EP重定向到SAP ECC后端。有关流量如何通过开放网络从 SAP EP 流向 SAP ECC 后端的更多信息,请访问
一些客户有严格的政策,只允许使用单一的完全限定域名 (FQDN) 和端口组合进行互联网流量。在这种情况下,只能通过基于上下文或路径的映射来在多个 SAP 系统之间分配负载。例如:如果客户只允许一个带有端口 443 的外部 ALB,并且它需要允许连接到 SAP EP 和 SAP Fiori,则侦听器规则条件必须按路径 “/irj/portal” 或 “/nwa” 映射 SAP EP,对于 SAP Fiori,则监听器规则条件必须按路径 “/irj/portal” 或 “/nwa” 进行映射。当我们只有一个 ALB 时,这可能会造成路径冲突,尤其是那些常见的内容,如 “/icon”、“/sap” 等。因此,建议将两个或多个 ALB 组合在一起,以便为面向互联网的用户和内联网用户设计多个 SAP 解决方案。
以下架构显示了两对用于基于上下文的映射的 ALB,一对用于 SAP EP,另一对用于 SAP ECC 访问相应的应用程序。

图 9:用于通过互联网从 SAP EP 访问 SAP ECC 内容的多 ALB 架构
我们已经考虑使用两对 ALB 来实现通过 SAP EP 在互联网上实现 SAP ECC 功能的目标。Pair 1 包含面向互联网的内部 ALB,其架构如前面为 SAP EP 所述。Pair 2 包含另一组面向互联网的系统和一个用于 SAP ECC 系统的内部 ALB。
我们必须确保 SAP ECC webdynpro 网址不能直接通过互联网访问,而只能通过 SAP EP 或相同域的系统进行访问。
这是通过在面向 SAP ECC 互联网的 ALB 中实现侦听器规则来实现的,如图 10 所示,其中 “HTTP 标头引用” 字段确保只能从 ess-ep.example.com ALB FQDN 访问 ECC 服务,例如,使用 HTTP 响应 402 阻止通过互联网直接访问任何 ECC 服务。

图 10:ECC ALB 侦听器规则中的 HTTP 标头引用器
SAP ERP 的内部 ALB 可以通过侦听器端口 443 直接访问,因此可以直接从内部企业网络访问或从 SAP EP 中引用。

图 11:SAP EP 中的 ESS iView

图 12:系统别名配置
已使用 SAP ECC ALB FQDN 定义了 SAP ECC 的 “系统别名”,以便通过 https:
预期的 HTTP 请求流:
- 用户将首先访问 SAP EP 门户网站的网址,该网址会打开 /irj/portal
- 在通过 VM 系列防火墙之前,该请求将到达面向互联网的 SAP EP ALB
- 然后将其转发到 SAP EP 的内部 ALB,最后转发到 SAP EP 应用程序服务器。
- 进入SAP EP后,用户点击ESS选项卡,请求将被重定向到面向互联网的SAP ECC的ALB。
- 然后,请求被发送到虚拟机系列防火墙,并到达验证侦听器规则的 SAP ECC 内部 ALB。
- 它根据匹配条件将流量发送到 SAP ECC 目标组,以达到 SAP ECC 应用程序服务器。
如果用户尝试直接通过互联网访问SAP ECC webdynpro网址,则访问将被拒绝,因为SAP EP ALB是规则中所示的 “推荐人”,是访问ECC ALB的唯一途径,如图10所示。
由于 HTTP Referer 仅在外部 ALB 端实现,因此直接连接到内部 ALB 的内联网用户在直接或间接访问 URL 时不会遇到任何问题。
ALB 性能分析和故障排除
要监控 ALB 性能,您可以前往

图 13:亚马逊 Cloudwatch ALB 性能指标
您可以参考
结论
在这篇博客文章中,我们深入探讨了 ALB for SAP EP 应用程序的用例、架构模式和设置程序。客户在其 SAP 应用程序中使用 ALB 是为了利用其许多功能和优势。ALB 是一项 亚马逊云科技 托管服务,无需维护底层操作层或 EC2 实例。它是一项高度可用且可扩展的服务,可简化您的 SAP 环境。
您可以 从 亚马逊云科技
如果您需要其他专家指导,请联系您的 亚马逊云科技 账户团队聘请当地 SAP 专家解决方案架构师或 亚马逊云科技 专业服务 SAP 专业实践。
加入 SAP on 亚马逊云科技 讨论会
除了您的客户账户团队和 亚马逊云科技 Support 渠道外,您还可以通过 re
该博客由苏米特·戴伊共同撰写。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。