首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该授予IAM什么权限才能创建和管理实例?

我应该授予IAM什么权限才能创建和管理实例?
EN

Stack Overflow用户
提问于 2015-03-06 18:12:50
回答 1查看 69关注 0票数 1

我想创建一个IAM用户,该用户可以创建新实例并完全管理它们(包括终止它们),但不能访问任何其他实例。我尝试了以下操作( iam用户名为auto-provision):

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource":"*"
        },
        {
            "Effect":"Allow",
            "Action":["ec2:*"],
            "Resource":"*",
            "Condition": {
                "StringEquals": {
                    "ec2:Owner": "auto-provision"
                }
            }
        }

  ]
}

这并不像预期的那样工作。用户可以很好地创建实例,但无权对其进行管理。我假设我在最后一条语句中的Condition不起作用,因为“所有者”是整个帐户而不是用户?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 20:28:24

我找到了一个解决这个问题的方法,在评论中有来自Assaf Lavie的一些建议。

首先,我创建了一个名为auto-provision-placement-group的置放群组。然后,我将策略文件更改为类似以下内容:

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateTags",
                "ec2:DeleteTags"
            ],
            "Resource":"*"
        },
        {
            "Effect":"Allow",
            "Action":["ec2:*"],
            "Resource":"*",
            "Condition": {
                "StringEquals": {
                    "ec2:PlacementGroup": "arn:aws:ec2:eu-west-1:111111111111:placement-group/auto-provision-placement-group"
                }
            }
        }

  ]
}

启动新实例时,我会分配相关的置放群组。例如(使用Ruby雾):

代码语言:javascript
复制
fog.compute.servers.create(:placement_group => 'auto-provision-placement-group', ...)

将服务器创建到置放组中,然后使用置放组来控制对大多数功能的访问。我故意允许完全访问标记,因为我使用它来识别机器的所有权。然后,置放组就变成了我的“访问控制”。

一个黑客,但它是有效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28896582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档