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

运行包含审批者的 Automation 工作流程

以下过程介绍了如何使用 AWS Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell 通过简单执行来运行包含审批的 AWS Systems Manager Automation 工作流程。该工作流程使用 Automation 操作 aws:approve,这会暂停 Automation 工作流程,直到指定的委托人批准或拒绝该操作。Automation 工作流程在当前 AWS Identity and Access Management (IAM) 用户的上下文中运行。这意味着只要您有权运行 Automation 文档和此文档调用的任何操作,就无需配置其他 IAM 权限。如果您在 IAM 中拥有管理员权限,则已有权运行此 Automation 工作流程。

注意

有关如何运行使用 IAM 服务角色或更高级的委托管理形式的 Automation 工作流程的信息,请参阅使用不同的安全模型运行 Automation 工作流程

开始前的准备工作

除了 Automation 文档所需的标准输入外,aws:approve 操作还需要以下两个参数:

  • 审批者列表。审批者列表必须以 IAM 用户或用户 ARN 形式包含至少一个审批者。如果提供了多个审批者,还必须在自动化文档内指定对应的最少审批数。

  • Amazon Simple Notification Service (Amazon SNS) 主题 ARN。Amazon SNS 主题名称必须以 Automation 开头。

此过程假设您已经创建了 Amazon SNS 主题,这是提交审批请求所必需的。有关信息,请参阅 Amazon Simple Notification Service Developer Guide 中的创建主题

运行包含审批者的 Automation 工作流程(控制台)

运行包含审批者的 Automation 工作流程

以下过程介绍了如何使用 Systems Manager 控制台运行包含审批者的 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. Execute automation document (执行自动化文档) 页面上,选择 Simple execution (简单执行)

  7. Input parameters (输入参数) 部分,指定所需的输入参数。

    例如,如果选择了 AWS-StartEC2InstanceWithApproval 文档,则必须为 InstanceId 参数指定或选择实例 ID。

  8. Approvers 部分,指定自动化操作的审批者的 IAM 用户或用户 ARN。

  9. SNSTopicARN 部分,指定要用于发送审批通知的 SNS 主题 ARN。SNS 主题名称必须以 Automation 开头。

  10. (可选)您可以从 AutomationAssumeRole 列表中选择一个 IAM 服务角色。

  11. 选择执行自动化

指定的审批者将收到包含详细信息的 Amazon SNS 通知以批准或拒绝 Automation 工作流程。此审批操作从发布之日起 7 天内有效,此操作可以使用 Systems Manager 控制台或 AWS Command Line Interface (AWS CLI) 发布。

如果选择批准 Automation 工作流程,工作流程将继续运行指定的 Automation 文档中包含的步骤。控制台将显示 Automation 执行的状态。如果 Automation 无法运行,请参阅排除 Systems Manager Automation 的故障

批准或拒绝 Automation 工作流程

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

  2. 在导航窗格中,选择 Automation,然后选择上一过程中运行的 Automation 工作流程。

  3. 选择 Actions (操作),然后选择 Approve/Deny (批准/拒绝)

  4. 选择 Approve (批准)Deny (拒绝),并选择性地提供注释。

  5. 选择 Submit

运行包含审批者的 Automation 工作流程(命令行)

以下过程介绍了如何使用 AWS CLI(在 Linux 或 Windows 上)或 AWS Tools for PowerShell 运行包含审批者的 Automation 工作流程。

运行包含审批者的 Automation 工作流程

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

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

  2. 使用以下命令运行包含审批者的 Automation 工作流程。在文档名称部分中,指定包括 Automation 操作 aws:approve 的 Automation 文档。

    对于 Approvers,指定此操作的审批者的 IAM 用户或用户 ARN。对于 SNSTopic,指定用于发送审批通知的 SNS 主题 ARN。SNS 主题名称必须以 Automation 开头。

    注意

    审批者和 SNS 主题的参数值的具体名称取决于您选择的文档中指定的值。

    LinuxWindowsPowerShell
    Linux
    aws ssm start-automation-execution \ --document-name "AWS-StartEC2InstanceWithApproval" \ --parameters "InstanceId=i-1234567890abcdef0,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:us-east-1:123456789012:AutomationApproval"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-StartEC2InstanceWithApproval" ^ --parameters "InstanceId=i-1234567890abcdef0,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:us-east-1:123456789012:AutomationApproval"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName AWS-StartEC2InstanceWithApproval ` -Parameters @{ "InstanceId"="i-1234567890abcdef0" "Approvers"="arn:aws:iam::123456789012:role/Administrator" "SNSTopicArn"="arn:aws:sns:us-east-1:123456789012:AutomationApproval" }

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

    LinuxWindowsPowerShell
    Linux
    {
        "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
    }
    Windows
    {
        "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
    }
    PowerShell
    462fa82a-7fff-430a-8490-0123456789ab

批准 Automation 工作流程

  • 运行以下命令来批准 Automation 工作流程。

    LinuxWindowsPowerShell
    Linux
    aws ssm send-automation-signal \ --automation-execution-id "4105a4fc-f944-11e6-9d32-0123456789ab" \ --signal-type "Approve" \ --payload "Comment=Replace_This_With_Approve_Comment"
    Windows
    aws ssm send-automation-signal ^ --automation-execution-id "4105a4fc-f944-11e6-9d32-0123456789ab" ^ --signal-type "Approve" ^ --payload "Comment=Replace_This_With_Approve_Comment"
    PowerShell
    Send-SSMAutomationSignal ` -AutomationExecutionId 462fa82a-7fff-430a-8490-0123456789ab ` -SignalType Approve ` -Payload @{"Comment"="Replace_This_With_Approval_Comment"}

    如果此命令成功,则无任何输出。

拒绝 Automation 工作流程

  • 运行以下命令来拒绝 Automation 工作流程。

    LinuxWindowsPowerShell
    Linux
    aws ssm send-automation-signal \ --automation-execution-id "4105a4fc-f944-11e6-9d32-0123456789ab" \ --signal-type "Deny" \ --payload "Comment=Replace_This_With_Deny_Comment"
    Windows
    aws ssm send-automation-signal ^ --automation-execution-id "4105a4fc-f944-11e6-9d32-0123456789ab" ^ --signal-type "Deny" ^ --payload "Comment=Replace_This_With_Deny_Comment"
    PowerShell
    Send-SSMAutomationSignal ` -AutomationExecutionId 462fa82a-7fff-430a-8490-0123456789ab ` -SignalType Deny ` -Payload @{"Comment"="Replace_This_With_Deny_Comment"}

    如果此命令成功,则无任何输出。