Bas*_*ers 2 snapshot amazon-web-services amazon-rds amazon-iam aws-cli
我想使用AWS RDS 命令行工具来创建数据库的快照。my-database
create-db-snapshot
我在IAM中创建了一个特殊的备份角色,其策略允许我描述、复制和创建快照。它看起来像这样(我用 x 替换了敏感 ID):
{
"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"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
配置 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"
Run Code Online (Sandbox Code Playgroud)
这会导致一条错误消息:
调用 CreateDBSnapshot 操作时发生客户端错误 (AccessDenied):用户:arn:aws:iam::xxxxxxxxxxxxxx:user/automated-tasks 无权对资源执行:rds:CreateDBSnapshot:arn:aws:rds:eu-west -1:xxxxxxxxxxxxxx:快照:我的数据库备份-24-11-2014-11h07m
我认为这很奇怪,因为它表示拒绝访问具有我为参数指定的名称的资源(--db-snapshot-identifier
与参数相反)--db-instance-identifier
。
如果我有足够的权限来创建应用于实例的快照,那么我本身不应该具有该快照的创建权限吗?
无论如何,我尝试将策略中的资源更改为 RDS 中的所有内容:
"Resource": [
"arn:aws:rds:eu-west-1:xxxxxxxxxxxxxx:*"
]
Run Code Online (Sandbox Code Playgroud)
我希望这会起作用,因为现在我的角色对我帐户的 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:*"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4814 次 |
最近记录: |