【问题标题】:AWS API Gateway MTLS client authAWS API Gateway MTLS 客户端身份验证
【发布时间】:2018-01-09 09:51:12
【问题描述】:

每次我为 AWS API Gateway 搜索 Mutual Auth over SSL 时,我只能在 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 Gateway 信任库中应该经过身份验证才能访问端点,否则只会抛出正常的 SSL 握手错误。

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

【问题讨论】:

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


    【解决方案1】:

    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 语法要求。

    诚信

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

    有效期

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

    名称链/键链

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

    【讨论】:

    • 我还是不明白...如果我在 API 网关后面有 Tomcat 后端,我如何将客户端证书转发给它?例如。使用 nginx 我可以像这样配置它:proxy_set_header Client-Cert $ssl_client_escaped_cert;
    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 2019-01-07
    • 2016-08-20
    • 1970-01-01
    • 2019-10-03
    • 2019-12-14
    • 1970-01-01
    • 2018-06-03
    相关资源
    最近更新 更多