AWS RDS CLI: Access Denied при CreateDBSnapshot

AWS RDS CLI: Access Denied при CreateDBSnapshot

Я хочу использоватьИнструмент командной строки AWS RDSчтобы создать снимок моей базы данных, my-databaseиспользуяcreate-db-snapshot.

Я создал специальную резервную роль вЯс политикой, которая позволяет мне описывать, копировать и создавать снимки. Выглядит это так (я заменил чувствительные идентификаторы на x):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmtxxxxxxxxxxxxxx",
      "Effect": "Allow",
      "Action": [
        "rds:CopyDBSnapshot",
        "rds:CreateDBSnapshot",
        "rds:DescribeDBSnapshots",
        "rds:DescribeEventCategories",
        "rds:DescribeEvents"
      ],
      "Resource": [
        "arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:db:my-database"
      ]
    }
  ]
}

После настройки инструментов CLI с помощьюaws configureи введя ключи для этого пользователя, я попытался сделать снимок, выполнив эту команду:

aws rds create-db-snapshot \
    --db-snapshot-identifier "my-database-backup-$(date +%d-%m-%Y-%Hh%Mm)" \
    --db-instance-identifier "my-database"

В результате появляется сообщение об ошибке:

Произошла ошибка клиента (AccessDenied) при вызове операции CreateDBSnapshot: Пользователь: arn:aws:iam::xxxxxxxxxxxxxxx:user/automated-tasks не имеет прав на выполнение: rds:CreateDBSnapshot на ресурсе: arn:aws:rds:eu-west-1:xxxxxxxxxxxxxxx:snapshot:my-database-backup-24-11-2014-11h07m

Мне это показалось странным, так как здесь говорится, что доступ к ресурсу с именем, которое я указал для --db-snapshot-identifierаргумента, запрещен, а не к --db-instance-identifierаргументу.

Если у меня достаточно прав для создания снимка, применяемого к экземпляру в первую очередь, разве у меня не должно быть изначально прав на создание этого снимка?

В любом случае, я попробовал изменить ресурс в политике на все, что находится в пределах RDS:

"Resource": [
    "arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:*"
]

Я надеялся, что это сработает, поскольку теперь у моей роли есть разрешения на создание моментальных снимков для всего в пределах RDS ARN моей учетной записи, но этого не произошло.

Кто-нибудь знает, почему моя команда возвращает ошибку?

решение1

Это действительно странно, но, похоже, разрешение CreateDBSnapshotтакже должно быть назначено целевому снимку.

Эта политика работает:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmtxxxxxxxxxxxxxx",
            "Effect": "Allow",
            "Action": [
                "rds:CreateDBSnapshot"
            ],
            "Resource": [
                "arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:db:my-database",
                "arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:snapshot:*"
            ]
        }
    ]
}

Связанный контент