安全扩展 - 常规 SAP 指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

安全扩展

mTLS 身份验证

双向传输层安全(mTLS)身份验证可在客户端与服务器之间建立安全的双向加密连接。与仅要求服务器提供证书的标准 TLS 不同,mTLS 要求客户端与服务器都提供数字证书。

mTLS 身份验证流程分为四个步骤:

  1. 客户端向服务器发起连接请求

  2. 服务器提供其证书

  3. 客户端验证服务器的证书

  4. 客户端提供其证书以供服务器进行验证和认证

为什么要为 SAP 系统实施 mTLS 身份验证

为 SAP 系统实施双向 TLS(mTLS)身份验证将能增强安全性、改进用户体验并减少运维开销。它可实现用户身份验证架构的现代化,为数字化转型提供支持,同时确保符合安全标准。mTLS 能够满足 SAP 环境中的以下安全要求:

  1. 增强安全性:mTLS 支持双向身份验证,确保客户端与服务器双方均验证彼此身份。这大大降低了未经授权的访问和 man-in-the-middle攻击的风险。

  2. 支持单点登录(SSO)的无缝用户体验:mTLS 可与 SSO 解决方案集成,使用户无需重复输入凭证即可访问多个 SAP 应用程序与服务。这将在整个 SAP 生态系统中实现更平稳且更高效的用户体验。

  3. 自动化证书轮换:mTLS 支持证书自动化轮换,无需人工干预即可定期更新身份验证凭证,从而增强安全性。这不仅能降低使用过期或受损证书的风险,还能最大限度地减少管理开销。

  4. 接口的主体传播:mTLS 可在不同 SAP 接口与系统间实现安全的主体传播。这样就无需使用通用帐户和特权帐户(例如拥有 SAP_ALL 授权的 SAP 用户)进行 system-to-system通信,从而显著提高了安全性和可审计性。

  5. 可扩展性与性能优化:mTLS 可在网络层实施,将身份验证流程从应用服务器卸载,进而提升 SAP 系统的性能与可扩展性。

  6. 支持零信任架构:mTLS 与零信任安全模型高度契合,该模型中从不预设信任关系,而是始终进行验证。

通过应用程序负载均衡器进行 mTLS 客户端身份验证

应用程序负载均衡器(ALB)支持 mTLS 身份验证,并提供两种模式:验证模式和直通模式。

先决条件

为确保无缝通信,整个架构中使用的所有 SSL(安全套接字层)或 TLS 证书(包括 ALB、SAP Web Dispatcher 以及 S/4HANA 系统上的证书),均应来自单一且受信任的根证书颁发机构,以便简化这些证书的部署与维护流程。

mTLS 架构图

下图描述了一个基本的 SAP AWS架构,该架构经过调整以与 RISE 和 SAP SKU 产品保持一致。

mTLS 架构图

mTLS 验证模式

要启用 mTLS 验证模式,请创建一个包含 CA 证书捆绑包的信任存储。这可以通过使用 Certif AWS icate Manager (ACM)、AWS私有 CA 或通过导入自己的证书来完成。使用存储在 Amazon S3 中并链接到信任存储库的证书吊销列表 (CRLs) 管理已吊销的证书。

ALB 会依据信任存储对客户端证书进行验证,从而高效拦截未经授权的请求。此方式将从后端目标卸载 mTLS 处理流程,提升整体系统效率。ALB CRLs 从 S3 导入并执行检查,无需重复提取 S3,从而最大限度地减少了延迟。

除了客户端身份验证之外,ALB 还通过 HTTP 标头(例如 X-Amzn-Mtls-Clientcert-Leaf)将客户端证书元数据通过 HTTP 标头传输到后端 SAP Web Dispatcher。这使得可基于证书详情在后端目标上实施额外逻辑,满足 SAP 服务器保留原始“主机头”信息的需求。

