Amazon Web Services Systems Manager Automation - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon Web Services Systems Manager Automation

注意

自动化文档现在称为运行手册。

自动化,一种Amazon Web Services Systems Manager,简化了 Amazon Elastic Compute Cloud (Amazon EC2) 实例和其他Amazon资源的费用。Automation 可帮助您执行以下操作:

  • 构建 Automation 以配置和管理实例以及Amazon资源的费用。

  • 创建自定义 Runbook 或使用由Amazon。

  • 使用 Amazon EventBridge 接收有关 Automation 任务和运行手册的通知。

  • 使用 Systems Manager 控制台监控 Automation 进度和详细信息。

主要组件

Systems Manager ement Automation 使用以下组件运行实现自动化

概念 详细信息

自动化操作手册

Systems Manager Automation 运行手册定义了 Automation(Systems Manager 在托管实例和Amazon资源)。Automation 包含几个预定义的运行手册,您可以用它们来执行常见任务,例如重启一个或多个 Amazon EC2 实例,或创建Amazon Machine Image(AMI)。您也可以创建自己的 Runbook。运行手册使用 JavaScript Object Notation (JSON) 或 YAML,并包括您指定的步骤和参数。步骤按先后顺序运行。有关更多信息,请参阅 使用运行手册

运行手册是 Systems Manager 文档类型Automation,而不是CommandPolicySession文档中)。Runbook 当前支持 0.3 版架构。命令文档使用 1.2、2.0 或 2.2 版本的架构。策略文档使用 2.0 或更高版本的架构。

Automation 操作

Runbook 中定义的自动化包括一个或多个步骤。每步都与特定操作相关。此操作确定本步的输入、行为和输出。步骤定义在mainSteps部分。Automation 支持 20 种不同的操作类型。有关更多信息,请参阅 Systems Manager Automation 操作参考

自动化配额

EAPYAmazon Web Services 账户可以同时运行 100 个自动化。这包括子自动化(由其他自动化启动的自动化)和速率控制自动化。如果您尝试运行的自动化自动化多于此数量,Systems Manager 会将额外的自动化添加到一个队列中,状态显示为 “待处理”。有关运行自动化的更多信息,请参阅运行简单的 Automation

Automation 队列配额

如果尝试运行的自动化数量超过并发自动化限制,后续自动化将添加到队列中。EAPYAmazon Web Services 账户可以对 1,000 个自动化进行排队。Automation 完成(或达到最终状态)后,队列中的第一个 Automation 将启动。

速率控制自动化配额

EAPYAmazon Web Services 账户可以同时运行 25 个速率控制自动化。如果您尝试运行的自动化多于并发费率控制自动化限制,Systems Manager 会将后续费率控制自动化添加到一个队列中,状态显示为 “待处理”。有关运行速率控制自动化的更多信息,请参阅。运行使用目标和速率控制的 Automation

速率控制自动化队列配额

如果尝试运行的自动化数量超过并发速率控制自动化限制,后续自动化将添加到队列中。EAPYAmazon Web Services 账户可以对 1000 个速率控制自动化进行排队。Automation 完成(或达到最终状态)后,队列中的第一个 Automation 将启动。

Automation 使用案例

本节包括 Systems Manager 自动化的常见使用案例。

执行常见 IT 任务

自动化可以简化常见 IT 任务,例如更改一个或多个实例的状态(使用批准自动化)以及根据计划管理实例状态。下面是一些示例:

  • 使用AWS-StopEC2InstanceWithApprovalrunbook 请求一个或多个 AWS Identity and Access Management (IAM) 用户批准实例停止操作。在获得批准后,Automation 将停止实例。

  • 使用AWS-StopEC2Instancerunbook 通过使用 Amazon EventBridge 或使用维护时段任务按计划自动停止实例。例如,您可以配置自动化以在每个星期五晚上停止实例,然后在每个星期一早晨重新启动这些实例。

  • 使用AWS-UpdateCloudFormationStackWithApprovalrunbook 来更新通过使用Amazon CloudFormation模板。更新会应用新模板。在更新开始之前,您可以配置 Automation 以请求由一个或多个 IAM 用户批准。

有关如何使用状态管理器运行一个运行手册的信息,请参阅使用状态管理器运行触发器的自动化

安全地批量执行中断性任务

Systems Manager 包含可通过使用 Amazon EC2 标签帮助您确定大型目标实例组的功能以及可根据您定义的限制帮助实施更改的速度控制功能。

使用AWS-RestartEC2InstanceWithApproval运行簿来定位Amazon资源组,其中包含多个实例。您可以配置自动化以使用速度控制功能。例如,您可以指定应同时重新启动的实例数量。您还可以指定在取消自动化之前允许的最大错误数。

简化复杂任务

Automation 为简化复杂任务提供一键式自动化,例如创建黄金Amazon Machine Images(AMIs)并恢复无法访问的 EC2 实例。下面是一些示例:

  • 使用AWS-UpdateLinuxAmiAWS-UpdateWindowsAmi运行手册来创建金色AMIs从源AMI。在应用更新前后,您可以运行自定义脚本。您还可以包含特定软件包或从安装中排除这些软件包。有关如何运行这些自动化的示例,请参阅Automation 演练

  • 使用AWSSupport-ExecuteEC2Rescue运行簿来恢复受损的实例。出于各种原因,实例可能无法访问,包括网络配置错误、RDP 问题或防火墙设置。以前,对实例进行故障排除并重新获得其访问权限需要执行几十个手动步骤,然后才能重新获得访问权限。这些区域有:AWSSupport-ExecuteEC2RescueRunbook 允许您通过指定实例 ID 并单击一个按钮来重新获得访问权限。有关如何运行此自动化的示例,请参阅演练:在无法访问的实例上运行 EC2Rescue 工具

增强操作安全

使用委托管理,您可以限制或提升各种类型任务的用户权限。

借助委托管理,您可以提供对特定资源上特定任务的权限,而无需为用户授予访问资源的直接权限。这可以提升整体安全配置文件。例如,假定用户 1 没有重新启动 Amazon EC2 实例的权限,但您希望授权用户执行此操作。那么不用为用户 1 授予直接权限,您可以执行以下操作:

  • 创建一个 IAM 角色,并为其授予成功停止和启动 Amazon EC2 实例所需的权限。

  • 创建 Runbook 并在 Runbook 中嵌入该角色。执行此操作的最简单方法是自定义AWS-RestartEC2Instancerunbook 并在 Runbook 中嵌入角色,而不是分配 Automation 服务角色 [或承角色])。

  • 修改 User1 的 IAM 权限并授予用户运行 Runbook 的权限。

有关如何委托自动化访问的示例,请参阅使用委托管理运行自动化

分享最佳实践

Automation 允许您与组织中的其余人员分享最佳实践。

您可以在 Runbook 中创建资源管理的最佳实践,并轻松地在Amazon Web Services 区域和组中)。您也可以约束 Runbook 接受的参数的允许值。

EventBridge 支持

支持此 Systems Manager 功能作为target键入亚马逊 EventBridge 梁规则。有关信息,请参阅 使用亚马逊 EventBridge 监控 Systems Manager 事件Parameter: 亚马逊 EventBridge 事件模式和 Systems Manager 类型