Inject a list from var into a policy template

Wanted to inject a list from var into a policy template.

locals {
  buckets = ["arn:aws:s3:::bucket1", "arn:aws:s3:::bucket-2", "arn:aws:s3:::bucket-3"]

resource "aws_sns_topic_policy" "sns-policy" {
  policy = <<POLICY
          "Effect": "Allow",
          "Principal": {"Service":""},
          "Action": "sns:Publish",
          "Resource":  "${aws_sns_topic.sns-topic.arn}",
                  "aws:SourceArn": "${local.buckets})"

What I wanted to achieve is something like …
                  "aws:SourceArn": [

You could see here, I am trying to subscribe events from multiple s3 bucket to this sns topic.
I am not sure how this can be done. Any help would be highly appreciated. I am getting 

Error: Invalid template interpolation value

Tried few option but not having much luck.

It worked when I tried following inside aws_iam_policy_document

 condition {
      test     = "ArnLike"
      variable = "aws:SourceArn"

      values = values(the_buckets)[*].arn