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

运行包含审批者的自动化

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

注意

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

开始前的准备工作

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

  • 审批者列表。审批者列表必须以 IAM 用户或用户 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. 选择 Next (下一步)

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

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

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

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

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

  10. 或者,您也可以从 AutomationAssumeRole 列表选择一个 IAM 服务角色。

  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 命令行工具

  2. 使用以下命令运行包含审批者的自动化。在文档名称部分中,指定包括自动化操作 aws:approve 的运行手册。

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

    注意

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

    Linux & macOS
    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" }

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

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

批准自动化

  • 运行以下命令来批准自动化。

    Linux & macOS
    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"}

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

拒绝自动化

  • 运行以下命令来拒绝自动化。

    Linux & macOS
    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"}

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