A terraform module for generating secure static site infrastructure in AWS with S3, Cloudfront, and Lambda.
Design decisions detailed here: https://nicbiddell.com/blog/cloudfront-private-s3-and-gatsby/
- Served by Cloudfront CDN
- Seals off public access to your underlying S3 bucket
- Adds index.html as an index object. Solves the weird problem that Gatsby and other static site generators have with cloudfront!
Name | Version |
---|---|
archive | 2.0 |
aws | >= 3.10, < 4.0 |
Name | Description | Type | Default | Required |
---|---|---|---|---|
bucket_name | Name of S3 bucket for static assets | string |
n/a | yes |
cert_arn | ARN of ACM cert for cloudfront. If not provided, default Cloudfront cert will be used | string |
"" |
no |
ci_username | Username for CI user for syncing s3 files | string |
n/a | yes |
cloudfront_cname_aliases | List of alternate CNAMEs for cdn | list(string) |
[] |
no |
default_cache_time | Default (and currently max) TTL in seconds | number |
86400 |
no |
enabled | Whether or not the resources for this module should be created | bool |
false |
no |
provisioner | Who/what provisioned a resource | string |
"Terraform" |
no |
Name | Description |
---|---|
cdn_arn | Arn of Cloudfront Distribution serving the static site. |
cdn_domain_name | URL of Cloudfront Distribution serving the static site. |
ci_user | ARN of user with IAM permissions to sync files with s3_bucket |
index_html_rewriter_lambda | ARN of Lambda ensuring urls end in /index.html if no filename is in request |
s3_bucket_arn | ARN of S3 bucket holding the site html/css/js and other assets. |