aws:approve – 暫停自動化以進行手動核准 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

aws:approve – 暫停自動化以進行手動核准

暫時暫停自動化,直到指定的委託人核准或拒絕動作。達到所需的核准數量後,自動化會繼續。您可以將核准步驟插入 Runbook mainSteps 章節的任何地方。

注意

此動作不支援多帳戶和區域自動化操作。此動作的預設逾時時間為 7 天 (604800 秒),最大值為 30 天 (2592000 秒)。您可以透過指定 aws:approve 步驟的 timeoutSeconds 參數來限制或延長逾時。如果自動化步驟在收到所有必要的核准決策之前達到逾時值,則步驟和自動化將停止執行並傳回逾時狀態。

在以下範例中,aws:approve 動作暫時暫停了自動化,直到核准者接受或拒絕自動化為止。核准後,自動化會執行簡單的 PowerShell 指令。

YAML
--- description: RunInstancesDemo1 schemaVersion: '0.3' assumeRole: "{{ assumeRole }}" parameters: assumeRole: type: String message: type: String mainSteps: - name: approve action: aws:approve timeoutSeconds: 1000 onFailure: Abort inputs: NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval Message: "{{ message }}" MinRequiredApprovals: 1 Approvers: - arn:aws:iam::12345678901:user/AWS-User-1 - name: run action: aws:runCommand inputs: InstanceIds: - i-1a2b3c4d5e6f7g DocumentName: AWS-RunPowerShellScript Parameters: commands: - date
JSON
{ "description":"RunInstancesDemo1", "schemaVersion":"0.3", "assumeRole":"{{ assumeRole }}", "parameters":{ "assumeRole":{ "type":"String" }, "message":{ "type":"String" } }, "mainSteps":[ { "name":"approve", "action":"aws:approve", "timeoutSeconds":1000, "onFailure":"Abort", "inputs":{ "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval", "Message":"{{ message }}", "MinRequiredApprovals":1, "Approvers":[ "arn:aws:iam::12345678901:user/AWS-User-1" ] } }, { "name":"run", "action":"aws:runCommand", "inputs":{ "InstanceIds":[ "i-1a2b3c4d5e6f7g" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "date" ] } } } ] }

您可以核准或拒絕在主控台等待核准的自動化。

核准或拒絕等待自動化
  1. 請在以下位置開啟 AWS Systems Manager 主控台。 https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Automation (自動化)。

    -或-

    如果 AWS Systems Manager 首頁先開啟,請選擇功能表圖示 ( 
    The menu icon
  ) 以開啟導覽窗格,然後選擇 [自動化]。

  3. 選擇狀態為 Waiting (正在等待) 自動化旁的選項。

    
                        存取核准/拒絕自動化頁面
  4. 選擇 Approve/Deny (核准/拒絕)

  5. 檢閱自動化的詳細資訊。

  6. 選擇 Approve (核准)Deny (拒絕),輸入選擇性的註解,接著選擇 Submit (提交)

輸入範例

YAML
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest Message: Please approve this step of the Automation. MinRequiredApprovals: 3 Approvers: - IamUser1 - IamUser2 - arn:aws:iam::12345678901:user/IamUser3 - arn:aws:iam::12345678901:role/IamRole
JSON
{ "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest", "Message":"Please approve this step of the Automation.", "MinRequiredApprovals":3, "Approvers":[ "IamUser1", "IamUser2", "arn:aws:iam::12345678901:user/IamUser3", "arn:aws:iam::12345678901:role/IamRole" ] }
NotificationArn

適用於 Automation 核准的 Amazon Simple Notification Service (Amazon SNS) 主題 Amazon Resource Name (ARN)。當您在 Runbook 中指定 aws:approve 步驟,自動化會傳送訊息至此主題,讓委託人知道必須核准或拒絕自動化步驟。Amazon SNS 主題的標題必須以「Automation」為字首。

類型:字串

必要:否

訊息

您想要在核准請求傳送時包含於 Amazon SNS 主題的資訊。訊息長度上限為 4096 個字元。

類型:字串

必要:否

MinRequiredApprovals

繼續自動化所需的核准數量下限。如果您不指定值,系統會預設一個。此參數的值必須為正數。此參數的值不得超過由 Approvers 參數定義的核准者數量。

類型:整數

必要:否

Approvers

能夠核准或拒絕動作的 AWS 已驗證主參與者清單。核准者的數量上限為 10。您可以使用以下任一格式指定委託人:

  • 使用者名稱

  • 使用者 ARN

  • IAM 角色 ARN

  • IAM 擔任角色 ARN

類型: StringList

必要:是

輸出

ApprovalStatus

步驟的核准狀態。狀態可以是以下其中一項:Approved (核准)、Rejected (拒絕) 或 Waiting (等待)。等待表示自動化要等待核准者輸入。

類型:字串

ApproverDecisions

一種 JSON 對應,包括每個核准者的核准決定。

類型: MapList