Политика AWS должна содержать допустимую строку версии

Я получаю сообщение об ошибке "Эта политика содержит следующую ошибку: политика должна содержать допустимую строку версии. Для получения дополнительной информации о грамматике политики IAM" даже я включил версию в свою политику при попытке создать новую политику в AWS. Моя политика

{
  "Version": "2015-06-19",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::repo.com",
        "arn:aws:s3:::repo.com/*"
      ]
    }
  ]
}

Ответы

Ответ 1

Похоже, что "Версия" - это не версия политики, которую я собираюсь создать, но номер версии установки с помощью AWS.

Как указано в документации AWS, версия может быть (version_block = "Version": ( "2008-10-17" | "2012-10-17" ). Поэтому я изменил ее на 2012-10-17, а политика принимается.

Ответ 2

Согласно https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Version:

"Элемент Version должен находиться перед элементом Statement. Допустимы только следующие значения:

  • 2012-10-17. Это текущая версия языка политики, и вы должны использовать этот номер версии для всех политик.
  • 2008-10-17. Это была более ранняя версия языка политики. Вы можете увидеть эту версию в существующих политиках. Не используйте эту версию для каких-либо новых политик или существующих политик, которые вы обновляете. "

Ответ 3

Вы также можете создать свою собственную политику, используя опцию создания политики, которую вы можете найти в нижней части вкладки Bucket Policy.

enter image description here

При нажатии на эту опцию вы будете перенаправлены на нижеуказанный URL:

https://awspolicygen.s3.amazonaws.com/policygen.html