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

通过使用 IAM 服务角色运行 Automation 工作流程

以下过程介绍了如何使用 AWS Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell 通过 AWS Identity and Access Management (IAM) 服务角色(或担任角色)运行 Automation 工作流程。服务角色代表您向 Automation 提供执行操作的工作流程权限。如果要限制权限并以最低权限运行操作,则配置服务角色是非常有用的。例如,如果要限制用户的资源(如 Amazon EC2 实例)权限,但希望允许用户运行 Automation 工作流程以执行一组特定的操作,这是非常有用的。在这种情况下,您可以创建具有提升权限的服务角色并允许用户运行 Automation 工作流程。

开始前的准备工作

在完成以下过程之前,必须创建 IAM 服务角色并为 Automation 配置信任关系。有关更多信息,请参阅 任务 1:为 Automation 创建服务角色任务 2:为 Automation 添加信任关系

使用 IAM 服务角色运行 Automation 工作流程(控制台)

以下过程介绍了如何使用 Systems Manager 控制台运行使用 IAM 服务角色(或担任角色)的 Automation 工作流程。

使用服务角色运行 Automation 工作流程

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择 Automation (自动化),然后选择 Execute automation (执行自动化)

  3. Automation document (自动化文档) 列表中,选择一个文档。在 Document categories (文档类别) 窗格中选择一个或多个选项,以根据其用途筛选 SSM 文档。要查看您拥有的文档,请选择 Owned by me (我拥有的) 选项卡。要查看与您的账户共享的文档,请选择 Shared with me (与我共享) 选项卡。要查看所有文档,请选择 All documents (所有文档) 选项卡。

    注意

    可以通过选择文档名称来查看有关文档的信息。

  4. Document details (文档详细信息) 部分中,验证文档版本已设置为要运行的版本。系统包括以下版本选项:

    • Default version at runtime (运行时的默认版本):如果定期更新 Automation 文档并指定新的默认版本,请选择此选项。

    • 运行时的最新版本:如果定期更新自动化文档,并且需要运行最新更新版本,请选择此选项。

    • 1 (默认):选择此选项可运行文档的第一个版本,这是默认设置。

  5. 选择 Next

  6. 执行模式部分中,选择简单执行

    注意

    此过程使用 Simple execution (简单执行) 模式。不过,您也可以选择 Rate control (速率控制)Multi-account and Region (多账户和多区域)Manual execution (手动执行),使用服务角色运行 Automation 工作流程。

  7. Input parameters (输入参数) 部分中,指定所需的输入。在 Automation Assume Role (自动化担任角色) 框中,粘贴 IAM 服务角色的 ARN。

  8. 选择 Execute (执行)。控制台将显示 Automation 执行的状态。

使用 IAM 服务角色运行 Automation 工作流程(命令行)

以下过程介绍了如何使用 AWS CLI(在 Linux 或 Windows 上)或 AWS Tools for PowerShell 运行使用 IAM 服务角色(或担任角色)的 Automation 工作流程。

使用服务角色运行 Automation 工作流程

  1. 安装并配置 AWS CLI 或 AWS Tools for PowerShell(如果尚未执行该操作)。

    有关更多信息,请参阅 安装或升级 AWS CLIInstall or Upgrade the AWS Tools for PowerShell

  2. 运行以下命令以启动使用 IAM 服务角色的 Automation 工作流程。

    LinuxWindowsPowerShell
    Linux
    aws ssm start-automation-execution \ --document-name DocumentName \ --parameters "ParametersRequiredByDocument","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    Windows
    aws ssm start-automation-execution ^ --document-name DocumentName ^ --parameters "ParametersRequiredByDocument","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName DocumentName ` -Parameter @{ "ParametersRequiredByDocument"="ParameterValues"; "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"}

    以下是使用 AWS-RestartEC2Instance 文档通过 IAM 服务角色 AmazonSSMAutomationRole 重新启动指定 EC2 实例的示例。

    LinuxWindowsPowerShell
    Linux
    aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters "InstanceId=i-1234567890abcdef0","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-RestartEC2Instance" ^ --parameters "InstanceId=i-1234567890abcdef0","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName "AWS-RestartEC2Instance" ` -Parameter @{ "InstanceId"="i-1234567890abcdef0"; "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole"}

    系统将返回类似于以下内容的信息。

    LinuxWindowsPowerShell
    Linux
    {
        "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
    }
    Windows
    {
        "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
    }
    PowerShell
    4105a4fc-f944-11e6-9d32-0123456789ab
  3. 运行以下命令以检索 Automation 工作流程的状态。

    LinuxWindowsPowerShell
    Linux
    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"}

    系统将返回类似于以下内容的信息。

    LinuxWindowsPowerShell
    Linux
    {
        "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                     : {}

有关如何使用 Systems Manager Automation 的更多示例,请参阅 Automation 演练。有关 Automation 入门的信息,请参阅 Automation 入门