用户执行 Amazon RDS 数据库实例的创建、删除、修改、备份和还原需要哪些最低权限?

上次更新时间:2019 年 12 月 30 日

我想要限制我为 AWS Identity and Access Management (IAM) 用户授予的 Amazon Relational Database Service (Amazon RDS) 数据库实例访问权。如何授予 IAM 用户执行 Amazon RDS 数据库实例的特定操作所需的最低权限?

解决方法

1.    打开 IAM 控制台,然后从导航窗格中选择用户

2.    选择添加用户,然后输入用户名

3.    对于访问类型,请选择 AWS 管理控制台访问权并创建使用 Amazon RDS 控制台的密码。要提供对 AWS 命令行界面 (AWS CLI) 的访问权,请选择编程访问

重要提示:对于编程访问,请务必通过选择 Download.csv 来下载访问密钥 ID 和秘密访问密钥。您需要密钥稍后创建安全令牌。

4.    查看权限和标签,然后选择创建用户。将创建一个具有 IAMUserChangePassword 策略的 IAM 用户。

5.    为您希望在 Amazon RDS 中执行的操作创建 IAM 策略

6.    返回 IAM 控制台,然后从导航窗格中选择用户

7.    选择您创建的 IAM 用户。

8.    从权限选项卡中,选择添加内联策略

9.    选择 JSON 选项卡,并基于您的使用案例输入以下一项或多项策略。

注意:以下策略提供执行指定操作所需的最低权限。由于此权限不存在于策略中,您可能会在 Amazon RDS 控制台中看到错误(如 IAMUser 未被授权执行:rds:Action)。此错误通常会发生在“描述”操作上。此错误可预料,它不会影响您执行操作的能力。要避免此错误,您可以修改以下示例 IAM 策略,或者可以通过使用 AWS CLI 来执行操作。

创建和删除 RDS 数据库实例

以下策略允许用户在不启用加密的情况下创建 RDS 数据库实例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeSubnets",
                "rds:Describe*",
                "rds:ListTagsForResource",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup"
            ],
            "Resource": "*"
        }
    ]
}

以下策略允许用户在启用加密的情况下创建 RDS 数据库实例:

{
        "Version": "2012-10-17",
        "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeSubnets",
                "rds:Describe*",
                "rds:ListTagsForResource",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup",
                "kms:ListAliases"
                ],
            "Resource": "*"
        }
    ]
}

以下策略允许用户删除 RDS 数据库实例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:DeleteDBInstance",
                "rds:DescribeDBInstances"
            ],
            "Resource": "*"
        }
    ]
}

以下策略允许用户创建和删除 RDS 数据库实例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeSubnets",
                "rds:Describe*",
                "rds:ListTagsForResource",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup",
                "rds:DeleteDBInstance"
            ],
            "Resource": "*"
        }
    ]
}

停止和启动 RDS 数据库实例

以下策略允许用户停止和启动 RDS 数据库实例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:StopDBInstance",
                "rds:StartDBInstance",
                "rds:Describe*"
            ],
            "Resource": "*"
        }
    ]
}

执行备份和恢复(创建数据库快照、从数据库快照恢复数据库实例和时间点恢复)

以下策略允许用户创建数据库快照:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:Describe*",
                "rds:CreateDBSnapshot"
            ],
            "Resource": "*"
        }
    ]
}

以下策略允许用户使用数据库快照恢复 RDS 数据库实例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:*",
                "rds:Describe*",
                "rds:RestoreDBInstanceFromDBSnapshot"
            ],
            "Resource": "*"
        }
    ]
}

以下策略允许用户执行时间点恢复:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:RestoreDBInstanceToPointInTime"
            ],
            "Resource": "*"
        }
    ]
}

修改 RDS 数据库实例

以下策略允许用户更改数据库实例类的类型、分配的存储、存储类型和存储版本:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:ModifyDBInstance"
            ],
            "Resource": "*"
        }
    ]
}

启用增强监控和性能详情

以下策略允许用户启用增强监控:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PassRole",
                "rds:ModifyDBInstance",
                "rds:Describe*",
                "ec2:Describe*"
            ],
            "Resource": "*"
        }
    ]
}

以下策略允许用户启用性能详情:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "pi:*"
            ],
            "Resource": "*"
        }
    ]
}

创建、修改和删除数据库参数组和数据库选项组

以下策略允许用户创建、修改或删除数据库参数组和选项组:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:CreateDBParameterGroup",
                "rds:ModifyDBParameterGroup",
                "rds:DeleteDBParameterGroup",
                "rds:CreateOptionGroup",
                "rds:ModifyOptionGroup",
                "rds:DeleteOptionGroup"
            ],
            "Resource": "*"
        }
    ]
}

从 Amazon RDS 控制台查看 Amazon CloudWatch 指标

以下策略允许用户从 Amazon RDS 控制台查看 CloudWatch 指标:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "rds:Describe*",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics"
            ],
            "Resource": "*"
        }
    ]
}

10.    选择查看策略

11.    输入策略的名称,然后选择创建策略