用户对 Amazon RDS 数据库实例执行创建、删除、修改、备份和恢复操作需要哪些最低权限?
我想向我的 AWS Identity and Access Management (IAM) 用户授予管理 Amazon Relational Database Service (Amazon RDS) 数据库实例所需的最低权限。
解决方案
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要配置 IAM 用户对您的 RDS 数据库实例的访问权限,请完成以下步骤:
- 打开 IAM 控制台。
- 在导航窗格中,选择 Users(用户)。
- 选择 Add user(添加用户),然后输入用户名。
- 对于 Access type(访问类型),选择 AWS Management Console access(AWS 管理控制台访问),然后创建一个密码以使用 Amazon RDS 控制台。要提供对 AWS CLI 的访问权限,请选择 Programmatic access(编程访问)。
**重要事项:**对于 Programmatic access(编程访问),请选择 Download.csv 以下载访问密钥 ID 和秘密访问密钥。稍后您将需要这些密钥来创建安全令牌。 - 查看权限和标签,然后选择 Create user(创建用户)。
**注意:**这将创建一个具有 IAMUserChangePassword 策略的 IAM 用户。 - 针对要在 Amazon RDS 中执行的所需操作创建 IAM 策略。
- 将 IAM 策略添加到您的用户。
IAM 策略示例
以下示例策略提供执行指定操作所需的最低权限。您可能会在 Amazon RDS 控制台中看到错误,原因是策略中不存在所需的权限。例如,您可能会看到 IAMUser is not authorized to perform: rds:Action(IAMUser 无权执行 rds:Action)错误消息。
Describe(描述)操作可能会出现错误,但该错误不会影响您执行这些操作的能力。为避免出现错误,请修改以下示例 IAM 策略或使用 AWS CLI 来执行操作。
创建和删除 RDS 数据库实例
要允许用户创建未激活加密的 RDS 数据库实例,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "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": [ { "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": [ { "Effect": "Allow", "Action": [ "rds:DeleteDBInstance", "rds:DescribeDBInstances" ], "Resource": "*" } ] }
要允许用户创建和删除 RDS 数据库实例,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "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": [ { "Effect": "Allow", "Action": [ "rds:StopDBInstance", "rds:StartDBInstance", "rds:Describe*" ], "Resource": "*" } ] }
执行备份和恢复
要允许用户创建数据库快照,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*", "rds:CreateDBSnapshot" ], "Resource": "*" } ] }
要允许用户恢复使用数据库快照的 RDS 数据库实例,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:RestoreDBInstanceFromDBSnapshot" ], "Resource": "*" } ] }
要允许用户执行时间点故障恢复,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:RestoreDBInstanceToPointInTime" ], "Resource": "*" } ] }
修改 RDS 数据库实例
要允许用户更改数据库实例类类型、分配的存储空间、存储类型以及实例版本,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:ModifyDBInstance" ], "Resource": "*" } ] }
激活增强监控和性能详情
当使用 iam:PassRole 时,通配符 (*) 过于宽松,因为它允许对所有资源具有 iam:PassRole 权限。最佳做法是指定 ARN。
要允许用户激活增强监控,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:ListRoles", "rds:ModifyDBInstance", "rds:Describe*", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::AccountID:role/rds-monitoring-role" } ] }
**注意:**确保将 AccountID 替换为每个接收增强监控角色的用户。
要允许用户激活性能详情,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:ModifyDBInstance", "ec2:Describe*", "rds:Describe*", "pi:*" ], "Resource": "*" } ] }
创建、修改和删除数据库参数组和数据库选项组
要允许用户创建、修改或删除数据库参数组和选项组,请使用以下策略:
{ "Version": "2012-10-17", "Statement": [ { "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": [ { "Effect": "Allow", "Action": [ "rds:Describe*", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" } ] }
相关信息

相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 9 个月前
- AWS 官方已更新 2 年前