На главную

DevOps и серверы

Политика AWS IAM

Собирает документ политики из Effect, Action, Resource и Condition — и тут же объясняет по-русски, что она на самом деле разрешает.

Блоки политики

Condition

policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadBucket",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ]
    }
  ]
}

Что эта политика разрешает

  • Блок 1. Разрешает действия (2) в сервисе s3 для 2 ресурсов.
  • Блок 1: без Condition правило действует всегда и отовсюду.

Правила, о которые спотыкаются

  • · Deny всегда сильнее Allow: явный запрет не отменяется никакой другой политикой.
  • · Без Allow ничего не разрешено — по умолчанию запрещено всё.
  • · У S3 два разных ARN: arn:aws:s3:::bucket — сам бакет (для ListBucket), arn:aws:s3:::bucket/* — объекты в нём (для GetObject).
  • · Права на IAM (iam:AttachUserPolicy и родственники) означают возможность выдать себе любые другие права.