Skip to content

Instantly share code, notes, and snippets.

@gouravtiwari
Created August 3, 2018 13:49
Show Gist options
  • Save gouravtiwari/d52e3af35b83e6ec9f573a35ffbd8d5f to your computer and use it in GitHub Desktop.
Save gouravtiwari/d52e3af35b83e6ec9f573a35ffbd8d5f to your computer and use it in GitHub Desktop.
ACM Cert configuration with Cloudformation template
Parameters:
AppLoadbalancerSslCertArn:
Description: SSL certificate for Application load balancer
Default: arn:aws:acm:<region>:<account-id>:certificate/<cert-id>
Type: String
AppCloudfrontSslCertArn:
Description: SSL certificate for Cloudfront Asset
Default: arn:aws:acm:<region>:<account-id>:certificate/<cert-id>
Type: String
AppName:
Description: Application name
Default: example
Type: String
EnvName:
Description: Environment name, dev, qa, prod, etc
Default: dev
Type: String
# ...
ALBListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
DefaultActions:
- Type: forward
TargetGroupArn: !Ref YourAppECSTargetGroup
LoadBalancerArn: !Ref YourAppECSALB
Port: '80'
Protocol: HTTP
ALBSslListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
Certificates:
- CertificateArn:
Ref: AppLoadbalancerSslCertArn
DefaultActions:
- Type: forward
TargetGroupArn: !Ref YourAppECSTargetGroup
LoadBalancerArn: !Ref YourAppECSALB
Port: '443'
Protocol: HTTPS
AssetCDN:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- Id: S3-assets
OriginPath:
- /assets
DomainName:
- Fn::Join:
- "."
- - Fn::Join:
- "-"
- - Ref: AppName
- Ref: EnvName
- s3.amazonaws.com
S3OriginConfig:
OriginAccessIdentity: ""
Enabled: 'true'
HttpVersion: http2
Aliases:
- Fn::Join:
- "."
- - "static"
- Ref: EnvName
- Ref: AppName
- com
DefaultCacheBehavior:
Compress: true
TargetOriginId: S3-assets
SmoothStreaming: 'false'
ForwardedValues:
QueryString: 'false'
Cookies:
Forward: none
Headers:
- Origin
ViewerProtocolPolicy: allow-all
ViewerCertificate:
AcmCertificateArn:
Ref: AppCloudfrontSslCertArn
SslSupportMethod: sni-only
AssetDNS:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId:
Fn::FindInMap:
- Configuration
- Ref: EnvName
- HostedZoneId
Name:
- Fn::Join:
- "."
- - "static"
- Ref: EnvName
- Ref: AppName
- com
- ''
Type: CNAME
TTL: '300'
ResourceRecords:
- Fn::GetAtt:
- AssetCDN
- DomainName
# ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment