在 API Gateway 中为自定义域选择安全策略 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 API Gateway 中为自定义域选择安全策略

为了提高您的 Amazon API Gateway 自定义域的安全性,您可以在 API Gateway 控制台、Amazon CLI 或 Amazon SDK 中选择安全策略。

安全策略 是 API Gateway 提供的最低 TLS 版本和密码套件的预定义组合。您可以选择 TLS 版本 1.2 或 TLS 版本 1.0 安全策略。TLS 协议解决了网络安全问题,例如客户端和服务器之间的篡改和窃听。当您的客户端通过自定义域建立与您 API 的 TLS 握手时,安全策略实施客户端可以选择使用的 TLS 版本和密码套件选项。

在自定义域设置中,安全策略确定两个设置:

  • API Gateway 用来与 API 客户端通信的最低 TLS 版本

  • API Gateway 用来加密其返回到 API 客户端的内容的密码

如果您选择 TLS 1.0 安全策略,则该安全策略接受 TLS 1.0、TLS 1.2 和 TLS 1.3 流量。如果您选择 TLS 1.2 安全策略,则该安全策略接受 TLS 1.2 和 TLS 1.3 流量,但拒绝 TLS 1.0 流量。

注意

您只能为自定义域指定安全策略。对于使用默认端点的 API,API Gateway 使用以下安全策略:

  • 对于边缘优化的 API:TLS-1-0

  • 对于区域 API:TLS-1-0

  • 对于私有 API:TLS-1-2

如何为自定义域指定安全策略

当您创建自定义域名时,您为其指定安全策略。要了解如何创建自定义域,请参阅创建边缘优化的自定义域名在 API Gateway 中设置区域自定义域名

要更改自定义域名的安全策略,请更新自定义域设置。您可以使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon SDK 更新您的自定义域名设置。

当您使用 API Gateway REST API 或 Amazon CLI 时,请在 securityPolicy 参数中指定新的 TLS 版本 TLS_1_0TLS_1_2。有关更多信息,请参阅《Amazon API Gateway REST API 参考》中的 domainname:update 或《Amazon CLI 参考》中的 update-domain-name

更新操作可能需要几分钟才能完成。

边缘优化的自定义域支持的安全策略、TLS 协议版本和密码

下表介绍了可为边缘优化的自定义域名指定的安全策略。

安全策略 TLS_1_0 TLS_1_2
TLS 协议
TLSv1.3
TLSv1.2
TLSv1.1
TLSv1
TLS 密码
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES128-SHA256
ECDHE-ECDSA-AES128-SHA
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES256-SHA384
ECDHE-ECDSA-AES256-SHA
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-SHA256
AES256-SHA
AES128-SHA
DES-CBC3-SHA

区域自定义域支持的安全策略、TLS 协议版本和密码

下表介绍了可为区域自定义域名指定的安全策略。

安全策略 TLS_1_0 TLS_1_2
TLS 协议

TLSv1.3

TLSv1.2

TLSv1.1

TLSv1

TLS 密码

TLS_AES_128_GCM_SHA256

TLS_AES_256_GCM_SHA384

TLS_CHACHA20_POLY1305_SHA256

ECDHE-ECDSA-AES128- GCM-SHA256

ECDHE-RSA-AES128- GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES128-SHA

ECDHE-RSA-AES128-SHA

ECDHE-ECDSA-AES256- GCM-SHA384

ECDHE-RSA-AES256- GCM-SHA384

ECDHE-ECDSA-AES256-SHA384

ECDHE-RSA-AES256-SHA384

ECDHE-RSA-AES256-SHA

ECDHE-ECDSA-AES256-SHA

AES128-GCM-SHA256

AES128-SHA256

AES128-SHA

AES256-GCM-SHA384

AES256-SHA256

AES256-SHA

私有 API 支持的 TLS 协议版本和密码

下表介绍了私有 API 支持的 TLS 协议和密码。不支持为私有 API 指定安全策略。

安全策略 TLS_1_2
TLS 协议

TLSv1.2

TLS 密码

ECDHE-ECDSA-AES128- GCM-SHA256

ECDHE-RSA-AES128- GCM-SHA256

ECDHE-ECDSA-AES128-SHA256

ECDHE-RSA-AES128-SHA256

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
AES128-GCM-SHA256
AES128-SHA256
AES256-GCM-SHA384
AES256-SHA256

OpenSSL 和 RFC 密码名称

OpenSSL 和 IETF RFC 5246 为相同的密码使用不同的名称。下表为每个密码列出了 OpenSSL 名称及对应的 RFC 名称。

OpenSSL 密码名称 RFC 密码名称

TLS_AES_128_GCM_SHA256

TLS_AES_128_GCM_SHA256

TLS_AES_256_GCM_SHA384

TLS_AES_256_GCM_SHA384

TLS_CHACHA20_POLY1305_SHA256

TLS_CHACHA20_POLY1305_SHA256

ECDHE-RSA-AES128- GCM-SHA256

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

ECDHE-RSA-AES128-SHA256

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

ECDHE-RSA-AES128-SHA

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

ECDHE-RSA-AES256- GCM-SHA384

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

ECDHE-RSA-AES256-SHA384

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

ECDHE-RSA-AES256-SHA

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

AES128-GCM-SHA256

TLS_RSA_WITH_AES_128_GCM_SHA256

AES256-GCM-SHA384

TLS_RSA_WITH_AES_256_GCM_SHA384

AES128-SHA256

TLS_RSA_WITH_AES_128_CBC_SHA256

AES256-SHA

TLS_RSA_WITH_AES_256_CBC_SHA

AES128-SHA

TLS_RSA_WITH_AES_128_CBC_SHA

DES-CBC3-SHA

TLS_RSA_WITH_3DES_EDE_CBC_SHA

有关 HTTP API 和 WebSocket API 的信息

有关 HTTP API 和 WebSocket API 的更多信息,请参阅HTTP API 的安全策略WebSocket API 的安全策略