2016-08-18 104 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來解決我的問題。這使得使用任何策略都是不必要的,因爲任何系統都可以在其自身上執行關閉操作(並且僅限自己)。