2016-08-18 79 views
1

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

我试着用下面的政策

{ 
    "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}

有没有一种方法可以让一个实例停止本身(而且只)?如果是这样,我该怎么做?

+1

您不能在脚本中使用操作系统的shutdown命令,而不是使用AWS CLI? –

+0

啊,当然,我怎么会忘记!请发布这个答案,然后我会接受它。对我来说,这肯定会奏效。但是,我可以想到其他人不想使用关机的两个原因。 1.关机只能用root权限执行,所以你需要sudo权限才能这样做。 2.如果实例的关闭行为将被终止,您将失去实例而不是停止它。 – user1834095

回答

0

正如Mark B在评论中所建议的,我通过将脚本更改为使用shutdown而不是aws ec2 stop-instances来解决我的问题。这使得使用任何策略都是不必要的,因为任何系统都可以在其自身上执行关闭操作(并且仅限自己)。