

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

# 安全扩展
<a name="security-extension"></a>

## mTLS 身份验证
<a name="_mtls_authentication"></a>

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

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

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

1. 服务器提供其证书

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

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

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

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

1. 增强安全性：mTLS 支持双向身份验证，确保客户端与服务器双方均验证彼此身份。这可大幅降低未经授权的访问及中间人攻击的风险。

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

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

1. 接口的主体传播：mTLS 可在不同 SAP 接口与系统间实现安全的主体传播。这使得系统间通信无需使用通用特权账户（如拥有 SAP\_ALL 授权的 SAP 用户），显著提升了安全性与可审计性。

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

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

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

 [应用程序负载均衡器（ALB）](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)支持 mTLS 身份验证，并提供两种模式：验证模式和直通模式。

 **先决条件** 

为确保无缝通信，在基础架构中使用的所有 SSL（安全套接字层）或 TLS 证书，包括 ALB、SAP Web Dispatcher 和 S/4HANA 系统的证书，都应来自一个可信的根证书颁发机构，以简化这些证书的实施和维护。

 **mTLS 架构图** 

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

![mTLS 架构图](http://docs.aws.amazon.com/zh_cn/sap/latest/general/images/rise-mtls-authentication.png)


 **mTLS 验证模式** 

要启用 mTLS 验证模式，请创建一个包含 CA 证书捆绑包的信任存储。这可以通过使用 Certif [AWS icate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)、 AWS 私有 CA 或通过导入自己的证书来完成。可通过存储在 Amazon S3 中且关联至信任存储的证书吊销列表（CRL）来管理已吊销证书。

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

除了客户端身份验证之外，ALB 还通过 [HTTP 标头（例如 X-Amzn-Mtls-Clientcert-Leaf）将客户端证书元数据通过 HTTP 标头](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/mutual-authentication.html)传输到后端 SAP Web Dispatcher。这使得可基于证书详情在后端目标上实施额外逻辑，满足 SAP 服务器保留原始“主机头”信息的需求。

这使服务器能够一致地处理客户端证书元数据，即使这些元数据来自非 SAP 来源，例如终止 SSL 连接的 AWS 负载平衡器。[如果您通过 ALB（SAP Web Dispatcher — SAP 服务器）实施端到端加密，则必须配置 SAP Web Dispatcher 配置文件参数，例如 icm/HTTPS /client\_cretificate\_header\_name，有关更多详细信息，请参阅此链接。](https://help.sap.com/docs/ABAP_PLATFORM_NEW/683d6a1797a34730a6e005d1e8de6f22/48477e7fe9d771b9e10000000a421937.html)

 **mTLS 直通模式** 

在 mTLS 直通模式下，ALB 会将客户端的完整证书链转发至后端目标。这是通过名为的 HTTP 标头完成 X-Amzn-Mtls-Clientcert的。该链（包括树叶证书）以 URL-encoded PEM 格式发送，其中 \+、= 和/作为安全字符。以下是使用 mTLS 直通模式时的注意事项：
+ 如果没有客户端证书，ALB 不会添加任何标头；后端必须处理此情况。
+ 后端目标负责客户端身份验证与错误处理。
+ 对于 HTTPS 侦听器，ALB 会终止客户端 ALB TLS，并使用目标安装的证书启动新的 TLS。 ALB-backend 
+ ALB 的 TLS 终止功能支持使用任何 ALB 路由算法来进行负载均衡。

 **NLB 直通** 

如果您有严格的安全合规规则，要求在服务器端终止客户端 TLS 连接，则可使用[网络负载均衡器（NLB）](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)。

需要注意的关键点：

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

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

1. 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。

## 零信任访问
<a name="_zero_trust_access"></a>

 AWS Verified Access 是一种零信任安全解决方案，它取代了传统 VPN 以实现企业应用程序安全。此服务通过检查用户身份、设备运行状况和位置，对每项访问请求进行验证；它还可与 Okta、Azure Active Directory 和 IAM Identity Center 集成，并提供详细的访问日志记录与监控功能。有关更多信息，请参阅 [AWS Verified Access](https://docs.aws.amazon.com/verified-access/latest/ug/what-is-verified-access.html)。

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

该解决方案通过零信任安全性保护 SAP 环境，并借助统一框架同时管理 SAPGUI 和基于 Web（HTTPS）的访问权限。它通过对 SAPGUI TCP 连接以及 Fiori 应用程序的 HTTPS 访问进行加密，在保持安全标准的同时消除对传统 VPN 的依赖。

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

1. Identity-Centric 安全性

   经过验证的访问权限可与现有的身份提供商 (IdP) 集成，例如微软 Azure AD (Entra)、Okta、Ping 等。它提供支持 SAML 2.0 和 AWS IAM 身份中心的实时用户身份验证和授权

1. 上下文访问控制

   Verified Access 能够实施设备安全态势评估、基于位置的访问策略、基于角色的访问管理和动态策略评估。

1. 增强性能

   Verified Access 为 SAP 系统提供了直接、优化的连接路径，从而减少了网络延迟，提高了性能，为 SAP 系统提供了更一致的用户体验。

1. 简化管理

   Verified Access 通过 [AWS Cedar 策略语言](https://docs.aws.amazon.com/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/cedar.html)和授权引擎提供集中式策略管理。它可实现自动化合规报告、实时访问监控，并减少基础设施维护工作。

 **实施指南** 

 **先决条件** 
+  AWS IAM 身份中心已在您首选的 AWS 区域启用。有关更多信息，请参阅[启用 AWS IAM 身份中心](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html)。
+ 拥有允许通过网络访问 SAP 应用程序的[安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。
+ 在内部 AWS Elastic Load Balancer 后面运行的 SAP 应用程序。将您的安全组与负载均衡器关联。（您可以使用网络负载均衡器同时进行 SAP GUI 和 SAP Fiori 访问，或仅使用应用程序负载均衡器进行 SAP Fiori 访问）。
+ 为基于 HTTP 的访问（即 SAP Fiori）配置 AWS 已验证访问权限时，Certifice [Manager 中的公共 TLS AWS 证书](https://aws.amazon.com/certificate-manager/)。使用密钥长度等于 2,048 或更高的 RSA 证书。
+ 拥有公共托管域以及更新该域的 DNS 记录所需的权限（示例：Amazon Route 53）。
+ 具有创建 AWS 已验证访问权限实例所需权限的 IAM 策略。有关更多信息，请参阅[创建 Verified Access 实例的策略](https://docs.aws.amazon.com/verified-access/latest/ug/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-create-instance)。
+ 按照 [SAP 注释 1346768（需要 SAP S-user ID 才能访问）设置系统环境变量 SAP\_IPV6](https://me.sap.com/notes/1346768) **\_ACTIVE=1**，使用来自 SAP GUI 的已验证访问端点访问 SAP 应用程序时需要这样做。

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

1. 创建 Verified Access 信任提供商。在您的 AWS 账户上启用 IAM Identity Center 后，您可以使用以下[步骤](https://docs.aws.amazon.com/verified-access/latest/ug/user-trust.html#identity-center)将 IAM Identity Center 设置为经过验证的访问的信任提供商。

1. 创建 Verified Access 实例。您可以使用 Verified Access 实例组织信任提供商和 Verified Access 组。使用以下[过程](https://docs.aws.amazon.com/verified-access/latest/ug/create-verified-access-instance.html)创建 Verified Access 实例，然后在 Verified Access 中附加或移除信任提供商。

1. 创建 Verified Access 组。使用 Verified Access 组根据端点的安全要求组织端点。创建 Verified Access 端点时，将该端点与组相关联。使用以下[过程](https://docs.aws.amazon.com/verified-access/latest/ug/create-verified-access-group.html)创建 Verified Access 组。

1. 为 Verified Access 创建负载均衡器端点。Verified Access 端点代表一个应用程序。每个端点都与一个 Verified Access 组相关联，并继承该组的访问策略。使用以下[过程](https://docs.aws.amazon.com/verified-access/latest/ug/create-load-balancer-endpoint.html)为适用于 SAP 应用程序的 Verified Access 创建负载均衡器端点。

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

1. 添加已验证访问权限组级别的访问策略。 AWS 验证访问策略允许您定义访问托管在中的 SAP 应用程序的规则 AWS。请参阅以下示例[语句](https://docs.aws.amazon.com/verified-access/latest/ug/auth-policies-policy-statement-struct.html)，根据您的要求为应用程序派生一个语句。

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

![适用于 RISE 的 Verified Access](http://docs.aws.amazon.com/zh_cn/sap/latest/general/images/rise-verified-access.png)


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