我希望在EC2实例上创建一个web接口,以“关机”和“启动”RDS Aurora集群,因为它一个月只使用2天。
要做到这一点,我必须:
当我运行以下命令时:
aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier testsnap2 --db-cluster-identifier momtransgrinder-cluster我犯了个错误
An error occurred (AccessDenied) when calling the CreateDBClusterSnapshot operation: User: arn:aws:sts::123456789:assumed-role/root/i-47717451 is not authorized to perform: rds:CreateDBClusterSnapshot on resource: arn:aws:rds:us-west-2:123456789:cluster-snapshot:testsnap2但是,当我将角色改为拥有rds:*时,它就能工作了。必须有创建群集快照所需的隐式其他权限?但是哪一个呢?
发布于 2019-02-01 19:15:28
您定义的操作需要与RDS集群以及您创建的快照相关联。当前,您的Resource字段缺少快照项,这就是您看到错误的原因:
not authorized .. on resource: arn:aws:rds:us-west-2:123456789:cluster-snapshot:testsnap因此,如果将集群快照添加为资源目标,如下面所示,则应消除此特定错误。
"Resource": [ "arn:aws:rds:us-west-2:123456789:cluster:momtransgrinder-cluster",
"arn:aws:rds:us-west-2:123456789:cluster-snapshot:testsnap2" ]但是,我建议在快照上提供一个通配符条目,前提是您要创建多个快照,其中的标识符很可能只有在运行时才知道。此外,我发现在快照中添加其他相关操作也是成功的。我不确定rds:CreateDBClusterSnapshot是否足够。总之,考虑到你的情况,我会这样做:
{
"Action": [
"rds:CopyDBClusterSnapshot",
"rds:CopyDBSnapshot",
"rds:CreateDBClusterSnapshot",
"rds:CreateDBSnapshot",
"rds:DeleteDBClusterSnapshot",
"rds:DeleteDBSnapshot",
"rds:DescribeDBClusterSnapshotAttributes",
"rds:DescribeDBClusterSnapshots",
"rds:DescribeDBSnapshots",
"rds:DescribeDBSnapshotAttributes",
"rds:ModifyDBClusterSnapshotAttribute",
"rds:ModifyDBSnapshot",
"rds:ModifyDBSnapshotAttribute"
],
"Resource": [
"arn:aws:rds:us-west-2:123456789:cluster:momtransgrinder-cluster",
"arn:aws:rds:us-west-2:123456789:cluster-snapshot:*"
],
"Effect": "Allow",
"Sid": "CreateSnapshot"
}发布于 2017-05-11 12:43:51
由于要创建的快照是从另一个现有快照中复制的,因此需要在角色中添加一条语句以允许此操作,如:
{
"Action": [
"rds:CopyDBClusterSnapshot",
"rds:CopyDBSnapshot"
],
"Effect": "Allow",
"Resource": "arn:aws:rds:us-west-2:123456789:cluster-snapshot:testsnap2"
}希望能帮上忙!
https://stackoverflow.com/questions/43912315
复制相似问题