AWS IAM:允许EC2实例自行停止

时间:2016-08-18 12:53:27

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

我正在尝试允许我们的AWS账户中的所有EC2实例自行停止(使用使用aws cli的自动脚本)。我尝试通过使用propper策略创建AWS IAM角色来实现此目的。但是,我找不到如何将策略定义为仅允许实例自行停止(而不是其他实例)。

我尝试了以下政策

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

但是在验证时,这给了我错误This policy contains the following error: The following resources are invalid : ${ec2:SourceInstanceARN}

有没有办法允许实例自行停止(只有自己)?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:1)

关机行为可以解决终止问题,但在其他情况下,可能需要限制对API请求的访问(即自标记)。因此,这是使用IAM策略的解决方案:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteTags",
                "ec2:DescribeTags",
                "ec2:CreateTags",
                "ec2:TerminateInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ARN": "${ec2:SourceInstanceARN}"
                }
            }
        }
    ]
}

答案 1 :(得分:0)

正如Mark B在评论中所说,我通过将脚本更改为使用shutdown而不是aws ec2 stop-instances来解决了我的问题。这使得任何策略的使用都不必要,因为任何系统都可以自己执行shutdown(并且只能自己执行)。