Политика загрузки Amazon S3 не поддерживает вариант "версия"

Я хотел предоставить общий доступ ко всем файлам в моем ковше. Несколько ответов SO, включая этот популярный один, указывали, что я должен создать политику.

Итак, я пошел и скопировал вставку и отредактировал имя ресурса и дату версии, но я получаю сообщение об ошибке

Document is invalid: Invalid Version 2014-05-02 - undefined

Я пошел и посмотрел документацию (обратите внимание, что он говорит "последний" ), а приведенный пример

{
  "Version":"2012-10-17",
  "Statement":[{
    "Sid":"PublicReadGetObject",
        "Effect":"Allow",
      "Principal": {
            "AWS": "*"
         },
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::example-bucket/*"
      ]
    }
  ]
}

Я взял это, обновил имя ресурса и повторил попытку. Все еще не сработало: версия не существует.

Затем я замечаю ссылку, которая говорит "генератор политики AWS" в углу диалога. Я заполнил детали, нажал "сгенерировал" и получил что-то вроде этого

{
  "Id": "Policy1399047197120",
  "Statement": [
    {
      "Sid": "Stmt1399047194777",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::mybucketname/*",
      "Principal": {
        "AWS": [
          "AWS"
        ]
      }
    }
  ]
}

И это сработало! Отлично, так что похоже, что они решили отказаться от опции "версия", за исключением всех примеров, которые я видел в SO, и в их примерах эта опция "версия".

Версия для меня не важна, но разве это известное изменение?

Ответ 1

2012-10-17 из примеров - это статическое, постоянное, литеральное выражение даты, указывающее версию языка политики IAM, используемого вашим политическим выражением, - не ваша дата изменения политики.

Здесь можно использовать только два возможных значения: 2012-10-17 и 2008-10-17. Если вы не укажете, предполагается, что вы используете более старую версию, которая имеет более ограниченную функциональность. Любое другое значение представляет собой версию языка политики IAM, которая не существует, и не подходит по этой причине.

http://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Version