Amazon web services AWS API网关应防止使用TLS v1

Amazon web services AWS API网关应防止使用TLS v1,amazon-web-services,aws-api-gateway,aws-security-group,Amazon Web Services,Aws Api Gateway,Aws Security Group,参考,AWS API网关支持TLS v1.0、v1.1、v1.2 但是我想将我的网关API的加密协议限制在TLSV1.1和v1.2。我在哪里配置这个? 我没有看到任何适用于我的API的cloudfront发行版。网关资源页没有指定安全协议的选项 我的API在过去两年中使用自定义域在生产中运行。 知道如何将API限制为仅在API网关中使用TLS V1.1和V1.2协议吗?您可以在CloudFront分发列表中创建API网关分发。如果您的API网关源具有HTTPS,则可以指定cloudfront和A

参考,AWS API网关支持TLS v1.0、v1.1、v1.2

但是我想将我的网关API的加密协议限制在TLSV1.1和v1.2。我在哪里配置这个? 我没有看到任何适用于我的API的cloudfront发行版。网关资源页没有指定安全协议的选项

我的API在过去两年中使用自定义域在生产中运行。
知道如何将API限制为仅在API网关中使用TLS V1.1和V1.2协议吗?

您可以在CloudFront分发列表中创建API网关分发。如果您的API网关源具有HTTPS,则可以指定cloudfront和API网关之间要使用的TLS协议类型。在查看器/客户端和cloudfront之间,您可以在常规部分>cloudfront配置的安全策略中指定TLS协议和套件。此配置仅在与SNI一起使用自定义SSL时可见。您可以选择:

  • TLSv1
  • TLSv1_2016
  • TLSv1.1_2016
  • TLSv1.2_2018

  • 为了使网关API和额外的云前端分发能够正常工作,我们需要

  • 从AWS控制台,在API网关下转到自定义域名,并删除映射的条目
  • 使用创建新的cloudfront发行版
  • Cloudfront设置

    • 作为gateapi端点的源域名
    • 仅作为HTTPS的查看器协议策略
    • 原始SSL协议,如TLSv1.2、TLSv1.1(取消选中TLSv1)
    • 在替代域名下添加CNAME条目,以引用自定义域名
    • 而且几乎没有其他违约 完成上述更改后,通过https访问自定义域名将强制执行Cloudfront分发版中定义的TLS安全设置

    我刚刚对此进行了广泛的研究,通过大量的尝试和错误,我可以记录下我认为当前的最佳解决方案。suman j在2017年10月给出的答案是最好的解决方案,但它确实存在局限性,而且AWS从那时起也有所发展

    那么限制是什么呢

    如果将Lambda与API网关一起使用并删除自定义域名,则手动创建CloudFront发行版并关联Lambda函数需要特定的Lambda版本号。也就是说,它不支持别名。这对于版本号可以不断更改的CI/CD来说是有问题的。但是,API网关自定义域名基本路径映射确实支持别名,因此继续使用这些别名会更好

    那么AWS是如何演变的呢

    截至2017年11月,API网关支持在自定义域名中创建区域端点。这些端点不创建CloudFront分发,因此优化了将自己的CloudFront分发放在它们前面的策略,从而防止使用TLS v1.0

    那我该怎么设置呢

    我使用的步骤(通过控制台)如下所示。请注意,您可能需要更改某些设置以支持特定的应用程序。在本文档中,假设您的api名为api.example.com

  • 在API网关中,编辑自定义域名,添加区域配置,选择证书并单击保存。注意:对于区域API,您需要使用来自与API相同区域的ACM证书。更多信息请点击此处:


  • 复制新创建的区域终结点的目标域名。(例如d-abcdefg123.executeapi.us-east-1.amazonaws.com)


  • 在Route 53或DNS提供商中,将API的映射从边缘优化的CloudFront目标域名更改为新创建的区域端点目标域名(即d-abcdefg123.execute API.us-east-1.amazonaws.com)。


  • DNS更改传播后,请编辑自定义域名并通过单击x图标删除边缘优化的端点。这样,您就可以使用API的相同CNAME创建一个新的CloudFront发行版,而不会被AWS阻止。


  • 在API网关中,创建域名为regional-API.example.com、端点配置为regional的新自定义域名,并选择ACM证书。单击Save,然后根据当前API编辑和添加基本路径映射,然后单击Save。复制新创建的区域终结点的目标域名。(例如d-xyzabcd456.executeapi.us-east-1.amazonaws.com)


  • 在路由53或DNS提供商中,创建一个新的CNAME记录,将regional-api.example.com映射到新创建的区域端点目标域名。(Ie d-xyzabcd456.executeapi.us-east-1.amazonaws.com)


  • 在CloudFront中,使用以下设置创建新发行版:



  • 原点设置:

      Origin Domain Name = regional-api.example.com
   
    
      After entering the above the following hidden fields should then be displayed:   
    
      Origin SSL Protocols = TLSv1.2 & TLSv1.1
    
      Origin Protocol Policy = HTTPS Only
    
      Price Class = Use All Edge Locations
   
    
      AWS WAF Web ACL = None
     
    
      Alternate Domain Names (CNAMEs) = test-api.example.com
     
    
      SSL Certificate = Custom SSL Certificate (example.com)
   
    
      Custom SSL Client Support = Only Clients that Support Server Name Indication (SNI)
    
    
      Security Policy = TLSv1.1_2016 (recommended)
   
    
    默认缓存行为设置: (这些值是调用API的应用程序正常工作所需的值)


    分发设置:

      Origin Domain Name = regional-api.example.com
   
    
      After entering the above the following hidden fields should then be displayed:   
    
      Origin SSL Protocols = TLSv1.2 & TLSv1.1
    
      Origin Protocol Policy = HTTPS Only
    
      Price Class = Use All Edge Locations
   
    
      AWS WAF Web ACL = None
     
    
      Alternate Domain Names (CNAMEs) = test-api.example.com
     
    
      SSL Certificate = Custom SSL Certificate (example.com)
   
    
      Custom SSL Client Support = Only Clients that Support Server Name Indication (SNI)
    
    
      Security Policy = TLSv1.1_2016 (recommended)
   
    
    支持的HTTP版本=HTTP/2、HTTP/1.1、HTTP/1.0

  • 在等待CloudFront分发创建完成(平均40分钟)时,在路由53中或您的DNS提供商创建一个新的CNAME记录映射test-api.example.com到新创建的CloudFront域名(例如d123abcdefg.CloudFront.net)


  • 发行版创建完成后,根据test-api.example.com完全测试您的应用程序


  • 如果测试结果良好,则将新CloudFront的备用域名(CNAMEs)更新为be=api.example.com。(注意-这不会使其处于“活动”状态,为此需要进行以下DNS更改)


  • 一旦分发更新完成(平均40分钟),然后在Route 53或您的DNS提供商中,将api.example.com的CNAME记录映射更新到新创建的CloudFront域名(即d123abcdefg.CloudFront.net)