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

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

与批准者一起运行自动化

以下过程介绍如何使用Amazon Web Services Systems Manager控制台和Amazon命令行界面 (AmazonCLI)使用简单执行运行包含审批的自动化。自动化使用自动化操作aws:approve,这会临时暂停自动化,直至指定委托人批准或拒绝操作。自动化将在当前 AWS Identity and Access Management (IAM) 用户的上下文中运行。这意味着,只要您有权使用 Runbook 和 Runbook 调用的任何操作,您就不需要配置额外的 IAM 权限。如果您在 IAM 中拥有管理员权限,则已有权使用此 Runbook。

注意

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

开始前的准备工作

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

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

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

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

运行包含审批者的 Automation(控制台)

与批准者一起运行 Automation

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

  1. 打开Amazon Web Services Systems Manager控制台https://console.aws.amazon.com/systems-manager/

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

  3. 自动化文档列表中,选择运行手册。选择一个或多个选项,在文档类别窗格可根据 SSM 文档的用途过滤它们。要查看您拥有的 Runbook,请选择我拥有的选项卡 要查看与您的帐户共享的 Runbook,请选择与我共享选项卡 要查看所有运行手册,请选择所有文档选项卡

    注意

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

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

    • 运行时的默认版本:如果定期更新 Automation Runbook 并指定新的默认版本,请选择此选项。

    • 运行时的最新版本:如果定期更新 Automation Runbook,并且需要运行最新更新版本,请选择此选项。

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

  5. 选择 Next

  6. Execute automation document (执行自动化文档) 页面上,选择 Simple execution (简单执行)

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

    例如,如果您选择了AWS-StartEC2InstanceWithApproval运行簿,则必须为InstanceId参数。

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

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

  10. 或者,您可以从AutomationAssumeRole列表。

  11. 选择执行自动化

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

如果选择了审批自动化,自动化将继续运行指定的 Runbook 中包含的步骤。控制台将显示 Automation 的状态。如果 Automation 无法运行,请参阅Systems Manager Automation

批准或拒绝 Automation

  1. 打开Amazon Web Services Systems Manager控制台https://console.aws.amazon.com/systems-manager/

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

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

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

  5. 选择 Submit

运行具有批准者的 Automation(命令行)

以下过程介绍如何使用AmazonCLI(在 Linux 或 Windows 上)或AmazonTools for PowerShell 与批准者一起运行自动化的工具。

与批准者一起运行 Automation

  1. 安装和配置AmazonCLI 或AmazonTools for PowerShell,如果您还没有。

    想要了解有关信息,请参阅安装或升级Amazon命令行工具

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

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

    注意

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

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

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

拒绝 Automation

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

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

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