@@ -151,51 +151,60 @@ EOF
151151 tags = var. global_tags
152152}
153153
154- # Configure IAM Policy for CodeBuild
154+ # Configure IAM Role for CodeBuild
155155resource "aws_iam_role_policy" "codebuild_reset" {
156- role = aws_iam_role. codebuild_reset . name
157- name = " account-reset-codebuild-${ var . namespace } "
156+ role = aws_iam_role. codebuild_reset . name
157+ name = " account-reset-codebuild-${ var . namespace } "
158+ policy = data. aws_iam_policy_document . codebuild_reset_policy_document . json
159+ }
158160
159- policy = << POLICY
160- {
161- "Version": "2012-10-17",
162- "Statement": [
163- {
164- "Effect": "Allow",
165- "Resource": [
166- "*"
167- ],
168- "Action": [
169- "logs:CreateLogGroup",
170- "logs:CreateLogStream",
171- "logs:PutLogEvents",
172- "sts:AssumeRole",
173- "ssm:GetParameter",
174- "dynamodb:GetItem",
175- "dynamodb:Scan",
176- "dynamodb:Query",
177- "dynamodb:UpdateItem",
178- "sns:Publish"
179- ]
180- },
181- {
182- "Effect": "Allow",
183- "Action": [
184- "s3:PutObject",
185- "s3:GetObject",
186- "s3:GetObjectVersion",
187- "s3:GetBucketAcl",
188- "s3:GetBucketLocation"
189- ],
190- "Resource": [
191- "${ aws_s3_bucket . artifacts . arn } ",
192- "${ aws_s3_bucket . artifacts . arn } /*"
193- ]
194- }
195- ]
161+ # Configure IAM Policy for CodeBuild
162+ data "aws_iam_policy_document" "codebuild_reset_policy_document" {
163+ override_json = var. reset_nuke_template_bucket == " STUB" ? null : data. aws_iam_policy_document . custom_nuke_config [0 ]. json
164+ statement {
165+ actions = [
166+ " logs:CreateLogGroup" ,
167+ " logs:CreateLogStream" ,
168+ " logs:PutLogEvents" ,
169+ " sts:AssumeRole" ,
170+ " ssm:GetParameter" ,
171+ " dynamodb:GetItem" ,
172+ " dynamodb:Scan" ,
173+ " dynamodb:Query" ,
174+ " dynamodb:UpdateItem" ,
175+ " sns:Publish"
176+ ]
177+ resources = [" *" ]
178+ }
179+ statement {
180+ actions = [
181+ " s3:PutObject" ,
182+ " s3:GetObject" ,
183+ " s3:GetObjectVersion" ,
184+ " s3:GetBucketAcl" ,
185+ " s3:GetBucketLocation"
186+ ]
187+ resources = [
188+ " ${ aws_s3_bucket . artifacts . arn } " ,
189+ " ${ aws_s3_bucket . artifacts . arn } /*"
190+ ]
191+ }
196192}
197- POLICY
198193
194+ data "aws_iam_policy_document" "custom_nuke_config" {
195+ count = var. reset_nuke_template_bucket == " STUB" ? 0 : 1
196+ statement {
197+ sid = " allowCustomNukeConfig"
198+ # only put this statement if reset_nuke_template_bucket has been set by the user
199+ actions = [
200+ " s3:ListBucket" ,
201+ " s3:GetObject"
202+ ]
203+ resources = [
204+ " arn:aws:s3:::${ var . reset_nuke_template_bucket } " ,
205+ " arn:aws:s3:::${ var . reset_nuke_template_bucket } /${ var . reset_nuke_template_key } " ,
206+ ]
207+ }
199208}
200209
201210# Cloudwatch alarm, for Reset CodeBuild failure
0 commit comments