[英]Alarm Action “Terminate EC2 Instance” failed
当我启动某种类型的实例时,userdata脚本会通过Boto创建一个指标+警报。 指标正确地将其数据传递到CloudWatch。 如果基于指标的某些条件匹配,则警报应将实例作为操作终止。 在CloudWatch中,警报似乎已正确创建,并且可以根据需要切换警报状态。
但是:执行该操作时,它失败,并显示以下“历史记录”条目:警报从
我已经将策略“ AdministratorAccess”授予了附加到实例的“ userdata”-角色。
有什么提示吗?
问候汤姆
我相信这是问题所在。 从开发人员指南中 :
如果您使用的是IAM角色(例如,Amazon EC2实例配置文件),则无法使用警报操作停止或终止实例。 但是,您仍然可以看到警报状态并执行任何其他操作,例如Amazon SNS通知或Auto Scaling策略。
我最近在AWS论坛上亲自发表了有关此问题的信息: https : //forums.aws.amazon.com/message.jspa?messageID=601951
我刚出现这个问题,似乎已经解决了。
CloudWatch Alarm的与服务相关的IAM角色是AWSServiceRoleForCloudWatchEvents。 我发现其受信任的实体是events.amazonaws.com。 及其信任关系标签中的政策文件,
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
还有我的ec2实例的“ 信任关系”标签中的角色策略文档
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
然后将Trusted实体events.amazonaws.com内容添加到ec2实例的角色策略文档中,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
},
{
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
它将event.amazonaws.com的受信任实体添加到该角色。
然后,CloudWatch Alarm停止实例功能就可以了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.