Aws IAM对特定区域和特定服务器的用户权限

时间:2014-11-24 08:49:33

标签: amazon-web-services amazon-ec2 amazon-iam

我想为新创建的IAM用户设置权限,以便用户只能访问给定区域中的特定ec2实例。

例如。我有三个ec2实例在aws us-east中运行,即N. Virginia 我希望限制用户重启,启动和停止只有1个ec2服务器

我写了一个类似下面的政策,但它不起作用。我不确定我在这里缺少什么。

{

"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "TheseActionsSupportResourceLevelPermissions",
        "Effect": "Allow",
        "Action": [
            "ec2:StopInstances",
            "ec2:StartInstances",
            "ec2:RebootInstances",
            "ec2:Describe*"
        ],
        "Resource": "arn:aws:ec2:us-east-1:accountid:instance/i-d4f1b83a"
    }
]

}

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您的政策有效。我测试了它并成功使用它来启动特定的实例。

有些注意事项:

  • 资源部分,请务必将accountid替换为您自己的12位帐户ID(可在“结算/帐户”页面中找到)
  • IAM仅支持limited number of resource-specific API calls。包含停止,启动和重新启动,但描述调用不是特定于资源的。

可以通过政策定义旁边的模拟政策链接测试IAM政策,该链接指向 Policy Simulator 。这是调试权限问题的绝佳工具。

答案 1 :(得分:0)

我做过这样的事情对我有所帮助。但仍然所有资源都是IAM用户可见的,我实际上并不想要。任何进一步的答案都将是一个很大的帮助。



{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": "arn:aws:ec2:us-west-1:accountid:instance/instance-id",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Name": "Test"
                }
            }
        }
    ]
}