15

每次我为AWS API Gateway搜索基于SSL 的 Mutual Auth 时,我只能在 AWS API Gateway 和后端服务之间找到 MTLS。但我希望使用MTLS (client auth)保护我的 AWS API Gateway 端点本身。

例如,我有一个通过 AWS API Gateway 代理的支持服务 QueryCustomer。现在我可以在 API Gateway 上放置一个 SSL 证书,但它通常是单向 SSL。我想要实现的是具有客户端身份验证的 MTLS,其中来自 AWS API Gateway 的 API 消费者首先必须交换我们在AWS 信任库上配置的公共证书,并且 AWS 公共证书也将存储在 API 消费者端。

现在,在与其他 API 网关和应用程序服务器握手期间,应该有一个属性显示类似这个 AWS API 网关端点“需要客户端身份验证”,这样只有当 API 使用者的公共证书在 API 网关信任库中时,才应该通过身份验证来访问端点,否则只会抛出正常的 SSL 握手错误。

有人可以建议这是否可以在 AWS API Gateway 上实现?

4

2 回答 2

8

API Gateway 目前不提供此功能,但我们收到了多个客户对此功能的请求。不幸的是,我无法评论 ETA 或可用性。

于 2017-12-05T00:15:57.897 回答
0

2020 年 9 月 23 日

AWS 现在支持双向 TLS

https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-mutual-tls.html

此外,我们现在可以禁用 execute-api-endpoint。

aws apigatewayv2 update-api \
    --api-id abcdef123 \
    --disable-execute-api-endpoint

要使用双向 TLS,请创建您信任的 X.509 证书的信任库以访问您的 API。证书可以来自公共或私有证书颁发机构。证书的最大链长度为四。您还可以提供自签名证书。支持以下内容:

SHA-256 或更高 RSA-2048 或更高 ECDSA-256 或更高

API Gateway 验证许多证书属性。您可以使用 Lambda 授权方在客户端调用 API 时执行其他检查,包括检查证书是否已被吊销。API Gateway 验证以下证书属性:

验证 描述 X.509 语法

证书必须满足 X.509 语法要求。

正直

证书的内容不得与信任库中的证书颁发机构签署的内容不同。

有效性

证书的有效期必须是最新的。

名称链接/密钥链接

证书的名称和主体必须形成一条完整的链条。证书的最大链长度为四。

于 2020-09-23T14:08:00.413 回答