Я хочу использовать Инструмент командной строки 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 :: xxxxxxxxxxxxxx: пользователь / автоматические задачи не авторизованы для выполнения: rds: CreateDBSnapshot на ресурсе: arn: aws: rds: eu-west -1: xxxxxxxxxxxxxx: снимок: my-database-backup-24-11-2014-11h07m
Я подумал, что это было странно, поскольку в нем говорится, что доступ запрещен к ресурсу с именем, которое я указал для --db-snapshot-identifier
аргумент, в отличие от --db-instance-identifier
аргумент.
Если у меня достаточно прав для создания моментального снимка, применяемого к экземпляру в первую очередь, разве я не должен изначально иметь права на создание для этого моментального снимка?
Во всяком случае, я попытался изменить ресурс в политике на все, что находится в RDS:
"Resource": [
"arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:*"
]
Я надеялся, что это сработает, потому что теперь моя роль имеет разрешения на создание снимков для всего в RDS ARN моей учетной записи, но этого не произошло.
Кто-нибудь знает, почему моя команда возвращает ошибку?
Это действительно странно, но похоже, что 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:*"
]
}
]
}