我创建了一个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实例,问题是什么?他可以自己做,但我不想让他再做一个!
任何帮助都将不胜感激。
答案 0 :(得分:0)
如果上述策略具有正确的数据库ARN并附加到IAM用户,那么它将允许对RDS数据库执行完整的管理操作,例如停止数据库或恢复备份。
根据此页面上的列表明确排除“创建”权限 http://docs.aws.amazon.com/IAM/latest/UserGuide/list_rds.html 例如,包括您需要的所有权限。在这种情况下,“拒绝”总是击败“允许”。 <创建'权限与现有数据库相比是可以的,但不适用于其他地方。
{
"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实例进行网络访问
数据库的#user帐户凭据
对于mysql,这里描述了最初连接的过程http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html
答案 1 :(得分:0)
请为单用户单次起止访问找到以下政策。
创建以下策略,并在“资源”部分提供rds信息。
{
"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": "*"
}
]
}
将此策略附加到您要授予访问权限的用户。