自动对EC2实例运行操作以响应中的事件 AWS Health - AWS Health

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自动对EC2实例运行操作以响应中的事件 AWS Health

您可以自动执行操作,以响应 Amazon EC2 实例的计划事件。当 AWS Health 向您的 AWS 账户发送事件时,您的 EventBridge 规则可以调用目标(例如 Automati AWS Systems Manager on 文档)来代表您自动执行操作。

例如,当为由亚马逊EC2弹性区块存储 (AmazonEBS) 支持的EC2实例安排亚马逊实例停用事件时, AWS Health 会将AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED事件类型发送到您的 AWS Health 控制面板。当规则检测到此事件类型后,您可以自动停止和启动实例。这样,将不必手动执行这些操作。

注意

要自动对您的亚马逊EC2实例执行操作,这些实例必须由 Systems Manager 管理。

有关更多信息,请参阅《亚马逊EC2EC2用户指南》 EventBridge中的 “实现亚马逊自动化”。

先决条件

必须先创建 AWS Identity and Access Management (IAM) 策略、创建IAM角色并更新角色的信任策略,然后才能创建规则。

按照此步骤为您的角色创建客户管理型策略。此策略授予角色代表您执行操作的权限。此过程使用IAM控制台中的JSON策略编辑器。

创建 IAM策略
  1. 登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择策略

  3. 选择创建策略

  4. 选择JSON选项卡。

  5. 复制以下内容,JSON然后在编辑器JSON中替换默认值。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstanceStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:*:*:Automation*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/AutomationEVRole" } ] }
    1. Resource参数中,在 Amazon 资源名称 (ARN) 中,输入您的 AWS 账户 ID。

    2. 您也可以替换角色名称或使用默认名称。此示例使用 AutomationEVRole.

  6. 选择下一步:标签

  7. (可选)您可以使用标签作为键值对将元数据添加到策略。

  8. 选择 下一步: 审核

  9. 在 “查看策略” 页面上,输入名称,例如 AutomationEVRolePolicy 以及可选的描述

  10. 查看 Summary(摘要)页面,以查看策略允许的权限。如果您对策略感到满意,请选择 创建策略

此策略定义角色可以执行的操作。有关更多信息,请参阅《IAM用户指南》中的创建IAM策略(控制台)

创建策略后,必须创建一个IAM角色,然后将该策略附加到该角色。

为 AWS 服务创建角色
  1. 登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色,然后选择创建角色

  3. 对于Select type of trusted entity(选择受信任实体的类型),选择 AWS service(服务)

  4. EC2为要允许担任此角色的服务进行选择。

  5. 选择下一步: 权限

  6. 输入您创建的策略名称,例如 AutomationEVRolePolicy,然后选中策略旁边的复选框。

  7. 选择下一步:标签

  8. (可选)您可以使用标签作为键值对将元数据添加到角色。

  9. 选择 下一步: 审核

  10. 在 “角色名称” 中,输入 AutomationEVRole。 此名称必须与您创建的IAM策略中显示ARN的名称相同。

  11. (可选)对于 Role description(角色描述),输入角色的描述。

  12. 检查角色,然后选择创建角色

有关更多信息,请参阅《IAM用户指南》中的为 AWS 服务创建角色

最后,您可以更新所创建角色的信任策略。您必须完成此过程,才能在 EventBridge 控制台中选择此角色。

要更新该角色的信任策略
  1. 登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 在您 AWS 账户中的角色列表中,选择您创建的角色的名称,例如 AutomationEVRole.

  4. 选择 信任关系 选项卡,然后选择 编辑信任关系

  5. 对于 Policy D oc umentJSON,复制以下内容,删除默认策略,然后将复制JSON的策略粘贴到原处。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 选择更新信任策略

有关更多信息,请参阅《IAM用户指南》中的修改角色信任策略(控制台)

为创建规则 EventBridge

按照此过程在 EventBridge 控制台中创建规则,以便您可以自动停止和启动计划停用的EC2实例。

为 Systems EventBridge Manager 自动操作创建规则
  1. 打开亚马逊 EventBridge 控制台,网址为https://console.aws.amazon.com/events/

  2. 在导航窗格中的 Events(事件)下,选择 Rules(规则)。

  3. 创建规则页面上,输入规则的 名称描述

  4. Define pattern(定义模式)下,选择 Event pattern(事件模式),然后选择 Pre-defined pattern by service(按服务预定义的模式)。

  5. 对于 Service provider(服务提供商),选择 AWS

  6. 对于 服务名称,选择 运行状况

  7. 对于 事件类型,选择 特定运行状况事件

  8. 选择 “特定服务”,然后选择EC2

  9. 选择特定事件类型类别,然后选择scheduledChange

  10. 选择 特定事件类型代码,然后选择事件类型代码。

    例如,对于由 Amazon EC2 EBS 支持的实例,选择AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED。对于 Amazon EC2 实例存储支持的实例,请选择。AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED

  11. 选择 Any resource(任何资源)

    您的 事件模式类似于以下示例。

    { "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
  12. 添加 Systems Manager Automation 文档目标。在 “选择目标” 下的 “目标” 中,选择 “SSM自动化”。

  13. 对于 Document(文档),选择 AWS-RestartEC2Instance

  14. 展开 配置自动化参数,然后选择 输入转换器

  15. 输入路径字段中输入 {"Instances":"$.resources"}

  16. 对于第二个字段,输入 {"InstanceId": <Instances>}

  17. 选择 “使用现有角色”,然后选择您创建的IAM角色,例如 AutomationEVRole.

    您的目标应类似于以下示例。

    EventBridge 控制台中 “SSM自动化” 示例的屏幕截图。
    注意

    如果您没有具有必需权限EC2和 Systems Manager 权限以及信任关系的现有IAM角色,则您的角色将不会出现在列表中。有关更多信息,请参阅 先决条件

  18. 选择创建

    如果您的账户中发生了符合您规则的事件,则 EventBridge 会将该事件发送给您的指定目标。