Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
运行由 Systems Manager Automation 支持的自动化操作
在您运行自动化时,默认情况下,自动化将在启动该自动化的用户的上下文中运行。也就是说,例如,如果您的用户拥有管理员权限,则该自动化运行时也拥有管理员权限,并且对该自动化配置的资源拥有完全访问权限。作为最佳安全实践,建议使用配置有 AmazonSSMAutomationRole 托管式策略的 IAM 服务角色(在本例中也称为担任角色)运行自动化。您可能需要将其他 IAM policy 添加到您的担任角色,以使用各种运行手册。使用 IAM 服务角色运行自动化称为委托管理。
如果使用服务角色,则允许对 Amazon 资源运行自动化,但运行自动化的用户对这些资源的访问受限(或无法访问)。例如,您可以配置一个服务角色,并将其与自动化配合使用以自动重启一个或多个 Amazon Elastic Compute Cloud (Amazon EC2) 实例。Automation 是 Amazon Systems Manager 中的一项工具。自动化会重启实例,但服务角色不会授予用户访问这些实例的权限。
可以在您运行自动化的运行时中指定服务角色,也可以创建自定义自动化运行手册,并直接在运行手册中指定服务角色。无论您是在运行时还是在运行手册中指定了服务角色,服务都会在所指定服务角色的上下文中运行。如果您未指定服务角色,则系统会在用户上下文中创建临时会话并运行自动化。
对于预计运行时长超过 12 小时的自动化,必须指定服务角色。如果您在用户环境中启动了长时间运行的自动化,用户的临时会话会在 12 小时后过期。
委托管理可确保更高的安全性,还能更好地控制您的 Amazon 资源。它还能够增强审核体验,因为针对您的资源进行的操作是由集中服务角色执行的,而不是由多个 IAM 账户执行。
开始前的准备工作
在您完成以下过程之前,必须创建 IAM 服务角色并为 Automation(Amazon Systems Manager 中的一项工具)配置信任关系。有关更多信息,请参阅 任务 1:为自动化创建服务角色。
以下过程介绍了如何使用 Systems Manager 控制台或您首选的命令行工具运行简单的自动化。
运行简单的自动化(控制台)
以下过程介绍了如何使用 Systems Manager 控制台运行简单的自动化。
运行简单的自动化
访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。
-
在导航窗格中,选择自动化,然后选择执行自动化。
-
在自动化文档列表中,请选择运行手册。在文档类别窗格中选择一个或多个选项,以便根据 SSM 文档的用途对其进行筛选。要查看您拥有的运行手册,请选择我拥有的选项卡。要查看与您的账户共享的运行手册,请选择与我共享选项卡。要查看所有运行手册,请选择所有文档选项卡。
您可以通过选择运行手册名称来查看有关该手册的信息。
-
在文档详细信息部分中,验证文档版本已设置为要运行的版本。系统包括以下版本选项:
-
运行时的默认版本 – 如果定期更新自动化运行手册并分配新的默认版本,请选择此选项。
-
运行时的最新版本 – 如果定期更新自动化运行手册并且想要运行最新更新的版本,请选择此选项。
-
1(默认) – 选择此选项可执行文档的第一个版本,即默认版本。
-
选择下一步。
-
在执行模式部分中,选择简单执行。
在 输入参数 部分中,指定所需的输入。或者,您也可以从 AutomationAssumeRole 列表选择一个 IAM 服务角色。
-
(可选)选择一个 CloudWatch 警报以应用于您的自动化进行监控。要将 CloudWatch 警报附加到自动化,启动自动化的 IAM 主体必须具有 iam:createServiceLinkedRole
操作的权限。有关 CloudWatch 警报的更多信息,请参阅使用 Amazon CloudWatch 警报。请注意,如果您的警报激活,自动化将停止。如果使用 Amazon CloudTrail,您将在跟踪中看到 API 调用。
-
选择执行。
控制台将显示自动化的状态。如果自动化无法运行,请参阅 Systems Manager 自动化故障排除。
运行简单的自动化(命令行)
以下过程介绍了如何使用 Amazon CLI(在 Linux 或 Windows 上)或 Amazon Tools for PowerShell 运行简单的自动化。
运行简单的自动化
安装并配置 Amazon CLI 或 Amazon Tools for PowerShell(如果尚未执行该操作)。
有关信息,请参阅安装或更新 Amazon CLI 的最新版本以及安装 Amazon Tools for PowerShell。
-
运行以下命令以启动一个简单的自动化。将每个示例资源占位符
替换为您自己的信息。
- Linux & macOS
-
aws ssm start-automation-execution \
--document-name runbook name
\
--parameters runbook parameters
- Windows
-
aws ssm start-automation-execution ^
--document-name runbook name
^
--parameters runbook parameters
- PowerShell
-
Start-SSMAutomationExecution `
-DocumentName runbook name
`
-Parameter runbook parameters
以下是使用 AWS-RestartEC2Instance
运行手册重新启动指定 EC2 实例的示例。
- Linux & macOS
-
aws ssm start-automation-execution \
--document-name "AWS-RestartEC2Instance" \
--parameters "InstanceId=i-02573cafcfEXAMPLE"
- Windows
-
aws ssm start-automation-execution ^
--document-name "AWS-RestartEC2Instance" ^
--parameters "InstanceId=i-02573cafcfEXAMPLE"
- PowerShell
-
Start-SSMAutomationExecution `
-DocumentName AWS-RestartEC2Instance `
-Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}
系统将返回类似于以下内容的信息。
- Linux & macOS
-
{
"AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
}
- Windows
-
{
"AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
}
- PowerShell
-
4105a4fc-f944-11e6-9d32-0123456789ab
-
运行以下命令以检索自动化的状态。
- Linux & macOS
-
aws ssm describe-automation-executions \
--filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
- Windows
-
aws ssm describe-automation-executions ^
--filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
- PowerShell
-
Get-SSMAutomationExecutionList | `
Where {$_.AutomationExecutionId -eq "4105a4fc-f944-11e6-9d32-0123456789ab"}
系统将返回类似于以下内容的信息。
- Linux & macOS
-
{
"AutomationExecutionMetadataList": [
{
"AutomationExecutionStatus": "InProgress",
"CurrentStepName": "stopInstances",
"Outputs": {},
"DocumentName": "AWS-RestartEC2Instance",
"AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
"DocumentVersion": "1",
"ResolvedTargets": {
"ParameterValues": [],
"Truncated": false
},
"AutomationType": "Local",
"Mode": "Auto",
"ExecutionStartTime": 1564600648.159,
"CurrentAction": "aws:changeInstanceState",
"ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
"LogFile": "",
"Targets": []
}
]
}
- Windows
-
{
"AutomationExecutionMetadataList": [
{
"AutomationExecutionStatus": "InProgress",
"CurrentStepName": "stopInstances",
"Outputs": {},
"DocumentName": "AWS-RestartEC2Instance",
"AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
"DocumentVersion": "1",
"ResolvedTargets": {
"ParameterValues": [],
"Truncated": false
},
"AutomationType": "Local",
"Mode": "Auto",
"ExecutionStartTime": 1564600648.159,
"CurrentAction": "aws:changeInstanceState",
"ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
"LogFile": "",
"Targets": []
}
]
}
- PowerShell
-
AutomationExecutionId : 4105a4fc-f944-11e6-9d32-0123456789ab
AutomationExecutionStatus : InProgress
AutomationType : Local
CurrentAction : aws:changeInstanceState
CurrentStepName : startInstances
DocumentName : AWS-RestartEC2Instance
DocumentVersion : 1
ExecutedBy : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
ExecutionEndTime : 1/1/0001 12:00:00 AM
ExecutionStartTime : 7/31/2019 7:17:28 PM
FailureMessage :
LogFile :
MaxConcurrency :
MaxErrors :
Mode : Auto
Outputs : {}
ParentAutomationExecutionId :
ResolvedTargets : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
Target :
TargetMaps : {}
TargetParameterName :
Targets : {}