From 989b943a75ad7b1f2b253cf2deb9defb6aec7665 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Fri, 17 Feb 2023 11:22:03 +0000 Subject: [PATCH] build: automate things with Terraform --- .gitignore | 5 + main.tf | 119 ++++++++++++ terraform.tfstate.backup | 384 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 508 insertions(+) create mode 100644 main.tf create mode 100644 terraform.tfstate.backup diff --git a/.gitignore b/.gitignore index 02f6e50..c1bb4e6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,8 @@ pnpm-debug.log* # macOS-specific files .DS_Store + +# Terraform +.terraform +.terraform.lock.hcl +terraform.tfstate diff --git a/main.tf b/main.tf new file mode 100644 index 0000000..e6e1b5c --- /dev/null +++ b/main.tf @@ -0,0 +1,119 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.0" + } + + cloudflare = { + source = "cloudflare/cloudflare" + version = "~> 3.0" + } + } +} + +provider "aws" { + region = "eu-west-2" +} + +provider "aws" { + alias = "us-east-1" + region = "us-east-1" +} + +resource "aws_s3_bucket" "bootstrap-with-tailwind" { + bucket = "bootstrap-with-tailwind" +} + +resource "aws_s3_bucket_acl" "bootstrap-with-tailwind" { + acl = "public-read" + bucket = aws_s3_bucket.bootstrap-with-tailwind.id +} + +resource "aws_s3_bucket_website_configuration" "bootstrap-with-tailwind" { + bucket = aws_s3_bucket.bootstrap-with-tailwind.bucket + + index_document { + suffix = "index.html" + } +} + +locals { + s3_origin_id = "bootstrap-with-tailwind" + zone_name = "oliverdavies.uk" +} + +resource "aws_cloudfront_origin_access_control" "bootstrap-with-tailwind" { + name = "bootstrap-with-tailwind" + description = "bootstrap-with-tailwind" + origin_access_control_origin_type = "s3" + signing_behavior = "always" + signing_protocol = "sigv4" +} + +data "cloudflare_zone" "bootstrap-with-tailwind" { + name = local.zone_name +} + +data "aws_acm_certificate" "bootstrap-with-tailwind" { + domain = local.zone_name + provider = aws.us-east-1 + statuses = ["ISSUED"] +} + +resource "aws_cloudfront_distribution" "s3_distribution" { + origin { + domain_name = aws_s3_bucket.bootstrap-with-tailwind.bucket_regional_domain_name + origin_access_control_id = aws_cloudfront_origin_access_control.bootstrap-with-tailwind.id + origin_id = local.s3_origin_id + } + + comment = "Bootstrap examples with Tailwind CSS" + default_root_object = "index.html" + enabled = true + is_ipv6_enabled = true + + aliases = ["bootstrap-with-tailwind.${local.zone_name}"] + + default_cache_behavior { + allowed_methods = ["GET", "HEAD"] + cached_methods = ["GET", "HEAD"] + target_origin_id = local.s3_origin_id + + forwarded_values { + query_string = false + + cookies { + forward = "none" + } + } + + default_ttl = 3600 + max_ttl = 86400 + min_ttl = 0 + viewer_protocol_policy = "allow-all" + } + + price_class = "PriceClass_100" + + restrictions { + geo_restriction { + locations = ["US", "CA", "GB"] + restriction_type = "whitelist" + } + } + + viewer_certificate { + acm_certificate_arn = data.aws_acm_certificate.bootstrap-with-tailwind.arn + ssl_support_method = "sni-only" + } +} + +resource "cloudflare_record" "bootstrap-with-tailwind" { + name = "bootstrap-with-tailwind" + proxied = false + ttl = 0 + type = "CNAME" + value = aws_cloudfront_distribution.s3_distribution.domain_name + zone_id = data.cloudflare_zone.bootstrap-with-tailwind.id +} diff --git a/terraform.tfstate.backup b/terraform.tfstate.backup new file mode 100644 index 0000000..f2ad2a3 --- /dev/null +++ b/terraform.tfstate.backup @@ -0,0 +1,384 @@ +{ + "version": 4, + "terraform_version": "1.3.8", + "serial": 90, + "lineage": "c3605481-259d-3902-621f-b2a4c49e3e4d", + "outputs": {}, + "resources": [ + { + "mode": "data", + "type": "aws_acm_certificate", + "name": "bootstrap-with-tailwind", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"].us-east-1", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:acm:us-east-1:683884983164:certificate/c43e567e-28d7-4138-8844-033fb177f69f", + "certificate": "-----BEGIN CERTIFICATE-----\nMIIF3zCCBMegAwIBAgIQBFHHbnyPJ6Kyvdc8U2lSdTANBgkqhkiG9w0BAQsFADA8\nMQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRwwGgYDVQQDExNBbWF6b24g\nUlNBIDIwNDggTTAyMB4XDTIzMDIxNzAwMDAwMFoXDTI0MDMxNzIzNTk1OVowGjEY\nMBYGA1UEAxMPb2xpdmVyZGF2aWVzLnVrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEApujHoyp2xQ28Tm2iaGnZTDTdGcR2KJuuYxYiFH4FcJmlPrAYytl+\ngMOMCqWr4eIjefHttfXv61c2kNt/ICCG9o6BnvzrAajLuQqlmEVbXxXriDpfcLqQ\nAGSLl7UxLYrlWSqo5UnYWe9s9KErfGJi91esdTMm/wV3KEadLmH5lXGQMaSfTi0S\nX9SXs6MwzTa88mX3bOaGk3NALVcjShE7OUw36pVn8r0xH2z4qQZF3tnNn7Om3ZlG\nYzdlgKt0zuYohNdeYHBcH8LDB9VpcvaW7HocjrIq6GaqTiYjgJ3GmsC2i/Icoz1f\n40ERr+ytpW/rH3D1ex3raipx5SCXPIkXhwIDAQABo4IC/TCCAvkwHwYDVR0jBBgw\nFoAUwDFSzVpQw4J8dHHOy+mc+XrrguIwHQYDVR0OBBYEFP3JOU9LCoZVWc7j3QVt\nuwmmc2MBMC0GA1UdEQQmMCSCD29saXZlcmRhdmllcy51a4IRKi5vbGl2ZXJkYXZp\nZXMudWswDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\nBQcDAjA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vY3JsLnIybTAyLmFtYXpvbnRy\ndXN0LmNvbS9yMm0wMi5jcmwwEwYDVR0gBAwwCjAIBgZngQwBAgEwdQYIKwYBBQUH\nAQEEaTBnMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5yMm0wMi5hbWF6b250cnVz\ndC5jb20wNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQucjJtMDIuYW1hem9udHJ1c3Qu\nY29tL3IybTAyLmNlcjAMBgNVHRMBAf8EAjAAMIIBgAYKKwYBBAHWeQIEAgSCAXAE\nggFsAWoAdwB2/4g/Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAYZe4nSr\nAAAEAwBIMEYCIQDXKCnCbPZ9VOkS5OEhwFr/DtQs4uOTQsrGOmHrZf8lQQIhALkC\nnuXbDGOmAeJhWwf8YskHVL8BX94LxuTRiPwKq882AHYAc9meiRtMlnigIH1Hneay\nxhzQUV5xGSqMa4AQesF3crUAAAGGXuJ0rgAABAMARzBFAiAeyChP0Uitiuk8aS38\n2pWQYKiN8tgz6dt2FHoLAm10agIhALcVPK21f1N2vGuBXFz4mGTuO51qR9xw6nZl\nIr6LTI6EAHcASLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGGXuJ0\ncQAABAMASDBGAiEAnWKbsUwn+kwmyhTVanHghUtcmswwaodoG2gJvX1ruOACIQCl\nIDTaBDogMbEk2sEAwfIEaqtaqV/8qv/6WzXoSNw2yTANBgkqhkiG9w0BAQsFAAOC\nAQEAL2dwl0r8KokDVnpsLgnc9Pbp0JeA12/nG2kiRYgyQYaeTIjiBYbqRc3/a1OV\nx2emn4nEGY3iomBs7EKPyxsmlbHeguSJn0Smsk2JnLp9HIXxXyXS3ZPK/bfpYzyq\nUQpYqJZz1oHeSEtPjwVLSRPPRMaGBMjG30jqI6XqiZtshvmqk8ykV9fONb/Nba1g\nogBdfofEWXhh7SEQ4dtvLMpdcY9lwuSniTM3c/GBItsD3NZtaKwoIDHATyq8C3Uq\nU4xJKrB8Rxz4jweUf7YwFAMwSxnpAgFORj2VLnjlReRlJQX4XnDgJSGWR3nLQotE\nbqz+Bs2P6RqRgbeShDKPV2dDtQ==\n-----END CERTIFICATE-----\n", + "certificate_chain": "-----BEGIN CERTIFICATE-----\nMIIEXjCCA0agAwIBAgITB3MSSkvL1E7HtTvq8ZSELToPoTANBgkqhkiG9w0BAQsF\nADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\nb24gUm9vdCBDQSAxMB4XDTIyMDgyMzIyMjUzMFoXDTMwMDgyMzIyMjUzMFowPDEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEcMBoGA1UEAxMTQW1hem9uIFJT\nQSAyMDQ4IE0wMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtDGMZa\nqHneKei1by6+pUPPLljTB143Si6VpEWPc6mSkFhZb/6qrkZyoHlQLbDYnI2D7hD0\nsdzEqfnuAjIsuXQLG3A8TvX6V3oFNBFVe8NlLJHvBseKY88saLwufxkZVwk74g4n\nWlNMXzla9Y5F3wwRHwMVH443xGz6UtGSZSqQ94eFx5X7Tlqt8whi8qCaKdZ5rNak\n+r9nUThOeClqFd4oXych//Rc7Y0eX1KNWHYSI1Nk31mYgiK3JvH063g+K9tHA63Z\neTgKgndlh+WI+zv7i44HepRZjA1FYwYZ9Vv/9UkC5Yz8/yU65fgjaE+wVHM4e/Yy\nC2osrPWE7gJ+dXMCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD\nVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNV\nHQ4EFgQUwDFSzVpQw4J8dHHOy+mc+XrrguIwHwYDVR0jBBgwFoAUhBjMhTTsvAyU\nlC4IWZzHshBOCggwewYIKwYBBQUHAQEEbzBtMC8GCCsGAQUFBzABhiNodHRwOi8v\nb2NzcC5yb290Y2ExLmFtYXpvbnRydXN0LmNvbTA6BggrBgEFBQcwAoYuaHR0cDov\nL2NydC5yb290Y2ExLmFtYXpvbnRydXN0LmNvbS9yb290Y2ExLmNlcjA/BgNVHR8E\nODA2MDSgMqAwhi5odHRwOi8vY3JsLnJvb3RjYTEuYW1hem9udHJ1c3QuY29tL3Jv\nb3RjYTEuY3JsMBMGA1UdIAQMMAowCAYGZ4EMAQIBMA0GCSqGSIb3DQEBCwUAA4IB\nAQAtTi6Fs0Azfi+iwm7jrz+CSxHH+uHl7Law3MQSXVtR8RV53PtR6r/6gNpqlzdo\nZq4FKbADi1v9Bun8RY8D51uedRfjsbeodizeBB8nXmeyD33Ep7VATj4ozcd31YFV\nfgRhvTSxNrrTlNpWkUk0m3BMPv8sg381HhA6uEYokE5q9uws/3YkKqRiEz3TsaWm\nJqIRZhMbgAfp7O7FUwFIb7UIspogZSKxPIWJpxiPo3TcBambbVtQOcNRWz5qCQdD\nslI2yayq0n2TXoHyNCLEH8rpsJRVILFsg0jc7BaFrMnF462+ajSehgj12IidNeRN\n4zl+EoNaWdpnWndvSpAEkq2P\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIEkjCCA3qgAwIBAgITBn+USionzfP6wq4rAfkI7rnExjANBgkqhkiG9w0BAQsF\nADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNj\nb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4x\nOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1\ndGhvcml0eSAtIEcyMB4XDTE1MDUyNTEyMDAwMFoXDTM3MTIzMTAxMDAwMFowOTEL\nMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\nb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\nca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\n9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\nIFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\nVOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\n93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\njgSubJrIqg0CAwEAAaOCATEwggEtMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/\nBAQDAgGGMB0GA1UdDgQWBBSEGMyFNOy8DJSULghZnMeyEE4KCDAfBgNVHSMEGDAW\ngBScXwDfqgHXMCs4iKK4bUqc8hGRgzB4BggrBgEFBQcBAQRsMGowLgYIKwYBBQUH\nMAGGImh0dHA6Ly9vY3NwLnJvb3RnMi5hbWF6b250cnVzdC5jb20wOAYIKwYBBQUH\nMAKGLGh0dHA6Ly9jcnQucm9vdGcyLmFtYXpvbnRydXN0LmNvbS9yb290ZzIuY2Vy\nMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmwucm9vdGcyLmFtYXpvbnRydXN0\nLmNvbS9yb290ZzIuY3JsMBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQsF\nAAOCAQEAYjdCXLwQtT6LLOkMm2xF4gcAevnFWAu5CIw+7bMlPLVvUOTNNWqnkzSW\nMiGpSESrnO09tKpzbeR/FoCJbM8oAxiDR3mjEH4wW6w7sGDgd9QIpuEdfF7Au/ma\neyKdpwAJfqxGF4PcnCZXmTA5YpaP7dreqsXMGz7KQ2hsVxa81Q4gLv7/wmpdLqBK\nbRRYh5TmOTFffHPLkIhqhBGWJ6bt2YFGpn6jcgAKUj6DiAdjd4lpFw85hdKrCEVN\n0FE6/V1dN2RMfjCyVSRCnTawXZwXgWHxyvkQAiSr6w10kY17RSlQOYiypok1JR4U\nakcjMS9cmvqtmg5iUaQqqcT5NJ0hGA==\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIEdTCCA12gAwIBAgIJAKcOSkw0grd/MA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNV\nBAYTAlVTMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIw\nMAYDVQQLEylTdGFyZmllbGQgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0\neTAeFw0wOTA5MDIwMDAwMDBaFw0zNDA2MjgxNzM5MTZaMIGYMQswCQYDVQQGEwJV\nUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UE\nChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjE7MDkGA1UEAxMyU3RhcmZp\nZWxkIFNlcnZpY2VzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVDDrEKvlO4vW+GZdfjohTsR8/\ny8+fIBNtKTrID30892t2OGPZNmCom15cAICyL1l/9of5JUOG52kbUpqQ4XHj2C0N\nTm/2yEnZtvMaVq4rtnQU68/7JuMauh2WLmo7WJSJR1b/JaCTcFOD2oR0FMNnngRo\nOt+OQFodSk7PQ5E751bWAHDLUu57fa4657wx+UX2wmDPE1kCK4DMNEffud6QZW0C\nzyyRpqbn3oUYSXxmTqM6bam17jQuug0DuDPfR+uxa40l2ZvOgdFFRjKWcIfeAg5J\nQ4W2bHO7ZOphQazJ1FTfhy/HIrImzJ9ZVGif/L4qL8RVHHVAYBeFAlU5i38FAgMB\nAAGjgfAwge0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0O\nBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMB8GA1UdIwQYMBaAFL9ft9HO3R+G9FtV\nrNzXEMIOqYjnME8GCCsGAQUFBwEBBEMwQTAcBggrBgEFBQcwAYYQaHR0cDovL28u\nc3MyLnVzLzAhBggrBgEFBQcwAoYVaHR0cDovL3guc3MyLnVzL3guY2VyMCYGA1Ud\nHwQfMB0wG6AZoBeGFWh0dHA6Ly9zLnNzMi51cy9yLmNybDARBgNVHSAECjAIMAYG\nBFUdIAAwDQYJKoZIhvcNAQELBQADggEBACMd44pXyn3pF3lM8R5V/cxTbj5HD9/G\nVfKyBDbtgB9TxF00KGu+x1X8Z+rLP3+QsjPNG1gQggL4+C/1E2DUBc7xgQjB3ad1\nl08YuW3e95ORCLp+QCztweq7dp4zBncdDQh/U90bZKuCJ/Fp1U1ervShw3WnWEQt\n8jxwmKy6abaVd38PMV4s/KCHOkdp8Hlf9BRUpJVeEXgSYCfOn8J3/yNTd126/+pZ\n59vPr5KW7ySaNRB6nJHGDn2Z9j8Z3/VyVOEVqQdZe4O/Ui5GjLIAZHYcSNPYeehu\nVsyuLAOQ1xk4meTKCRlb/weWsKh/NEnfVqn3sF/tM+2MR7cwA130A4w=\n-----END CERTIFICATE-----\n", + "domain": "oliverdavies.uk", + "id": "arn:aws:acm:us-east-1:683884983164:certificate/c43e567e-28d7-4138-8844-033fb177f69f", + "key_types": null, + "most_recent": false, + "status": "ISSUED", + "statuses": [ + "ISSUED" + ], + "tags": {}, + "types": null + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "cloudflare_zone", + "name": "bootstrap-with-tailwind", + "provider": "provider[\"registry.terraform.io/cloudflare/cloudflare\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "43f15fd4caff58c6f006dc624fd23cc8", + "id": "fe9ec061de638b92e3a81d6d2730ff55", + "name": "oliverdavies.uk", + "name_servers": [ + "amy.ns.cloudflare.com", + "john.ns.cloudflare.com" + ], + "paused": false, + "plan": "Free Website", + "status": "active", + "vanity_name_servers": [], + "zone_id": "fe9ec061de638b92e3a81d6d2730ff55" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "managed", + "type": "aws_cloudfront_distribution", + "name": "s3_distribution", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "aliases": [ + "bootstrap-with-tailwind.oliverdavies.uk" + ], + "arn": "arn:aws:cloudfront::683884983164:distribution/E13YDBQMYHGRJD", + "caller_reference": "terraform-20230217103845086000000001", + "comment": "Bootstrap examples with Tailwind CSS", + "custom_error_response": [], + "default_cache_behavior": [ + { + "allowed_methods": [ + "GET", + "HEAD" + ], + "cache_policy_id": "", + "cached_methods": [ + "GET", + "HEAD" + ], + "compress": false, + "default_ttl": 3600, + "field_level_encryption_id": "", + "forwarded_values": [ + { + "cookies": [ + { + "forward": "none", + "whitelisted_names": [] + } + ], + "headers": [], + "query_string": false, + "query_string_cache_keys": [] + } + ], + "function_association": [], + "lambda_function_association": [], + "max_ttl": 86400, + "min_ttl": 0, + "origin_request_policy_id": "", + "realtime_log_config_arn": "", + "response_headers_policy_id": "", + "smooth_streaming": false, + "target_origin_id": "bootstrap-with-tailwind", + "trusted_key_groups": [], + "trusted_signers": [], + "viewer_protocol_policy": "allow-all" + } + ], + "default_root_object": "index.html", + "domain_name": "d3c1oegbqp79pl.cloudfront.net", + "enabled": true, + "etag": "E3M8B4WDPWP4BD", + "hosted_zone_id": "Z2FDTNDATAQYW2", + "http_version": "http2", + "id": "E13YDBQMYHGRJD", + "in_progress_validation_batches": 0, + "is_ipv6_enabled": true, + "last_modified_time": "2023-02-17 10:38:45.472 +0000 UTC", + "logging_config": [], + "ordered_cache_behavior": [], + "origin": [ + { + "connection_attempts": 3, + "connection_timeout": 10, + "custom_header": [], + "custom_origin_config": [], + "domain_name": "bootstrap-with-tailwind.s3.eu-west-2.amazonaws.com", + "origin_access_control_id": "E1H23UAQH7L3XM", + "origin_id": "bootstrap-with-tailwind", + "origin_path": "", + "origin_shield": [], + "s3_origin_config": [] + } + ], + "origin_group": [], + "price_class": "PriceClass_100", + "restrictions": [ + { + "geo_restriction": [ + { + "locations": [ + "CA", + "GB", + "US" + ], + "restriction_type": "whitelist" + } + ] + } + ], + "retain_on_delete": false, + "status": "Deployed", + "tags": {}, + "tags_all": {}, + "trusted_key_groups": [ + { + "enabled": false, + "items": [] + } + ], + "trusted_signers": [ + { + "enabled": false, + "items": [] + } + ], + "viewer_certificate": [ + { + "acm_certificate_arn": "arn:aws:acm:us-east-1:683884983164:certificate/c43e567e-28d7-4138-8844-033fb177f69f", + "cloudfront_default_certificate": false, + "iam_certificate_id": "", + "minimum_protocol_version": "TLSv1", + "ssl_support_method": "sni-only" + } + ], + "wait_for_deployment": true, + "web_acl_id": "" + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==", + "dependencies": [ + "aws_cloudfront_origin_access_control.bootstrap-with-tailwind", + "aws_s3_bucket.bootstrap-with-tailwind", + "data.aws_acm_certificate.bootstrap-with-tailwind" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_cloudfront_origin_access_control", + "name": "bootstrap-with-tailwind", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "description": "bootstrap-with-tailwind", + "etag": "ETVPDKIKX0DER", + "id": "E1H23UAQH7L3XM", + "name": "bootstrap-with-tailwind", + "origin_access_control_origin_type": "s3", + "signing_behavior": "always", + "signing_protocol": "sigv4" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "bootstrap-with-tailwind", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::bootstrap-with-tailwind", + "bucket": "bootstrap-with-tailwind", + "bucket_domain_name": "bootstrap-with-tailwind.s3.amazonaws.com", + "bucket_prefix": null, + "bucket_regional_domain_name": "bootstrap-with-tailwind.s3.eu-west-2.amazonaws.com", + "cors_rule": [], + "force_destroy": false, + "grant": [ + { + "id": "", + "permissions": [ + "READ" + ], + "type": "Group", + "uri": "http://acs.amazonaws.com/groups/global/AllUsers" + }, + { + "id": "e7f52048ce51a47905912dc3ef8fcb1fbd673832cfc6c62f3f6616dbbd9bd694", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z3GKZC51ZF0DB4", + "id": "bootstrap-with-tailwind", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "", + "region": "eu-west-2", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [ + { + "error_document": "", + "index_document": "index.html", + "redirect_all_requests_to": "", + "routing_rules": "" + } + ], + "website_domain": "s3-website.eu-west-2.amazonaws.com", + "website_endpoint": "bootstrap-with-tailwind.s3-website.eu-west-2.amazonaws.com" + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_acl", + "name": "bootstrap-with-tailwind", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_control_policy": [ + { + "grant": [ + { + "grantee": [ + { + "display_name": "", + "email_address": "", + "id": "", + "type": "Group", + "uri": "http://acs.amazonaws.com/groups/global/AllUsers" + } + ], + "permission": "READ" + }, + { + "grantee": [ + { + "display_name": "", + "email_address": "", + "id": "e7f52048ce51a47905912dc3ef8fcb1fbd673832cfc6c62f3f6616dbbd9bd694", + "type": "CanonicalUser", + "uri": "" + } + ], + "permission": "FULL_CONTROL" + } + ], + "owner": [ + { + "display_name": "", + "id": "e7f52048ce51a47905912dc3ef8fcb1fbd673832cfc6c62f3f6616dbbd9bd694" + } + ] + } + ], + "acl": "public-read", + "bucket": "bootstrap-with-tailwind", + "expected_bucket_owner": "", + "id": "bootstrap-with-tailwind,public-read" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.bootstrap-with-tailwind" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_website_configuration", + "name": "bootstrap-with-tailwind", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "bootstrap-with-tailwind", + "error_document": [], + "expected_bucket_owner": "", + "id": "bootstrap-with-tailwind", + "index_document": [ + { + "suffix": "index.html" + } + ], + "redirect_all_requests_to": [], + "routing_rule": [], + "routing_rules": "", + "website_domain": "s3-website.eu-west-2.amazonaws.com", + "website_endpoint": "bootstrap-with-tailwind.s3-website.eu-west-2.amazonaws.com" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.bootstrap-with-tailwind" + ] + } + ] + } + ], + "check_results": null +}