这使服务器能够一致地处理客户端证书元数据,即使这些元数据来自非 SAP 来源,例如终止 SSL 连接的AWS负载平衡器。如果您通过 ALB(SAP Web Dispatcher — SAP 服务器)实施 end-to-end加密,则必须配置 SAP Web Dispatcher 配置文件参数,例如 _certific icm/HTTPS/client ate_header_name,有关更多详细信息,请参阅此链接。

mTLS 直通模式

在 mTLS 直通模式下,ALB 会将客户端的完整证书链转发至后端目标。这是通过名为的 HTTP 标头完成 X-Amzn-Mtls-Clientcert的。证书链(包含终端证书)以 URL 编码的 PEM 格式发送,其中 +、= 和 / 被视为安全字符。以下是使用 mTLS 直通模式时的注意事项:

  • 如果没有客户端证书,ALB 不会添加任何标头;后端必须处理此情况。

  • 后端目标负责客户端身份验证与错误处理。

  • 对于 HTTPS 侦听器,ALB 会终止客户端与 ALB 之间的 TLS 连接,并使用目标已安装的证书发起 ALB 与后端之间的新 TLS 连接。

  • ALB 的 TLS 终止功能支持使用任何 ALB 路由算法来进行负载均衡。

NLB 直通

如果您有严格的安全合规规则,要求在服务器端终止客户端 TLS 连接,则可使用网络负载均衡器(NLB)

需要注意的关键点:

  1. NLB 在传输层(OSI 模型的第 4 层)运行。

  2. 它为 TCP/UDP 连接提供低延迟的负载平衡。

  3. NLB 允许后端服务器处理 TLS 终止操作,这在某些安全合规场景中可能至关重要。

此方式可确保敏感的解密流程在您可管控的服务器环境中进行,从而满足特定的安全要求,并保持高效的流量分配。

mTLS 验证模式、mTLS 直通模式与 NLB 直通模式的对比。

注意事项 带 mTLS 验证模式的 ALB 带 mTLS 直通模式的 ALB NLB

OSI 层

第 7 层(应用程序)

第 7 层(应用程序)

第 4 层(传输)

与AWS WAF 集成

支持

支持

不支持

客户端身份验证

由 ALB 完成(AWS托管)

由后端完成(客户自主管理型)

由后端完成(客户自主管理型)

SSL/TLS 终止客户端

在 ALB(AWS托管)

在 ALB(AWS托管)

在后端目标上(客户自主管理型)

基于标头的路由

支持

支持

不支持

信任存储

需要(在 ALB 上)

非必需(在 ALB 上)

非必需(在 NLB 上)

认证吊销列表

在 ALB 上托管

后端托管(如果需要)

后端托管(如果需要)

后端处理负载

小于

小于

更高

错误处理

ALB 托管

后端托管

后端托管

注意:开启 SAP 的 RISE AWS支持带有 mTLS 验证模式的 ALB。

零信任访问

AWS Verified Access 是一种零信任安全解决方案,它取代了传统的 VPNs 企业应用程序安全解决方案。此服务通过检查用户身份、设备运行状况和位置,对每项访问请求进行验证;它还可与 Okta、Azure Active Directory 和 IAM Identity Center 集成,并提供详细的访问日志记录与监控功能。有关更多信息,请参阅 AWS Verified Access

SAP AWS验证访问权限的主要特点和优势

该解决方案通过零信任安全保护 SAP 环境,通过统一框架管理 SAPGUI 和基于 Web (HTTPs) 的访问。它对 SAPGUI TCP 连接和 Fiori 应用程序的 HTTPs 访问进行加密,在保持安全标准的同时消除了传统 VPN。

