provider "aws" { region = var.aws_region } resource "aws_s3_bucket" "personal_measure" { bucket = "${var.app_root_url}" acl = "log-delivery-write" } resource "aws_ecr_repository" "personal_measure_api" { name = "personal_measure_api" image_tag_mutability = "IMMUTABLE" image_scanning_configuration { scan_on_push = true } } module "dev_env" { source = "./deployed_env" environment = "dev" artifact_bucket = aws_s3_bucket.personal_measure route53_zone = data.terraform_remote_state.jdbsoft.route53_zone_jdbsoft domain_cert_arn = data.terraform_remote_state.jdbsoft.aws_acm_certificate_jdbsoft } module "prod_env" { source = "./deployed_env" environment = "prod" artifact_bucket = aws_s3_bucket.personal_measure route53_zone = data.terraform_remote_state.jdbsoft.route53_zone_jdbsoft domain_cert_arn = data.terraform_remote_state.jdbsoft.aws_acm_certificate_jdbsoft } data "aws_iam_policy_document" "cloudfront_access_policy" { source_json = "${module.dev_env.oai_access_policy.json}" override_json = "${module.prod_env.oai_access_policy.json}" } resource "aws_s3_bucket_policy" "personal_measure" { bucket = "${aws_s3_bucket.personal_measure.id}" policy = "${data.aws_iam_policy_document.cloudfront_access_policy.json}" }