授予 IAM 用户访问一个 RDS 实例的权限
Grant an IAM user access to one RDS instance
我创建了一个 RDS 实例,并希望授予我的一位用户访问该 RDS 实例的权限。我想知道如何授予此权限。
我已经在我的 IAM 用户的附加策略中授予了 RDSFULLACESS,然后像这样模拟它:
{
"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": "arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
}
]
}
但是我的用户仍然无法访问这个RDS实例,请问是什么问题?他可以自己做,但我不想让他再做一个!
如有任何帮助,我们将不胜感激。
如果上述策略具有正确的数据库 ARN 并附加到 IAM 用户,则它将允许对 RDS 数据库执行完全管理操作,例如停止数据库或恢复备份。
要明确排除 "Create" 权限,基于此页面上的列表
http://docs.aws.amazon.com/IAM/latest/UserGuide/list_rds.html
例如,包括您确实需要的所有权限。在这种情况下 "Deny" 总是胜过 "Allow"。 "Create" 权限与现有数据库相比没有问题,但不适用于其他地方。
{
"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": "arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
},
{
"Effect": "Deny",
"Action": [
"rds:Create*"
],
"NotResource": [
"arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
]
}
]
}
我没有测试过这个政策,这只是一个例子
如果用户作为数据消费者需要访问数据库,则不会以这种方式进行管理。为此他们需要有两件事
# 通过正确的网络和正确设置的安全组网络访问 RDS 实例
# 数据库的用户帐户凭证
对于mysql,这里描述了初始连接的过程http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html
请查看以下针对单用户单 rds 启停访问的策略。
创建以下策略并在资源部分提供 rds arn。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"rds:AddTagsToResource",
"rds:ListTagsForResource",
"rds:DescribeDBSnapshots",
"rds:DescribeDBEngineVersions",
"rds:DescribeDBParameters",
"rds:DescribeDBParameterGroups",
"rds:StopDBInstance",
"rds:StartDBInstance"
],
"Resource": [
"arn:aws:rds:us-east-1:accountnumber:db:dbidentifier"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"rds:DescribeDBClusterSnapshots",
"rds:DescribeDBInstances"
],
"Resource": "*"
}
]
}
将此策略附加到您要授予访问权限的用户。
我创建了一个 RDS 实例,并希望授予我的一位用户访问该 RDS 实例的权限。我想知道如何授予此权限。
我已经在我的 IAM 用户的附加策略中授予了 RDSFULLACESS,然后像这样模拟它:
{
"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": "arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
}
]
}
但是我的用户仍然无法访问这个RDS实例,请问是什么问题?他可以自己做,但我不想让他再做一个!
如有任何帮助,我们将不胜感激。
如果上述策略具有正确的数据库 ARN 并附加到 IAM 用户,则它将允许对 RDS 数据库执行完全管理操作,例如停止数据库或恢复备份。
要明确排除 "Create" 权限,基于此页面上的列表 http://docs.aws.amazon.com/IAM/latest/UserGuide/list_rds.html 例如,包括您确实需要的所有权限。在这种情况下 "Deny" 总是胜过 "Allow"。 "Create" 权限与现有数据库相比没有问题,但不适用于其他地方。
{
"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": "arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
},
{
"Effect": "Deny",
"Action": [
"rds:Create*"
],
"NotResource": [
"arn:aws:rds:eu-west-1:accountIDofIAMUser:db:instancename"
]
}
]
}
我没有测试过这个政策,这只是一个例子
如果用户作为数据消费者需要访问数据库,则不会以这种方式进行管理。为此他们需要有两件事
# 通过正确的网络和正确设置的安全组网络访问 RDS 实例
# 数据库的用户帐户凭证
对于mysql,这里描述了初始连接的过程http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html
请查看以下针对单用户单 rds 启停访问的策略。
创建以下策略并在资源部分提供 rds arn。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"rds:AddTagsToResource",
"rds:ListTagsForResource",
"rds:DescribeDBSnapshots",
"rds:DescribeDBEngineVersions",
"rds:DescribeDBParameters",
"rds:DescribeDBParameterGroups",
"rds:StopDBInstance",
"rds:StartDBInstance"
],
"Resource": [
"arn:aws:rds:us-east-1:accountnumber:db:dbidentifier"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"rds:DescribeDBClusterSnapshots",
"rds:DescribeDBInstances"
],
"Resource": "*"
}
]
}
将此策略附加到您要授予访问权限的用户。