執行自動化 - AWS Systems Manager

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

執行自動化

執行自動化時,依預設,自動化會在啟動自動化的使用者內容中執行。這表示,如果您的使用者具有管理員許可,則自動化會以管理員許可執行,並能完全存取由自動化設定的資源。做為安全最佳實務,我們建議您在執行自動化時,使用以 AmazonSSMAutomationRole 受管政策設定的 IAM 服務角色,在此案例中稱為擔任角色。您可能需要將其他 IAM 政策新增至您的擔任角色,才能使用各種 Runbook。使用 IAM 服務角色執行自動化稱為委託管理

在您使用服務角色時,自動化允許對 AWS 資源執行,但執行自動化的使用者限制了對這些資源的存取 (或無存取)。例如,您可以設定服務角色並搭配 Automation 使用,以重新啟動一個或多個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。自動化是 AWS Systems Manager 的功能。自動化會重新啟動執行個體,但服務角色不會提供存取這些執行個體的使用者許可。

您可以在執行自動化時指定執行時間的服務角色,或者您可以建立自訂 Runbook 並直接在 Runbook 中指定服務角色。如果您指定服務角色 (在執行時間或在 Runbook 中),則服務會在指定服務角色的內容中執行。如果您不指定服務角色,則系統會在使用者的內容中建立暫時工作階段並執行自動化。

注意

針對預期要執行超過 12 小時的自動化,您必須指定服務角色。如果您在使用者的內容中啟動長期執行自動化,使用者的暫時工作階段會在 12 小時後過期。

委派管理可確保您的 AWS 資源有更高層級的安全和控制。它也能夠強化稽核體驗,因為動作是由中央服務角色,而非多個 IAM 帳戶針對您的資源執行的。

開始之前

完成以下處理程序之前,您必須建立 IAM 服務角色和設定 Automation (AWS Systems Manager 的功能) 的信任關係。如需更多詳細資訊,請參閱 任務 1:建立自動化的服務角色

以下程序說明如何使用 Systems Manager 主控台或您偏好的命令行來執行簡易的自動化。

執行簡易自動化 (主控台)

以下程序說明如何使用 Systems Manager 主控台來執行簡易的自動化。

執行簡易自動化
  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Automation (自動化),接著選擇 Execute automation (執行自動化)

  3. Automation document (自動化文件) 清單中,選擇 Runbook。在 Document categories (文件類別) 窗格中選擇一個或多個選項,根據 SSM 文件的用途來進行篩選。若要檢視您擁有的 Runbook,請選擇 Owned by me (我所擁有的) 索引標籤。若要檢視與您帳戶共用的 Runbook,請選擇 Shared with me (與我共用的) 索引標籤。若要檢視所有 Runbook,請選擇 All documents (所有文件) 索引標籤。

    注意

    您可以選擇 Runbook 名稱檢視 Runbook 資訊。

  4. Document details (文件詳細資訊) 部分,確認 Document version (文件版本) 設定為您想要執行的版本。系統包括以下版本選項:

    • 執行期的預設版本:如果 Automation 執行手冊會定期更新且已指派新的預設版本,則請選擇此選項。

    • 執行期的最新版本:如果 Automation 執行手冊會定期更新,而您想要執行最近更新的版本,請選擇此選項。

    • 1 (預設):選擇此選項以執行文件的第一個版本,也是預設版本。

  5. 選擇 Next (下一步)

  6. Execution Mode (執行模式) 部分,選擇 Simple execution (簡易執行)

  7. Input parameters (輸入參數) 部分,指定所需的輸入。或者,您也可以從 AutomationAssumeRole 清單中選擇 IAM 服務角色。

  8. (選用) 選擇要套用至您的自動化以便加以監控的 CloudWatch 警示。若要將 CloudWatch 警示連接至您的自動化,啟動自動化的 IAM 主體必須具備 iam:createServiceLinkedRole 動作的許可。如需有關 CloudWatch 警示的詳細資訊,請參閱使用 Amazon CloudWatch 警示。請注意,如果您的警示啟用,則會停止自動化。如果使用 AWS CloudTrail,則您會在追蹤中看到 API 呼叫。

  9. 選擇 Execute (執行)

