AWS - 允许用户启动和停止 EC2 实例

AWS - 允许用户启动和停止 EC2 实例

我在为特定用户创建 IAM 策略以授予启动和停止 EC2 实例的权限时遇到了麻烦。

我尝试了几种方法但找不到错误。

这是我的政策:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "Stmt1468227127000",
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeInstances"
        ],
        "Resource": [
            "*"
        ]
    },
    {
        "Sid": "Stmt1468227157000",
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances"
        ],
        "Resource": [
            "arn:aws:ec2:region:user:instance/instance-ID"
        ]
    }
]

}

正如我所读到的,我无法仅描述一个实例,在第一部分中我描述了我的所有 ec2 实例并且它可以工作,但在第二部分中我允许用户启动和停止一个实例,但我无法启动它。

答案1

这个对我来说很好用。请注意,我添加了一些非常有用(从我的角度来看)的操作,当然,如果不需要,您可以随意删除它们:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": "arn:aws:ec2:us-east-1:361111111111:instance/i-0e411111111111111"
        }
    ]
}

361111111111是您在账户设置中看到的账户ID, i-0e411111111111111也就是实例ID,应该以 开头i-,可以在实例描述选项卡最左上角找到。

请注意,该地区没有可用区。

对于好奇的人:我试图将ec2:Describe*操作限制为arn:aws:ec2:us-east-1:361111111111:instance/*,但这不起作用。我删除了最右边的部分直到它起作用,结果发现"*"只有它起作用。

答案2

尝试 Putnik 的建议对我没有用,这样的事情也没有用。

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

我无法启动或停止 EC2 实例,已停止的实例会短暂地转换为待处理状态,然后最终重新变为已停止状态,并显示一条相当无用的Client.InternalError消息。

但是,添加PassRole到我的政策中就起作用了。

https://aws.amazon.com/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [ "ec2:Describe*" ],
            "Resource": [ "*" ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:361111111111:instance/i-0e411111111111111"
            ],
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*"
        }
    ]
}

答案3

检查您的 ARN。其格式应与本页所示一致http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-ec2

当它说帐户是。这是要 ID 的数字 AWS 帐户

相关内容