Terraform multiple s3 bucket creation

Viewed 1661

I am trying to create multiple s3 buckets each with different bucket settings. i am Looking for syntax on how to refer the bucket ids of the dynamically created bucket in other bucket resource blocks. New to terraform. looking for sample code or terrraform document for this syntax

Bel0w is sample code for creating bucket from list names

resource "aws_s3_bucket" "this" {
  count=length(var.bucket_names)
  bucket = var.bucket_names[count.index]
  acl="private"

  versioning {
    enabled = var.bucket_versioning
  }
}

In this code i want to refer the dynamically created bucket id's and assign their bucket policy settings. Need the syntax . not sure if this correct

resource "aws_s3_bucket_policy" "this" {
  count=length(var.bucket_names)
  bucket = aws_s3_bucket.this.id[count.index]
  policy = data.aws_iam_policy_document.this.json
}
1 Answers

In your aws_s3_bucket_policy, instead of

bucket = aws_s3_bucket.this.id[count.index]

it should be

bucket = aws_s3_bucket.this[count.index].id

assuming that everything else is correct, e.g. data.aws_iam_policy_document.this.json is valid.

Related