IAM策略不允许EC2访问

时间:2015-04-23 22:27:49

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

我有一个政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1429817158000",
            "Effect": "Allow",
            "Action": [
                "ec2:*"
            ],
            "Resource": [
                "arn:aws:ec2:*"
            ]
        }
    ]
}

附属于一个群体。该组有一个用户。当我使用该用户的凭据登录myloginthing.signin.aws.amazon.com时,我无法执行与EC2相关的任何操作。它为页面上的每个操作提供了诸如“您无权描述运行实例”的消息。

IAM策略模拟器告诉我任何操作都被拒绝,因为

  

隐含拒绝(未找到匹配的陈述)。

我错过了什么?

2 个答案:

答案 0 :(得分:2)

这实际上花了我一段时间来弄明白。

事实证明,您必须将每个操作(在您的示例中为ec2:*)与一组允许的资源(在您的示例中为arn:aws:ec2:*)进行匹配。

问题在于并非每个操作都具有相同的允许资源集 - 因此,虽然您可以为RunInstances使用许多不同的资源,但DescribeInstances仅支持*。

整个列表可用here

(注意:链接发布是因为a)列表非常大,b)它可能会随着时间的推移发生显着变化。

答案 1 :(得分:2)

ec2:*用作允许操作实际上很好,但"arn:aws:ec2:*"是无效的亚马逊资源名称。

"arn:aws:ec2:*"替换为"arn:aws:ec2:::*"或仅"*"应该有效。

请参阅Amazon Resource Names (ARNs) and AWS Service Namespaces