使用 IAM 服務角色執行自動化 - AWS Systems Manager

使用 IAM 服務角色執行自動化

下列處理程序說明如何使用 AWS Systems Manager 主控台和 AWS Command Line Interface (AWS CLI),藉由 AWS Identity and Access Management (IAM) 服務角色 (在此情形下被稱為假設角色) 來執行自動化。服務角色可給予自動化代您執行動作的許可。當您想要限制許可並以最低權限執行動作時,設定服務角色非常實用。例如,當您想要限制使用者對資源 (例如 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體) 的許可,但又想要允許使用者執行自動化以執行一組特定動作時,這便非常實用。在此案例中,您可以建立具更高許可的服務角色並允許使用者執行自動化。

開始之前

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

使用 IAM 服務角色執行自動化 (主控台)

以下程序說明如何使用 Systems Manager 主控台來執行使用 IAM 服務角色 (或「取得角色」) 的自動化。

使用服務角色執行自動化

  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 (文件版本) 設定為您想要執行的版本。系統包括以下版本選項:

    • Default version at runtime (執行時間的預設版本):如果自動化 Runbooks 會定期更新且已指派新的預設版本,請選擇此選項。

    • Latest version at runtime (執行時間的最新版本):如果 Automation Runbook 會定期更新,而您想要執行最近更新的版本,請選擇此選項。

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

  5. 選擇 Next (下一步)

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

    注意

    此程序使用 Simple execution (簡易執行) 模式。不過,您也可以選擇 Rate control (速率控制)、Multi-account and Region (多帳戶和區域) 或 Manual execution (手動執行) 並以服務角色執行自動化。

  7. Input parameters (輸入參數) 部分,指定所需的輸入。對於 AutomationAssumeRole,輸入作為假設角色的 IAM 服務角色名稱。

    提示

    您可以從清單中選取角色,或開始輸入角色名稱,然後從篩選結果中選取角色。

  8. 選擇 Execute (執行)。主控台會顯示自動化的狀態。

使用 IAM 服務角色執行自動化 (命令列)

以下程序說明如何使用 AWS CLI (在 Linux、macOS 或 Windows 上) 或 AWS Tools for PowerShell 來執行使用 IAM 服務角色 (在此例中作為「取得角色」) 的自動化。

使用服務角色執行自動化

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

    如需相關資訊,請參閱安裝或升級 AWS 命令列工具

  2. 執行以下命令來啟動使用 IAM 服務角色的自動化。

    Linux & macOS
    aws ssm start-automation-execution \ --document-name RunbookName \ --parameters "ParametersRequiredByRunbook","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    Windows
    aws ssm start-automation-execution ^ --document-name RunbookName ^ --parameters "ParametersRequiredByRunbook","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName RunbookName ` -Parameter @{ "ParametersRequiredByRunbook"="ParameterValues"; "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"}

    以下是使用 Runbook AWS-RestartEC2Instance 文件,搭配 IAM 服務角色 AmazonSSMAutomationRole 重新啟動指定 EC2 執行個體的範例。

    Linux & macOS
    aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters "InstanceId=i-1234567890abcdef0","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-RestartEC2Instance" ^ --parameters "InstanceId=i-1234567890abcdef0","AutomationAssumeRole=arn:aws:iam::123456789012:role/AmazonSSMAutomationRole"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName "AWS-RestartEC2Instance" ` -Parameter @{ "InstanceId"="i-1234567890abcdef0"; "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole"}

    系統會傳回相關資訊,如下所示。

    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                     : {}

如需如何使用 Systems Manager Automation 的更多範例,請參閱 自動化演練。如需開始使用自動化的詳細資訊,請參閱 設定自動化