amazon-web-services - 如何创建 IAM 策略以授予特定区域的完全管理员访问权限?
问题描述
我需要为特定区域授予完全管理员访问权限(所有 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": "*"
}
]
}
解决方案
您应该在问题中包含您看到的错误,否则很难为您提供帮助。
尽管我看到您将 iam:* 包含在具有区域条件的语句中,但粗略一瞥。IAM 是一种全球资源,因此从表面上看,我可以看到为什么该策略不起作用(不能自己尝试)。我会将其分解为没有区域条件的单独语句,但随后他们拥有对您的整个 IAM 的管理员访问权限(安全性可怕!)。
如果您想提供受限制的管理员,我会首先将其中一些权限减少到他们实际需要的操作(* vs CreateGroup)。然后像这里 的示例一样使用命名空间进行委托"arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*"
。您可以将其与属性标签条件结合使用。在这里演示。这将允许他们非常自由地移动,但仅限于某些情况下。话虽如此,对于超级管理员来说,限制这些上下文可能会变得相当复杂。
可能还有其他事情需要考虑:
- 他们真的需要 IAM 管理员吗?顺便说一句,为他们制定政策将如何付诸实践?
- 是否可以通过在组织范围内提供一个单独的帐户来解决其中的一些问题?组织可以帮助执行其中一些政策,例如区域限制、预算上限,但对这些帐户的管理员有很大的控制权。
推荐阅读
- wordpress - 使主页上的“部分”可编辑的正确方法是什么?
- python - 具有块自闭功能的python是否已打开资源?
- r - 无法使用 read_excel 在 R 中手动设置 col_types
- php - 如何先排序 ORDER BY id(新消息优先)然后 GROUP BY thread_id
- dht - 在 Kadelmia 中查找节点操作:为什么它从桶中挑选元素而不是查看整个路由表?
- python - 将 DNA 链转换为正则表达式
- python - Django如何从URL隐藏ID
- javascript - 在 React Native 中使用 Redux 注销时出现错误导航器
- mips - 在 MIPS 中使用递归搜索二叉树
- php - 使用 Ionic httpClient POST 到 PHP API 不发送任何数据