Терраформ плохая политика - PullRequest
0 голосов
/ 29 июня 2018

Здравствуйте. У меня есть следующее определение политики в моей терраформе, но оно продолжает возвращаться как искаженное

resource "aws_iam_role_policy" "task-policy" {
  name   = "docker-flowcell-restore-task-policy"
  role   = "${aws_iam_role.task-role.id}"
  policy = "${file("${path.module}/policies/role-docker-flowcell-restore-${var.environment}-ecs-policy.json")}"
}

Некоторое время пытался найти ошибку в этом.

вот ошибка

aws_iam_role_policy.task-policy: Error putting IAM role policy docker-flowcell-restore-task-policy: MalformedPolicyDocument: Syntax errors in policy.

Вот политика, которая терпит неудачу

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid":"AllowWritesS3",
      "Action": [
        "s3:GetObject",
        "s3:RestoreObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "Temp_name_for_post",
        "Temp_name_for_post"
      ]
    },
    {
      "SID": "Allow for user for upload S3 bucket",
      "Action": [
        "s3:PutObject",
        "s3:AbortMultipartUpload"
      ],
      "Resource":[
        "temp_name_for_post",
        "temp_name_for_post"
      ]
    }
  ]
}

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

К сожалению, AWS не сообщает точно, что такое синтаксические ошибки, поэтому вы должны найти их самостоятельно. Иногда вы можете сделать это на глаз; в других случаях вы можете просто захотеть использовать Консоль AWS, как предложил Джеффри, - и, возможно, убрать каждое утверждение один за другим, а затем повторно проверить, чтобы увидеть, где находится ошибка (это намного быстрее, чем ждать завершения Terraform).

В вашем случае вам необходимо:

  • изменить SID на Sid в вашем втором утверждении
  • изменить значение Sid во втором выражении, чтобы в нем не было пробелов (например, "AllowForUserForUploadS3Bucket")
  • использует действительные S3 ARN вместо "temp_name_for_post", например, "arn:aws:s3:::my-bucket/*" для ссылки на все объекты в сегменте с именем my-bucket

После изменения этих элементов политика теперь подтверждается для меня через Консоль AWS.

0 голосов
/ 29 июня 2018

Похоже, ваша политика iam неверна. Здесь - документы по синтаксису и грамматике iam. Другой вариант, чтобы увидеть, что не так с политикой, - скопировать содержимое этого файла в валидатор политики iam в консоли aws. Поле Sid не является обязательным, но если оно присутствует, оно должно быть уникальным в политике и не может содержать пробелы.

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