AWS API Gateway MTLS客户端身份验证

时间:2017-08-02 09:04:37

标签: amazon-web-services ssl aws-api-gateway ssl-client-authentication

每次我为 AWS API Gateway 搜索 SSL认证时,我只能在AWS API网关和后端服务之间找到MTLS。但我希望通过 MTLS(客户端身份验证)来保护我的AWS API Gateway端点。

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

现在,在握手期间,与其他API网关和应用程序服务器一样,应该有一个属性,其中包含类似此AWS API网关端点' 需要客户端身份验证'因此,只有API使用者的公共证书在API网关中,才应该对信任库进行身份验证以访问端点,否则只会抛出正常的SSL握手错误。

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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网关验证许多证书属性。当客户端调用API时,可以使用Lambda授权者执行其他检查,包括检查证书是否已被吊销。 API Gateway验证以下证书属性:

验证说明 X.509语法

证书必须符合X.509语法要求。

诚信

证书的内容一定不能与证书颁发机构在信任库中签名的内容相更改。

有效期

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

名称链接/密钥链接

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