Синтаксис Terraform aws_s3_bucket_policy неясен - PullRequest
0 голосов
/ 30 октября 2018

В документации terraform нам предоставляется разметка, которая прилагается ниже. Я не могу найти упоминания о том, какова цель поля "b" и как его следует использовать в целом.

resource "aws_s3_bucket" "b" {
  bucket = "my_tf_test_bucket"
}

resource "aws_s3_bucket_policy" "b" {
  bucket = "${aws_s3_bucket.b.id}"
  policy =<<POLICY
{
  "Version": "2012-10-17",
  "Id": "MYBUCKETPOLICY",
  "Statement": [
    {
      "Sid": "IPAllow",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::my_tf_test_bucket/*",
      "Condition": {
         "IpAddress": {"aws:SourceIp": "8.8.8.8/32"}
      } 
    } 
  ]
}
POLICY
}

1 Ответ

0 голосов
/ 30 октября 2018

"b" - это просто НАИМЕНОВАНИЕ создаваемого вами ресурса.

Ресурсы Terraform определены в «блоках», и каждый блок ресурсов создает ресурс с заданным типом TYPE (первый параметр) и NAME (второй параметр). Комбинация типа и имени должна быть уникальной.

Итак, в вашем примере вы создаете ресурс типа TYPE aws_s3_bucket и NAME b.

Каждый определенный ресурс имеет id, который можно использовать для ссылки на этот ресурс в других ресурсах, используя синтаксис, такой как TYPE.NAME.id, например ${aws_s3_bucket.b.id}

Вы можете найти дополнительную информацию в документе здесь: https://www.terraform.io/docs/configuration/resources.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...