AWS API网关应防止使用TLS V1



参考AWS CloudFront文档,AWS API网关支持TLS v1.0,v1.1,v1.2。

但我想将加密协议限制为我的网关API的TLS V1.1和V1.2。我在哪里配置此?我没有看到我的API的云偏转分布。网关资源页面没有指定安全协议的选项。

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

我刚刚通过大量的审判&错误,我可以记录我认为目前对此的最佳解决方案。Suman J的答案是2017年10月的最佳解决方案,但是它确实有一个限制,并且AWS从那以后也随之发展。

那么限制是什么?

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

那么AWS如何发展?

截至2017年11月,API网关支持在自定义域名中创建区域端点。这些端点不会创建云沿分布,从而优化了将自己的云方向分布放在其前面的策略,以防止使用TLS V1.0。

那么我该如何设置全部?

我用来执行此操作的步骤(通过控制台)如下。请注意,您可能需要更改一些设置以支持您的特定应用程序。为了本文档的目的,请说您的API命名为API.EXAMPLE.com。

  1. 在API网关中,编辑您的自定义域名,添加区域配置,选择您的证书,然后单击"保存"。注意:对于区域API,您需要使用与API同一区域的ACM证书。更多信息在这里:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-negiary-api-custom-custom-domain-migrate.html

  2. 复制新创建的区域端点的目标域名。(例如d-abcdefg123.execute-api.us-east-1.amazonaws.com)

  3. 在53号公路或您的DNS提供商中,将API的映射从边缘优化的CloudFront目标域名更改为新创建的区域端点目标域名(IE D-ABCDEFG123.Execute-api.us-east)-1.amazonaws.com)。

  4. 一旦DNS更改传播,请单击X图标,编辑自定义域名并删除边缘优化的端点。然后,这应该使您能够使用与API相同的api cname创建一个新的云方向发行,而不会阻止您。

  5. 在API网关中,使用域名创建一个新的自定义域名= regional-api.example.com,端点配置=区域并选择ACM证书。单击"保存",然后根据当前API进行编辑并添加基本路径映射,然后单击"保存"。复制新创建的区域端点的目标域名。(例如d-xyzabcd456.execute-api.us-east-1.amazonaws.com)

  6. 在53号路线或您的DNS提供商中,将新的cname记录映射区域 - api.example.com到新创建的区域端点目标域名。(即D-Xyzabcd456.execute-api.us-east-1.amazonaws.com)

  7. 在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

默认缓存行为设置: (这些值是我所需的称为API才能正常工作的应用程序)

  Viewer Protocol Policy = Redirect HTTP to HTTPS
    
  Allowed HTTP Methods = GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
  Cached HTTP Methods = OPTIONS
  Cache Based on Selected Request Headers = Whitelist
    
  Whitelist Headers = Authorization   

  Object Caching = Customize  
  Minimum TTL = 0
  Maximum TTL = 0
  Default TTL = 0 
  Forward Cookies = All
      
  Query String Forwarding and Caching = Forward all, cache based on all
    
  Smooth Streaming = No
  Restrict Viewer Access (Use Signed URLs or Signed Cookies) = No
    
  Compress Objects Automatically = No 
   
  Lambda Function Associations = None

 

分发设置:

  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

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

  2. 一旦分发创建完成了针对test-api.example.com

  3. 的全面测试您的应用程序
  4. 如果测试都很好,则将新的CloudFront的替代域名(CNAME)更新为= api.example.com。(注意 - 这不会使其"实时",DNS更改以下是必需的)

  5. 一旦分发更新完成(平均40分钟),然后在53号公路或您的DNS提供商中,将api.example.com的cname记录映射更新为新创建的CloudFront域名(即D123ABCDEFG.CLOUDFRONT。net)

  6. 如果一切正常,您现在可以删除路由53/dns cna test-api.example.com记录加上api.example.com api Gateway自定义域名。

  7. 对于奖励积分,如果使用路线53,建议使用A和AAAA记录别名而不是CNAME,以在上面的53步长(我已经完成)。这略微降低了成本,在某种程度上隐藏了基础的云层分布,还可以支持IPv6支持。

我希望这会有所帮助!: - )

为了使网关API具有额外的云正面分配,我们需要

  1. 从AWS控制台,在API网关下,转到自定义域名并删除映射的条目。
  2. 创建一个新的云额分布

CloudFront设置

  • 原始域名作为您的GATE API端点https://abcdfefg.execute-api.us-east-1.amazonaws.com
  • 查看器协议策略仅为https
  • Origin SSL协议为TLSV1.2,TLSV1.1(UNCHECK TLSV1)
  • 下添加CNAME条目
  • 以及其他几个默认值上述更改完成后,访问https上的自定义域名将执行按照 cloudfront Distribution中定义的TLS安全设置。

aws已宣布,现在可以为边缘优化的API网关实施配置:

  • https://aws.amazon.com/about-aws/whats-new/2019/06/amazon-api-gateway--gateway-adds-configurable-transport-transport-transport-layer-security-security-version-version-version-version-custom-domains/
  • https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-domain-domain-tls-version.html

对于任何人看到的人,您现在可以在API网关中为自定义域的最小TLS版本设置为1.2的最小版本:https://docs.aws。amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-domain-tls-version.html

<<div class =" ans">

您可以在云范围内创建API Gateway Distribution列表。如果您的API Gateway Origin具有HTTPS,则可以指定在CloudFront和API网关之间使用哪种类型的TLS协议。在查看器/客户端和CloudFront之间,您可以在一般部分中指定TLS协议和套件> CloudFront配置的安全策略。仅当您使用SNI自定义SSL时,此配置才能可见。您可以选择:

  1. TLSV1
  2. TLSV1_2016
  3. TLSV1.1_2016
  4. TLSV1.2_2018

到目前为止,您可以通过指定自定义域的安全策略来强制执行最小TLS版本。支持的安全策略是TLS1.0和TLS 1.2

  • TLS版本的最低版本API网关安全策略支持是TLSV1.0

  • 通过自定义域名推荐的安全策略是TLSV1.2

  • 为了更好地控制TLS版本,在您的帐户中创建一个云额分布,并将区域API Gateway端点用作Origin。

最小TLS版本1.3仅通过自定义CloudFront Distribution才有可能。

参考:https://cloudnamaste.com/minimum-tls-version-for-api-gateway/

相关内容

  • 没有找到相关文章

最新更新