我想讓運行在我的EC2實例上的腳本能夠指示自動調整組對它的健康狀態。要做到這一點,我可以運行從我的腳本如下:如何允許具有IAM角色的EC2實例爲itselt設置實例健康狀況?
An error occurred (AccessDenied) when calling the SetInstanceHealth operation: User: arn:aws:sts::ACCOUNTID:assumed-role/ROLENAME/i-INSTANCEID is not authorized to perform: autoscaling:SetInstanceHealth
:
aws --region $AWSREGION \
autoscaling \
set-instance-health \
--instance-id $(curl http://169.254.169.254/latest/meta-data/instance-id) \
--health-status Unhealthy
授予任何特殊權限的IAM角色,我得到以下錯誤(如我期望的)前我可以添加以下語句到我的IAM角色來解決這個問題:
{
"Action": [
"autoscaling:SetInstanceHealth"
],
"Effect": "Allow",
"Resource": "*"
}
但不會說,這一角色的實例來設置實例的健康上的所有實例(假設他們知道實例ID)?我不希望一個受損的實例能夠將其他人從他們自己的ASG中拿走。
此方法可能有效:[根據角色名稱授予對S3資源的訪問權限](http://stackoverflow.com/a/35720528/174777)。它也有使用實例ID的方法。但是,它是硬編碼的而不是變量。 –