我需要授予特定区域的完全管理员访问权限(所有AWS资源,而不仅仅是少数资源)。 以下是配置的IAM策略。无论如何访问其他资源,都会产生错误。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"rds:*",
"apigateway:*",
"s3:*",
"lambda:*",
"dynamodb:*",
"ec2:*",
"cognito-idp:*",
"sns:*",
"sqs:*",
"cloudwatch:*",
"cloudfront:*",
"cloudformation:*",
"ses:*",
"codepipeline:*",
"codebuild:*",
"logs:*",
"iam:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "ap-northeast-1"
}
}
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"cloudwatch:DescribeAlarms",
"cloudformation:DescribeStacks",
"logs:DescribeLogGroups",
"logs:CreateLogGroup"
],
"Resource": "*"
}
]
}
答案 0 :(得分:0)
您应该包括所看到的错误以及问题,否则很难为您提供帮助。
尽管我粗略地看了一眼,但是您将iam:*包含在具有区域条件的语句中。 IAM是一项全球资源,因此从表面上我可以看到为什么该政策不起作用(我自己不能尝试)。我会将其分解成一个没有区域条件的单独语句,但随后他们就可以对您整个IAM进行管理员访问(安全性令人恐惧!)。
如果您想提供受限制的管理员,我将首先减少对他们实际需要执行的操作的某些权限(* vs CreateGroup)。然后像示例here "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*"
那样使用命名空间进行委派。您可以将其与属性标记条件结合使用。 Demonstrated here。这将使他们能够相当自由地移动,但仅在某些情况下才可以。话虽如此,限制这些上下文对于您(超级管理员)而言可能变得相当复杂。
可能还有其他需要考虑的事情: