我想让用户仅在一个 RDS 实例上具有完全访问权限



>我尝试使用此策略:

{
  "Version":"2012-10-17",  
  "Statement":[{
    "Effect":"Allow",
    "Action":"rds:*",
    "Resource":"arn:aws:rds:sa-east-1:442617300818:db:databasename"
    }]
}

回应是:

User: arn:aws:iam::442617300818:user/wa-DB-developers 不是 授权执行:RDS:DescribeDBInstances (服务:AmazonRDS; 状态代码:403;错误代码:访问被拒绝;请求 ID: 5F1E86C6-8145-11E4-9598-27C541A5A3A7)

谢谢!

可以使用 IAM 策略模拟器调试策略。

模拟器允许您选择用户、操作(例如 DescribeDbInstances)和资源,然后确定是否允许用户对该资源调用该操作。

在您的特定情况下,由于策略仅授予对特定 RDS 实例的权限,因此在不指定特定实例的情况下调用DescribeDBIntances将失败。

例如,从 CLI 中,这将失败:

aws rds describe-db-instances

但是,这将起作用:

aws rds describe-db-instances --db-instance-identifier databasename

这是因为您尚未授予查看所有数据库的权限。仅查询策略已授予访问权限的特定数据库将成功。

这对

我有用。这种方式允许用户查看所有数据库,然后拒绝访问您不希望用户进行调整的数据库。用户将能够看到其他实例,但无法影响它们。 他们甚至无法看到日志、标签等。

   {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "rds:*",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:GetMetricStatistics",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "sns:ListSubscriptions",
                "sns:ListTopics",
                "logs:DescribeLogStreams",
                "logs:GetLogEvents"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "rds:*"
            ],
            "Resource": "arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
        }
    ]
}

您可能遇到的唯一问题是,如果您有许多实例需要删除访问权限,除此之外,只要您同意用户看到其他数据库的整体视图,您应该很高兴。

相关内容

  • 没有找到相关文章

最新更新