运行包含审批者的自动化 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

运行包含审批者的自动化

以下过程介绍了如何使用 Amazon Systems Manager 控制台和 Amazon Command Line Interface (Amazon CLI) 通过简单执行来运行包含审批的自动化。该自动化使用自动化操作 aws:approve,这会暂停自动化,直到指定的委托人批准或拒绝该操作。自动化在当前用户的上下文中运行。因此,只要您有权使用运行手册和此运行手册调用的任何操作,就无需配置其他 IAM 权限。如果您在 IAM 中拥有管理员权限,则已有权运行此运行手册。

开始前的准备工作

除了运行手册所需的标准输入外,aws:approve 操作还需要以下两个参数:

  • 审批者列表。审批者列表必须以用户名或用户 ARN 的形式包含至少一个审批者。如果提供了多个审批者,还必须在运行手册内指定对应的最少审批数。

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

此过程假设您已经创建了 Amazon SNS 主题,这是提交审批请求所必需的。有关信息,请参阅《Amazon Simple Notification Service 开发人员指南》中的创建主题

运行包含审批者的自动化(控制台)

运行包含审批者的自动化

以下过程介绍了如何使用 Systems Manager 控制台运行包含审批者的自动化。

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择自动化,然后选择执行自动化

  3. 自动化文档列表中,请选择运行手册。在文档类别窗格中选择一个或多个选项,以便根据 SSM 文档的用途对其进行筛选。要查看您拥有的运行手册,请选择我拥有的选项卡。要查看与您的账户共享的运行手册,请选择与我共享选项卡。要查看所有运行手册,请选择所有文档选项卡。

    注意

    您可以通过选择运行手册名称来查看有关该手册的信息。

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

    • 运行时的默认版本 – 如果定期更新自动化运行手册并分配新的默认版本,请选择此选项。

    • 运行时的最新版本 – 如果定期更新自动化运行手册并且想要运行最新更新的版本,请选择此选项。

    • 1(默认) – 选择此选项可执行文档的第一个版本,即默认版本。

  5. 选择下一步

  6. 执行自动化文档页面上,选择简单执行

  7. 输入参数 部分,指定所需的输入参数。

    例如,如果选择了 AWS-StartEC2InstanceWithApproval 运行手册,则必须为 InstanceId 参数指定或选择实例 ID。

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

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

  10. 或者,您也可以从 AutomationAssumeRole 列表选择一个 IAM 服务角色。如果您将超过 100 个的账户和地区设置为目标,则必须指定 AWS-SystemsManager-AutomationAdministrationRole

  11. 选择执行自动化

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

如果选择批准自动化,自动化将继续运行指定的运行手册中包含的步骤。控制台将显示自动化的状态。如果自动化无法运行,请参阅 Systems Manager 自动化故障排除

批准或拒绝自动化
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择自动化,然后选择上一过程中运行的自动化。

  3. 选择操作,然后选择批准/拒绝

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

  5. 选择提交

运行包含审批者的自动化(命令行)

以下过程介绍了如何使用 Amazon CLI(在 Linux 或 Windows 上)或 Amazon Tools for PowerShell 运行包含审批者的自动化。

运行包含审批者的自动化
  1. 安装并配置 Amazon CLI 或 Amazon Tools for PowerShell(如果尚未执行该操作)。

    有关信息,请参阅安装或更新 Amazon CLI 的最新版本以及安装 Amazon Tools for PowerShell

  2. 运行以下命令以运行包含审批者的自动化。将每个示例资源占位符替换为您自己的信息。在文档名称部分中,指定包括自动化操作 aws:approve 的运行手册。

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

    注意

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

    Linux & macOS
    aws ssm start-automation-execution \ --document-name "AWS-StartEC2InstanceWithApproval" \ --parameters "InstanceId=i-02573cafcfEXAMPLE,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:region:123456789012:AutomationApproval"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-StartEC2InstanceWithApproval" ^ --parameters "InstanceId=i-02573cafcfEXAMPLE,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:region:123456789012:AutomationApproval"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName AWS-StartEC2InstanceWithApproval ` -Parameters @{ "InstanceId"="i-02573cafcfEXAMPLE" "Approvers"="arn:aws:iam::123456789012:role/Administrator" "SNSTopicArn"="arn:aws:sns:region:123456789012:AutomationApproval" }

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

    Linux & macOS
    {
        "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
    }
    Windows
    {
        "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
    }
    PowerShell
    df325c6d-b1b1-4aa0-8003-6cb7338213c6
批准自动化
  • 运行以下命令来批准自动化。将每个示例资源占位符替换为您自己的信息。

    Linux & macOS
    aws ssm send-automation-signal \ --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" \ --signal-type "Approve" \ --payload "Comment=your comments"
    Windows
    aws ssm send-automation-signal ^ --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" ^ --signal-type "Approve" ^ --payload "Comment=your comments"
    PowerShell
    Send-SSMAutomationSignal ` -AutomationExecutionId df325c6d-b1b1-4aa0-8003-6cb7338213c6 ` -SignalType Approve ` -Payload @{"Comment"="your comments"}

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

拒绝自动化
  • 运行以下命令来拒绝自动化。将每个示例资源占位符替换为您自己的信息。

    Linux & macOS
    aws ssm send-automation-signal \ --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" \ --signal-type "Deny" \ --payload "Comment=your comments"
    Windows
    aws ssm send-automation-signal ^ --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" ^ --signal-type "Deny" ^ --payload "Comment=your comments"
    PowerShell
    Send-SSMAutomationSignal ` -AutomationExecutionId df325c6d-b1b1-4aa0-8003-6cb7338213c6 ` -SignalType Deny ` -Payload @{"Comment"="your comments"}

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