用户可以更快地访问 RISE with SAP 系统(在建立 VPN 连接之前)。利用该解决方案,您可以向远程用户和外部顾问授予安全访问权限,即便他们无法通过 VPN 访问企业网络。

  1. 以身份为中心的安全性 - Verified Access 可与现有身份提供者(IdP)集成,例如 Microsoft Azure AD(Entra)、Okta、Ping 等。它提供支持 SAML 2.0 和AWS IAM 身份中心的实时用户身份验证和授权

  2. 基于上下文的访问控制 - Verified Access 能够实施设备安全态势评测、基于位置的访问策略、基于角色的访问管理以及动态策略评估。

  3. 增强的性能 – Verified Access 提供直达 SAP 系统的优化连接路径,从而减少网络延迟、提升性能,并提供针对 SAP 系统的更稳定的用户体验。

  4. 简化的管理 - Verified Access 通过 AWS Cedar 策略语言和授权引擎提供集中式策略管理。它可实现自动化合规报告、实时访问监控,并减少基础设施维护工作。

实施指南

先决条件

  • AWS IAM 身份中心已在您首选的AWS区域启用。有关更多信息,请参阅启用AWS IAM 身份中心

  • 拥有允许通过网络访问 SAP 应用程序的安全组

  • 在内部AWS Elastic Load Balancer 后面运行的 SAP 应用程序。将您的安全组与负载均衡器关联。(您可以使用网络负载均衡器同时进行 SAP GUI 和 SAP Fiori 访问,或仅使用应用程序负载均衡器进行 SAP Fiori 访问)。

  • 为基于 HTTP 的访问(即 SAP Fiori)配置AWS已验证访问权限时,Certifice Manager 中的公共 TLS AWS证书。使用密钥长度为 1024 或 2048 的 RSA 证书。

  • 拥有公共托管域以及更新该域的 DNS 记录所需的权限(示例:Amazon Route 53)。

  • 具有创建AWS已验证访问权限实例所需权限的 IAM 策略。有关更多信息,请参阅创建 Verified Access 实例的策略

  • 按照 SAP 注释 1346768 设置系统环境变量 S AP_ IPV6 _ACTIVE=1(需要 SAP S-user ID 才能访问),使用 SAP GUI 中的已验证访问端点访问 SAP 应用程序时需要这样做。

如何为 SAP 实施AWS经过验证的访问权限

  1. 创建 Verified Access 信任提供商。在您的AWS账户上启用 IAM Identity Center 后,您可以使用以下步骤将 IAM Identity Center 设置为经过验证的访问的信任提供商。

  2. 创建 Verified Access 实例。您可以使用 Verified Access 实例组织信任提供商和 Verified Access 组。使用以下过程创建 Verified Access 实例,然后在 Verified Access 中附加或移除信任提供商。

  3. 创建 Verified Access 组。使用 Verified Access 组根据端点的安全要求组织端点。创建 Verified Access 端点时,将该端点与组相关联。使用以下过程创建 Verified Access 组。

  4. 为 Verified Access 创建负载均衡器端点。Verified Access 端点代表一个应用程序。每个端点都与一个 Verified Access 组相关联,并继承该组的访问策略。使用以下过程为适用于 SAP 应用程序的 Verified Access 创建负载均衡器端点。

  5. 为 Verified Access 端点配置 DNS。在此步骤中,您将 SAP 应用程序的域名(例如 www.myapp.example.com)映射到 Verified Access 端点的域名。要完成 DNS 映射,请在您的 DNS 提供商处创建规范名称记录(CNAME)。

  6. 添加已验证访问权限组级别的访问策略。AWS验证访问策略允许您定义访问托管在中的 SAP 应用程序的规则AWS。请参阅以下示例语句,根据您的要求为应用程序派生一个语句。

  7. 测试应用程序的连接性。对于基于 HTTP(S) 的访问(如 SAP Fiori 访问),现在可在 Web 浏览器中输入 SAP 应用程序的域名来测试与应用程序的连接性。

适用于 RISE 的 Verified Access

上图描述了如何部署AWS经过验证的 Access 并将其与 RISE 与 SAP 集成