diff --git a/terraform/live/modules/environment-owned/main.tf b/terraform/live/modules/environment-owned/main.tf index cc01dc4..8bf364b 100644 --- a/terraform/live/modules/environment-owned/main.tf +++ b/terraform/live/modules/environment-owned/main.tf @@ -292,17 +292,37 @@ data "aws_iam_policy_document" "deploy" { dynamic "statement" { for_each = local.use_legacy_s3_policy ? [] : [1] content { - effect = "Allow" - actions = ["s3:PutObject"] - resources = ["arn:aws:s3:::${local.eb_bucket_name}/${var.eb_application_name}/*"] + effect = "Allow" + actions = [ + "s3:PutObject", + "s3:PutObjectAcl", + "s3:PutObjectVersionAcl", + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:DeleteObject", + ] + resources = [ + "arn:aws:s3:::${local.eb_bucket_name}/${var.eb_application_name}/*", + "arn:aws:s3:::${local.eb_bucket_name}/resources/_runtime/_embedded_extensions/${var.eb_application_name}/*", + "arn:aws:s3:::${local.eb_bucket_name}/resources/environments/${var.eb_environment_id}/*", + ] } } dynamic "statement" { for_each = local.use_legacy_s3_policy ? [] : [1] content { - effect = "Allow" - actions = ["s3:GetBucketLocation", "s3:ListBucket"] + effect = "Allow" + actions = [ + "s3:GetBucketLocation", + "s3:ListBucket", + "s3:GetBucketPolicy", + "s3:GetBucketAcl", + "s3:GetBucketVersioning", + "s3:GetBucketOwnershipControls", + ] resources = ["arn:aws:s3:::${local.eb_bucket_name}"] } }