Adding terraform

For S3 Cloudfront configuration
This commit is contained in:
2020-07-16 00:07:04 +01:00
parent 5e3e95a1b5
commit c984b5a06c
8 changed files with 1849 additions and 0 deletions

View File

@@ -0,0 +1,742 @@
{
"version": 4,
"terraform_version": "0.12.26",
"serial": 90,
"lineage": "cda52006-90fc-4aec-a630-42e69057b365",
"outputs": {
"cf_arn": {
"value": "arn:aws:cloudfront::745437999005:distribution/E2IHXIMPI3MZ2X",
"type": "string"
},
"cf_domain_name": {
"value": "d244ranky0ff54.cloudfront.net",
"type": "string"
},
"cf_etag": {
"value": "E2SEL7AYXF1CKS",
"type": "string"
},
"cf_hosted_zone_id": {
"value": "Z2FDTNDATAQYW2",
"type": "string"
},
"cf_id": {
"value": "E2IHXIMPI3MZ2X",
"type": "string"
},
"cf_status": {
"value": "Deployed",
"type": "string"
},
"s3_bucket": {
"value": "prod-panaetius-blog-origin",
"type": "string"
},
"s3_bucket_domain_name": {
"value": "prod-panaetius-blog-origin.s3.eu-west-1.amazonaws.com",
"type": "string"
}
},
"resources": [
{
"module": "module.cloudfront_s3_cdn",
"mode": "data",
"type": "aws_iam_policy_document",
"name": "origin",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"id": "3493490045",
"json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}",
"override_json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\":\"PublicRead\",\n \"Effect\":\"Allow\",\n \"Principal\": \"*\",\n \"Action\":[\"s3:GetObject\"],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\"\n }\n ]\n}\n",
"policy_id": null,
"source_json": null,
"statement": [
{
"actions": [
"s3:GetObject"
],
"condition": [],
"effect": "Allow",
"not_actions": [],
"not_principals": [],
"not_resources": [],
"principals": [
{
"identifiers": [
"${cloudfront_origin_access_identity_iam_arn}"
],
"type": "AWS"
}
],
"resources": [
"arn:aws:s3:::${bucket_name}${origin_path}*"
],
"sid": "S3GetObjectForCloudFront"
},
{
"actions": [
"s3:ListBucket"
],
"condition": [],
"effect": "Allow",
"not_actions": [],
"not_principals": [],
"not_resources": [],
"principals": [
{
"identifiers": [
"${cloudfront_origin_access_identity_iam_arn}"
],
"type": "AWS"
}
],
"resources": [
"arn:aws:s3:::${bucket_name}"
],
"sid": "S3ListBucketForCloudFront"
}
],
"version": "2012-10-17"
}
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "data",
"type": "aws_iam_policy_document",
"name": "origin_website",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"id": "736817168",
"json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}",
"override_json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\":\"PublicRead\",\n \"Effect\":\"Allow\",\n \"Principal\": \"*\",\n \"Action\":[\"s3:GetObject\"],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\"\n }\n ]\n}\n",
"policy_id": null,
"source_json": null,
"statement": [
{
"actions": [
"s3:GetObject"
],
"condition": [],
"effect": "Allow",
"not_actions": [],
"not_principals": [],
"not_resources": [],
"principals": [
{
"identifiers": [
"*"
],
"type": "AWS"
}
],
"resources": [
"arn:aws:s3:::${bucket_name}${origin_path}*"
],
"sid": "S3GetObjectForCloudFront"
}
],
"version": "2012-10-17"
}
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "data",
"type": "aws_region",
"name": "current",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"current": null,
"description": "Europe (Ireland)",
"endpoint": "ec2.eu-west-1.amazonaws.com",
"id": "eu-west-1",
"name": "eu-west-1"
}
}
]
},
{
"module": "module.cloudfront_s3_cdn.module.dns",
"mode": "data",
"type": "aws_route53_zone",
"name": "default",
"each": "list",
"provider": "provider.aws",
"instances": [
{
"index_key": 0,
"schema_version": 0,
"attributes": {
"caller_reference": "321439A9-2EB4-9C82-858E-22E353E3CC06",
"comment": "blog",
"id": "Z05316671VABVSMAAF1RC",
"linked_service_description": null,
"linked_service_principal": null,
"name": "panaetius.io.",
"name_servers": [
"ns-1774.awsdns-29.co.uk",
"ns-667.awsdns-19.net",
"ns-1261.awsdns-29.org",
"ns-401.awsdns-50.com"
],
"private_zone": false,
"resource_record_set_count": 5,
"tags": {},
"vpc_id": null,
"zone_id": "Z05316671VABVSMAAF1RC"
}
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "data",
"type": "aws_s3_bucket",
"name": "selected",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"arn": "arn:aws:s3:::prod-panaetius-blog-origin",
"bucket": "prod-panaetius-blog-origin",
"bucket_domain_name": "prod-panaetius-blog-origin.s3.amazonaws.com",
"bucket_regional_domain_name": "prod-panaetius-blog-origin.s3.eu-west-1.amazonaws.com",
"hosted_zone_id": "Z1BKCTXD74EZPE",
"id": "prod-panaetius-blog-origin",
"region": "eu-west-1",
"website_domain": null,
"website_endpoint": null
}
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "data",
"type": "template_file",
"name": "default",
"provider": "provider.template",
"instances": [
{
"schema_version": 0,
"attributes": {
"filename": null,
"id": "ef8d6cdd8c782d412e41e1e574ea39e8674f2d80726946a8f8dbe8ea50c1ac8b",
"rendered": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21A7YWJ1RT3K5\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21A7YWJ1RT3K5\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}",
"template": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}${origin_path}*\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::${bucket_name}\",\n \"Principal\": {\n \"AWS\": \"${cloudfront_origin_access_identity_iam_arn}\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}",
"vars": {
"bucket_name": "prod-panaetius-blog-origin",
"cloudfront_origin_access_identity_iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21A7YWJ1RT3K5",
"origin_path": "/"
}
}
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "managed",
"type": "aws_cloudfront_distribution",
"name": "default",
"provider": "provider.aws",
"instances": [
{
"schema_version": 1,
"attributes": {
"active_trusted_signers": {
"enabled": "false",
"items.#": "0"
},
"aliases": [
"panaetius.io"
],
"arn": "arn:aws:cloudfront::745437999005:distribution/E2IHXIMPI3MZ2X",
"cache_behavior": [],
"caller_reference": "terraform-20200713232651089800000002",
"comment": "Managed by Terraform",
"custom_error_response": [],
"default_cache_behavior": [
{
"allowed_methods": [
"DELETE",
"GET",
"HEAD",
"OPTIONS",
"PATCH",
"POST",
"PUT"
],
"cached_methods": [
"GET",
"HEAD"
],
"compress": false,
"default_ttl": 60,
"field_level_encryption_id": "",
"forwarded_values": [
{
"cookies": [
{
"forward": "none",
"whitelisted_names": []
}
],
"headers": [
"Access-Control-Request-Headers",
"Access-Control-Request-Method",
"Origin"
],
"query_string": false,
"query_string_cache_keys": []
}
],
"lambda_function_association": [],
"max_ttl": 31536000,
"min_ttl": 0,
"smooth_streaming": false,
"target_origin_id": "prod-panaetius-blog",
"trusted_signers": [],
"viewer_protocol_policy": "redirect-to-https"
}
],
"default_root_object": "index.html",
"domain_name": "d244ranky0ff54.cloudfront.net",
"enabled": true,
"etag": "E2SEL7AYXF1CKS",
"hosted_zone_id": "Z2FDTNDATAQYW2",
"http_version": "http2",
"id": "E2IHXIMPI3MZ2X",
"in_progress_validation_batches": 0,
"is_ipv6_enabled": true,
"last_modified_time": "2020-07-15 00:18:34.684 +0000 UTC",
"logging_config": [
{
"bucket": "prod-panaetius-blog-logs.s3.amazonaws.com",
"include_cookies": false,
"prefix": ""
}
],
"ordered_cache_behavior": [],
"origin": [
{
"custom_header": [],
"custom_origin_config": [],
"domain_name": "prod-panaetius-blog-origin.s3.eu-west-1.amazonaws.com",
"origin_id": "prod-panaetius-blog",
"origin_path": "",
"s3_origin_config": [
{
"origin_access_identity": "origin-access-identity/cloudfront/E21A7YWJ1RT3K5"
}
]
}
],
"origin_group": [],
"price_class": "PriceClass_100",
"restrictions": [
{
"geo_restriction": [
{
"locations": [],
"restriction_type": "none"
}
]
}
],
"retain_on_delete": false,
"status": "Deployed",
"tags": {
"Description": "terraform resources to host the blog",
"Name": "prod-panaetius-blog",
"Project": "panaetius-blog",
"Stage": "prod"
},
"viewer_certificate": [
{
"acm_certificate_arn": "arn:aws:acm:us-east-1:745437999005:certificate/60af49f0-07bb-4680-8f5b-3c9a33f756e5",
"cloudfront_default_certificate": false,
"iam_certificate_id": "",
"minimum_protocol_version": "TLSv1",
"ssl_support_method": "sni-only"
}
],
"wait_for_deployment": true,
"web_acl_id": ""
},
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==",
"dependencies": [
"module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default",
"module.cloudfront_s3_cdn.aws_s3_bucket.origin",
"module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default"
]
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "managed",
"type": "aws_cloudfront_origin_access_identity",
"name": "default",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"caller_reference": "terraform-20200713232645930800000001",
"cloudfront_access_identity_path": "origin-access-identity/cloudfront/E21A7YWJ1RT3K5",
"comment": "prod-panaetius-blog",
"etag": "EESE0U5KF261",
"iam_arn": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21A7YWJ1RT3K5",
"id": "E21A7YWJ1RT3K5",
"s3_canonical_user_id": "2d7779400635ec843efe9b677769fc4f82b0d384408cf22382bf3a90540502e09e75d1346e7105b4da159515b229f39b"
},
"private": "bnVsbA=="
}
]
},
{
"module": "module.cloudfront_s3_cdn.module.dns",
"mode": "managed",
"type": "aws_route53_record",
"name": "default",
"each": "list",
"provider": "provider.aws",
"instances": [
{
"index_key": 0,
"schema_version": 2,
"attributes": {
"alias": [
{
"evaluate_target_health": false,
"name": "d244ranky0ff54.cloudfront.net",
"zone_id": "Z2FDTNDATAQYW2"
}
],
"allow_overwrite": null,
"failover_routing_policy": [],
"fqdn": "panaetius.io",
"geolocation_routing_policy": [],
"health_check_id": "",
"id": "Z05316671VABVSMAAF1RC_panaetius.io_A",
"latency_routing_policy": [],
"multivalue_answer_routing_policy": null,
"name": "panaetius.io",
"records": [],
"set_identifier": "",
"ttl": 0,
"type": "A",
"weighted_routing_policy": [],
"zone_id": "Z05316671VABVSMAAF1RC"
},
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==",
"dependencies": [
"module.cloudfront_s3_cdn.aws_cloudfront_distribution.default",
"module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default",
"module.cloudfront_s3_cdn.aws_s3_bucket.origin",
"module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default"
]
}
]
},
{
"module": "module.cloudfront_s3_cdn.module.dns",
"mode": "managed",
"type": "aws_route53_record",
"name": "ipv6",
"each": "list",
"provider": "provider.aws",
"instances": [
{
"index_key": 0,
"schema_version": 2,
"attributes": {
"alias": [
{
"evaluate_target_health": false,
"name": "d244ranky0ff54.cloudfront.net",
"zone_id": "Z2FDTNDATAQYW2"
}
],
"allow_overwrite": null,
"failover_routing_policy": [],
"fqdn": "panaetius.io",
"geolocation_routing_policy": [],
"health_check_id": "",
"id": "Z05316671VABVSMAAF1RC_panaetius.io_AAAA",
"latency_routing_policy": [],
"multivalue_answer_routing_policy": null,
"name": "panaetius.io",
"records": [],
"set_identifier": "",
"ttl": 0,
"type": "AAAA",
"weighted_routing_policy": [],
"zone_id": "Z05316671VABVSMAAF1RC"
},
"private": "eyJzY2hlbWFfdmVyc2lvbiI6IjIifQ==",
"dependencies": [
"module.cloudfront_s3_cdn.aws_cloudfront_distribution.default",
"module.cloudfront_s3_cdn.aws_cloudfront_origin_access_identity.default",
"module.cloudfront_s3_cdn.aws_s3_bucket.origin",
"module.cloudfront_s3_cdn.module.logs.aws_s3_bucket.default"
]
}
]
},
{
"module": "module.cloudfront_s3_cdn.module.logs",
"mode": "managed",
"type": "aws_s3_bucket",
"name": "default",
"each": "list",
"provider": "provider.aws",
"instances": [
{
"index_key": 0,
"schema_version": 0,
"attributes": {
"acceleration_status": "",
"acl": "log-delivery-write",
"arn": "arn:aws:s3:::prod-panaetius-blog-logs",
"bucket": "prod-panaetius-blog-logs",
"bucket_domain_name": "prod-panaetius-blog-logs.s3.amazonaws.com",
"bucket_prefix": null,
"bucket_regional_domain_name": "prod-panaetius-blog-logs.s3.eu-west-1.amazonaws.com",
"cors_rule": [],
"force_destroy": true,
"grant": [],
"hosted_zone_id": "Z1BKCTXD74EZPE",
"id": "prod-panaetius-blog-logs",
"lifecycle_rule": [
{
"abort_incomplete_multipart_upload_days": 0,
"enabled": true,
"expiration": [
{
"date": "",
"days": 90,
"expired_object_delete_marker": false
}
],
"id": "prod-panaetius-blog-logs",
"noncurrent_version_expiration": [
{
"days": 90
}
],
"noncurrent_version_transition": [
{
"days": 30,
"storage_class": "GLACIER"
}
],
"prefix": "",
"tags": {},
"transition": [
{
"date": "",
"days": 30,
"storage_class": "STANDARD_IA"
},
{
"date": "",
"days": 60,
"storage_class": "GLACIER"
}
]
}
],
"logging": [],
"object_lock_configuration": [],
"policy": "",
"region": "eu-west-1",
"replication_configuration": [],
"request_payer": "BucketOwner",
"server_side_encryption_configuration": [
{
"rule": [
{
"apply_server_side_encryption_by_default": [
{
"kms_master_key_id": "",
"sse_algorithm": "AES256"
}
]
}
]
}
],
"tags": {
"Attributes": "logs",
"Description": "terraform resources to host the blog",
"Name": "prod-panaetius-blog-logs",
"Project": "panaetius-blog",
"Stage": "prod"
},
"versioning": [
{
"enabled": false,
"mfa_delete": false
}
],
"website": [],
"website_domain": null,
"website_endpoint": null
},
"private": "bnVsbA=="
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "managed",
"type": "aws_s3_bucket",
"name": "origin",
"each": "list",
"provider": "provider.aws",
"instances": [
{
"index_key": 0,
"schema_version": 0,
"attributes": {
"acceleration_status": "",
"acl": "private",
"arn": "arn:aws:s3:::prod-panaetius-blog-origin",
"bucket": "prod-panaetius-blog-origin",
"bucket_domain_name": "prod-panaetius-blog-origin.s3.amazonaws.com",
"bucket_prefix": null,
"bucket_regional_domain_name": "prod-panaetius-blog-origin.s3.eu-west-1.amazonaws.com",
"cors_rule": [
{
"allowed_headers": [
"*"
],
"allowed_methods": [
"GET",
"HEAD",
"PUT",
"POST"
],
"allowed_origins": [
"*.panaetius.io",
"panaetius.io"
],
"expose_headers": [
"ETag"
],
"max_age_seconds": 3600
}
],
"force_destroy": true,
"grant": [],
"hosted_zone_id": "Z1BKCTXD74EZPE",
"id": "prod-panaetius-blog-origin",
"lifecycle_rule": [],
"logging": [],
"object_lock_configuration": [],
"policy": null,
"region": "eu-west-1",
"replication_configuration": [],
"request_payer": "BucketOwner",
"server_side_encryption_configuration": [],
"tags": {
"Attributes": "origin",
"Description": "terraform resources to host the blog",
"Name": "prod-panaetius-blog-origin",
"Project": "panaetius-blog",
"Stage": "prod"
},
"versioning": [
{
"enabled": false,
"mfa_delete": false
}
],
"website": [],
"website_domain": null,
"website_endpoint": null
},
"private": "bnVsbA=="
}
]
},
{
"mode": "managed",
"type": "aws_s3_bucket_object",
"name": "index",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"acl": "public-read",
"bucket": "prod-panaetius-blog-origin",
"cache_control": "",
"content": null,
"content_base64": null,
"content_disposition": "",
"content_encoding": "",
"content_language": "",
"content_type": "text/html",
"etag": "83350948ee374f30e5513497c69c0fe5",
"force_destroy": false,
"id": "index.html",
"key": "index.html",
"kms_key_id": null,
"metadata": {},
"object_lock_legal_hold_status": "",
"object_lock_mode": "",
"object_lock_retain_until_date": "",
"server_side_encryption": "",
"source": "./test/index.html",
"storage_class": "STANDARD",
"tags": {},
"version_id": "",
"website_redirect": ""
},
"private": "bnVsbA==",
"dependencies": [
"module.cloudfront_s3_cdn.aws_s3_bucket.origin"
]
}
]
},
{
"module": "module.cloudfront_s3_cdn",
"mode": "managed",
"type": "aws_s3_bucket_policy",
"name": "default",
"each": "list",
"provider": "provider.aws",
"instances": [
{
"index_key": 0,
"schema_version": 0,
"attributes": {
"bucket": "prod-panaetius-blog-origin",
"id": "prod-panaetius-blog-origin",
"policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"S3GetObjectForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:GetObject\",\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21A7YWJ1RT3K5\"\n }\n },\n {\n \"Sid\": \"S3ListBucketForCloudFront\",\n \"Effect\": \"Allow\",\n \"Action\": \"s3:ListBucket\",\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E21A7YWJ1RT3K5\"\n }\n },\n {\n \"Sid\": \"PublicRead\",\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:GetObject\"\n ],\n \"Resource\": \"arn:aws:s3:::prod-panaetius-blog-origin/*\",\n \"Principal\": \"*\"\n }\n ]\n}"
},
"private": "bnVsbA==",
"dependencies": [
"module.cloudfront_s3_cdn.aws_s3_bucket.origin"
]
}
]
}
]
}