33# This AWS Content is provided subject to the terms of the AWS Customer Agreement available at
44# http://aws.amazon.com/agreement or other written agreement between Customer and either
55# Amazon Web Services, Inc. or Amazon Web Services EMEA SARL or both.
6- data "aws_s3_bucket" "assets" {
7- for_each = toset (concat (
8- var. goss_bucket == null ? [] : [var . goss_bucket . name ],
9- var. ansible_bucket == null ? [] : [var . ansible_bucket . name ],
10- var. packer_bucket == null ? [] : [var . packer_bucket . name ]
11- ))
12- bucket = each. value
13- }
146
157data "aws_iam_policy_document" "codepipeline_assume_role" {
168 # iam:GetInstanceProfile
@@ -51,6 +43,9 @@ locals {
5143 var. goss_repo == null ? [] : [var . goss_repo . arn ]
5244 )
5345 codecommit_repo_count = length (local. codecommit_repos )
46+
47+ # Construct bucket ARNs directly since we know the bucket name
48+ assets_bucket_arn = " arn:${ data . aws_partition . current . partition } :s3:::${ var . goss_bucket . name } "
5449}
5550
5651data "aws_iam_policy_document" "codepipeline_policy" {
@@ -73,13 +68,13 @@ data "aws_iam_policy_document" "codepipeline_policy" {
7368 " arn:${ data . aws_partition . current . partition } :s3:::${ var . state . bucket } /*"
7469 ],
7570 var. goss_bucket == null ? [] : [
76- " ${ lookup (data . aws_s3_bucket . assets , var . goss_bucket . name ) . arn } /*"
71+ " ${ local . assets_bucket_arn } /*"
7772 ],
7873 var. ansible_bucket == null ? [] : [
79- " ${ lookup (data . aws_s3_bucket . assets , var . ansible_bucket . name ) . arn } /*"
74+ " ${ local . assets_bucket_arn } /*"
8075 ],
8176 var. packer_bucket == null ? [] : [
82- " ${ lookup (data . aws_s3_bucket . assets , var . packer_bucket . name ) . arn } /*"
77+ " ${ local . assets_bucket_arn } /*"
8378 ]))
8479 }
8580 statement {
0 commit comments