如何使用 AWS CloudFormation 在 AWS API Gateway 上应用安全策略?
Posted
技术标签:
【中文标题】如何使用 AWS CloudFormation 在 AWS API Gateway 上应用安全策略?【英文标题】:How to apply Security Policy on AWS API Gateway using AWS CloudFormation? 【发布时间】:2020-01-06 23:20:32 【问题描述】:我有一个简单的 cloudformation 模板,它正在为 API 网关创建自定义域, 该模板能够创建自定义域。
但我找不到将 Custom Domain Security Policy
设置为 TLS 1.2
的 cloudformation 属性,
该模板使用默认的TLS 1.0 Security Policy
创建一个自定义域
模板 -
AWSTemplateFormatVersion: 2010-09-09
Transform: 'AWS::Serverless-2016-10-31'
Description: Test Custom Domain
Resources:
test:
Type: AWS::ApiGateway::DomainName
Properties:
CertificateArn: !Sub 'arn:aws:acm:$AWS::Region:$AWS::AccountId:certificate/xxxx-xxx-xxx-xxxx-xxxx'
DomainName: 'test-api.example.com'
EndpointConfiguration:
Types:
- 'EDGE'
参考 -https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html
【问题讨论】:
【参考方案1】:2020 年 7 月添加了对指定 Security Policy on an API Gateway domain 的支持。AWS Docs 上提供了有关如何将此参数添加到 CloudFormation 模板的文档。安全策略的有效值为TLS_1_0
或TLS_1_2
。示例如下:
ApiCustomDomainName:
Type: 'AWS::ApiGateway::DomainName'
Condition: ApiGatewayEnabled
Properties:
DomainName: "example.com"
RegionalCertificateArn: !Ref CertificateArn
securityPolicy: "TLS_1_2"
EndpointConfiguration:
Types:
- REGIONAL
【讨论】:
【参考方案2】:很遗憾,此参数尚未通过 CloudFormation 公开。
这里有一张票可以追踪它的进程 - https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/issues/3
目前,您最好的选择是创建自定义 CloudFormation 资源。
此参数通过 API 公开,可供(至少部分)他们的 SDK 使用 - https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/apigateway.html#APIGateway.Client.create_domain_name
这里是讨论如何创建客户资源的文档 - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html
【讨论】:
你也可以看看这个问题 - ***.com/questions/57785755/…? 我已在此广告上回复以上是关于如何使用 AWS CloudFormation 在 AWS API Gateway 上应用安全策略?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 aws cloudformation 模板在 aws cognito 用户池中设置所需属性?
如何在存储桶名称中使用变量 AWS Cloudformation
AWS::CloudFormation::Init 它是如何工作的?
如何使用 cloudformation 在 AWS cognito 上设置验证属性?