2021-06-30 08:29:01 -05:00
|
|
|
Resources:
|
|
|
|
|
|
|
|
S3DataBucketPolicyCDN:
|
|
|
|
Type: AWS::S3::BucketPolicy
|
|
|
|
Properties:
|
|
|
|
Bucket:
|
|
|
|
Ref: DataBucket
|
|
|
|
PolicyDocument:
|
|
|
|
Statement:
|
|
|
|
- Effect: "Allow"
|
|
|
|
Action:
|
|
|
|
- "s3:GetObject"
|
|
|
|
Resource:
|
|
|
|
Fn::Join:
|
|
|
|
- ""
|
|
|
|
- - "arn:aws:s3:::"
|
|
|
|
- Ref: DataBucket
|
|
|
|
- "/*"
|
|
|
|
Principal: "*"
|
|
|
|
|
2021-07-16 09:43:56 -04:00
|
|
|
# DataBucketCachePolicy:
|
|
|
|
# Type: AWS::CloudFront::CachePolicy
|
|
|
|
# Properties:
|
|
|
|
# CachePolicyConfig:
|
|
|
|
# Name: ${self:provider.stage}-${self:service}-cloudfront-cache-policy
|
|
|
|
# Comment: CloudFront Cache Policy for justice40 data harvester
|
|
|
|
# DefaultTTL: "86400" # one day, only if Origin does _not_ send `Cache-Control` or `Expires` headers
|
|
|
|
# MaxTTL: "31536000" # one year, used to validate when origin sends `Cache-Control` or `Expires` headers
|
|
|
|
# MinTTL: "1" # one second
|
|
|
|
# ParametersInCacheKeyAndForwardedToOrigin:
|
|
|
|
# EnableAcceptEncodingGzip: false
|
|
|
|
# EnableAcceptEncodingBrotli: false
|
|
|
|
# CookiesConfig:
|
|
|
|
# CookieBehavior: none
|
|
|
|
# HeadersConfig:
|
|
|
|
# HeaderBehavior: none
|
|
|
|
# QueryStringsConfig:
|
|
|
|
# QueryStringBehavior: none
|
2021-06-30 08:29:01 -05:00
|
|
|
|
2021-07-16 09:43:56 -04:00
|
|
|
# DataDistribution:
|
|
|
|
# Type: AWS::CloudFront::Distribution
|
|
|
|
# Properties:
|
|
|
|
# DistributionConfig:
|
|
|
|
# Origins:
|
|
|
|
# - Id: DataBucket
|
|
|
|
# DomainName:
|
|
|
|
# # e.g. j40-sit-justice40-data-harvester-data.s3-website-us-east-1.amazonaws.com
|
|
|
|
# Fn::Join:
|
|
|
|
# - ""
|
|
|
|
# - - ${self:custom.namespaceShort}-
|
|
|
|
# - ${self:provider.stage}-
|
|
|
|
# - ${self:service}-
|
|
|
|
# - data
|
|
|
|
# - ".s3-website-"
|
|
|
|
# - Ref: AWS::Region
|
|
|
|
# - ".amazonaws.com"
|
|
|
|
# CustomOriginConfig:
|
|
|
|
# HTTPPort: '80'
|
|
|
|
# HTTPSPort: '443'
|
|
|
|
# OriginProtocolPolicy: http-only
|
|
|
|
# OriginSSLProtocols: [ "TLSv1", "TLSv1.1", "TLSv1.2" ]
|
|
|
|
# OriginCustomHeaders:
|
|
|
|
# - HeaderName: Origin # if the `Origin` header isn't present, S3 won't send CORS headers, this forces CORS to always be included
|
|
|
|
# HeaderValue: geoplatform.gov # this doesn't need to be anything specific, since Allow-Origin: * is our CORS policy, it just has to have a value
|
2021-06-30 08:29:01 -05:00
|
|
|
|
2021-07-16 09:43:56 -04:00
|
|
|
# Enabled: true
|
|
|
|
# HttpVersion: http2
|
|
|
|
# Comment: CDN for justice40 data bucket
|
|
|
|
# Aliases:
|
|
|
|
# - ${self:custom.environment.HOSTED_ZONE_SUBDOMAIN}.${self:custom.environment.HOSTED_ZONE_DOMAIN}
|
|
|
|
# PriceClass: PriceClass_All
|
|
|
|
# DefaultCacheBehavior:
|
|
|
|
# AllowedMethods: [HEAD, GET, OPTIONS]
|
|
|
|
# CachedMethods: [HEAD, GET]
|
|
|
|
# CachePolicyId:
|
|
|
|
# Ref: DataBucketCachePolicy
|
|
|
|
# MinTTL: '0'
|
|
|
|
# DefaultTTL: '0'
|
|
|
|
# TargetOriginId: DataBucket
|
|
|
|
# ViewerProtocolPolicy: redirect-to-https
|
|
|
|
# CustomErrorResponses: []
|
|
|
|
# ViewerCertificate:
|
|
|
|
# AcmCertificateArn: ${self:custom.environment.CLOUDFRONT_CERTIFICATE_ARN}
|
|
|
|
# SslSupportMethod: sni-only
|