Как добавить комментарий к политике json jam?

Политика IAM - это сложные животные. Было бы неплохо добавить комментарий при их создании. Например,

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1422979261000",
      "Effect": "Allow",
      "Action": [
        "route53:ListHostedZones",
      ],
      "Comment": "Foo"
      # or Bar
      "Resource": [
        "*"
      ]
    }
  ]
}

Ни одна из этих работ не работает. Существует ли способ добавить комментарии к этим политикам?

Ответы

Ответ 1

Нет. Как правило, комментарии в том виде, как вы их описываете , не допускаются в JSON. Чтобы эффективно создать комментарий, вам нужно будет добавить новый элемент, который описывает комментарии. Поскольку AWS является хозяином этого объекта json, они будут нести ответственность за это.

В настоящее время они допускают только следующие элементы:

  • Версия
  • Я бы
  • утверждение
  • Sid
  • эффект
  • принципал
  • NotPrincipal
  • действие
  • NotAction
  • Ресурс
  • NotResource
  • Состояние

Ответ 2

Hyper Anthony answer верен в строгом смысле слова, однако в большинстве ситуаций вы можете хотя бы использовать Sid для псевдо-комментариев для общения намерение или любые ограничения и т.д.:

Сид (идентификатор оператора) является необязательным идентификатором , который вы предоставляете для оператора политики. Вы можете назначить значение Sid для каждого оператора в массиве операторов. В службах, которые позволяют указать элемент ID, такой как SQS и SNS, значение Sid является всего лишь идентификатором идентификатора документа политики. В IAM значение Sid должно быть уникальным в рамках политики. [акцент мой]

Это, например, иллюстрируется использованием TheseActionsSupportResourceLevelPermissions в (очень полезном) сообщении блога AWS Демистификация разрешений на уровне ресурсов EC2:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "TheseActionsSupportResourceLevelPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:TerminateInstances",
                "ec2:StopInstances",
                "ec2:StartInstances"
            ],
            "Resource": "arn:aws:ec2:us-east-1:accountid:instance/*"
        }
    ]
}
  • Как упоминалось в Sid, некоторые службы могут потребовать этот элемент и иметь для него требования к уникальности, но я еще не испытывал результирующих ограничений именования.