主控台會顯示自動化的狀態。若自動化無法執行,請參閱 故障診斷 Systems Manager Automation

執行簡易自動化 (命令列)

以下程序說明如何使用 AWS CLI (在 Linux 或 Windows 上) 或 AWS Tools for PowerShell 來執行簡易自動化。

執行簡易自動化
  1. 如果您尚未安裝並設定 AWS CLI 或 AWS Tools for PowerShell,請進行相應的操作。

    如需相關資訊,請參閱安裝或更新 AWS CLI 的最新版本安裝 AWS Tools for PowerShell

  2. 執行以下命令來啟動簡易自動化。將每個範例資源預留位置取代為您自己的資訊。

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --parameters runbook parameters
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --parameters runbook parameters
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName runbook name ` -Parameter runbook parameters

    以下是使用 AWS-RestartEC2Instance Runbook 重新啟動指定 EC2 執行個體的範例。

    Linux & macOS
    aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters "InstanceId=i-02573cafcfEXAMPLE"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-RestartEC2Instance" ^ --parameters "InstanceId=i-02573cafcfEXAMPLE"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName AWS-RestartEC2Instance ` -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}

    系統會傳回如下資訊。

    Linux & macOS
    {
        "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
    }
    Windows
    {
        "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
    }
    PowerShell
    4105a4fc-f944-11e6-9d32-0123456789ab
  3. 執行以下命令來擷取自動化的狀態。

    Linux & macOS
    aws ssm describe-automation-executions \ --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
    Windows
    aws ssm describe-automation-executions ^ --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
    PowerShell
    Get-SSMAutomationExecutionList | ` Where {$_.AutomationExecutionId -eq "4105a4fc-f944-11e6-9d32-0123456789ab"}

    系統會傳回如下資訊。

    Linux & macOS
    {
        "AutomationExecutionMetadataList": [
            {
                "AutomationExecutionStatus": "InProgress",
                "CurrentStepName": "stopInstances",
                "Outputs": {},
                "DocumentName": "AWS-RestartEC2Instance",
                "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
                "DocumentVersion": "1",
                "ResolvedTargets": {
                    "ParameterValues": [],
                    "Truncated": false
                },
                "AutomationType": "Local",
                "Mode": "Auto",
                "ExecutionStartTime": 1564600648.159,
                "CurrentAction": "aws:changeInstanceState",
                "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
                "LogFile": "",
                "Targets": []
            }
        ]
    }
    Windows
    {
        "AutomationExecutionMetadataList": [
            {
                "AutomationExecutionStatus": "InProgress",
                "CurrentStepName": "stopInstances",
                "Outputs": {},
                "DocumentName": "AWS-RestartEC2Instance",
                "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
                "DocumentVersion": "1",
                "ResolvedTargets": {
                    "ParameterValues": [],
                    "Truncated": false
                },
                "AutomationType": "Local",
                "Mode": "Auto",
                "ExecutionStartTime": 1564600648.159,
                "CurrentAction": "aws:changeInstanceState",
                "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
                "LogFile": "",
                "Targets": []
            }
        ]
    }
    PowerShell
    AutomationExecutionId       : 4105a4fc-f944-11e6-9d32-0123456789ab
    AutomationExecutionStatus   : InProgress
    AutomationType              : Local
    CurrentAction               : aws:changeInstanceState
    CurrentStepName             : startInstances
    DocumentName                : AWS-RestartEC2Instance
    DocumentVersion             : 1
    ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
    ExecutionEndTime            : 1/1/0001 12:00:00 AM
    ExecutionStartTime          : 7/31/2019 7:17:28 PM
    FailureMessage              : 
    LogFile                     : 
    MaxConcurrency              : 
    MaxErrors                   : 
    Mode                        : Auto
    Outputs                     : {}
    ParentAutomationExecutionId : 
    ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
    Target                      : 
    TargetMaps                  : {}
    TargetParameterName         : 
    Targets                     : {}