オートメーションを実行する - AWS Systems Manager

オートメーションを実行する

デフォルトでは、オートメーションを実行すると、オートメーションはオートメーションを開始したユーザーのコンテキストで実行されます。例えば、 ユーザーが管理者のアクセス許可を持っている場合、オートメーションは、管理者のアクセス許可とオートメーションで設定されているリソースに対するフルアクセスを使用して実行されます。セキュリティのベストプラクティスとして、オートメーションは、AmazonSSMAutomationRole 管理ポリシーで設定されている IAM サービスロール (継承ロールとも呼ばれる) を使用して実行することをお勧めします。さまざまなランブックを使用するために、継承ロールに IAM ポリシーを追加する必要がある場合があります。IAM サービスロールを使用したオートメーションの実行は、委任管理者と呼ばれます。

サービスロールを使用すると、AWS リソースに対してオートメーションを実行することはできますが、オートメーションを実行したユーザーによる、それらのリソースに対するアクセスは制限されます (またはアクセスできません)。例えば、サービスロールを設定後、オートメーションでそのロールを使用して、1 つ以上の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを再起動できます。オートメーションは の一機能ですAWS Systems Manager オートメーションによってインスタンスは再起動されますが、ユーザーがそのサービスロールを使用して、そのインスタンスにアクセスすることはできません。

オートメーションを実行する際、ランタイムでサービスロールを指定するか、カスタムのランブックを作成して、ランブックで直接サービスロールを指定することができます。ランタイム時またはランブックでサービスロールを指定した場合、サービスは、指定したサービスロールのコンテキストで実行されます。サービスロールを指定しない場合、システムは、ユーザーのコンテキストで一時セッションを作成し、オートメーションを実行します。

注記

オートメーションを 12 時間以上実行する場合は、サービスロールを指定する必要があります。ユーザーのコンテキストで長時間稼働するオートメーションを開始すると、ユーザーの一時セッションの有効期限は 12 時間後に切れます。

委任管理者は、AWS リソースの昇格されたセキュリティと制御を保証します。また、アクションは複数の IAM リソースではなく、主要サービスロールのリソースに対して実行されているため、監査プロセスを強化することができます。

開始する前に

次の手順を完了する前に、IAM サービスロールを作成し、AWS Systems Manager の一機能であるオートメーションへの信頼関係を設定する必要があります。詳細については、「タスク 1: 自動化のサービスロールを作成する」を参照してください。

次の手順では、Systems Manager コンソールまたは任意のコマンドラインツールを使用してシンプルなオートメーションを実行する方法を説明します。

シンプルなオートメーションを実行する (コンソール)

次の手順では、Systems Manager コンソールを使用してシンプルなオートメーションを実行する方法を説明します。

シンプルなオートメーションを実行するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[オートメーション]、[オートメーションの実行] の順に選択します。

  3. [Automation document (自動化ドキュメント)] リストで、ランブックを選択します。[Document categories (ドキュメントカテゴリ)] ペインで 1 つ以上のオプションを選択して、目的に応じて SSM ドキュメントをフィルタリングします。自分が所有するランブックを表示するには、[Owned by me (自分が所有)] タブを選択します。自分のアカウントと共有されているランブックを表示するには、[Shared with me (共有ファイル)] タブを選択します。すべてのランブックを表示するには、[すべてのドキュメント] タブを選択します。

    注記

    ランブックの名前を選択すると、ランブックに関する情報を表示できます。

  4. [Document details (ドキュメントの詳細)] セクションで、[Document version (ドキュメントのバージョン)] が実行するバージョンに設定されていることを確認します。システムには、次のバージョンのオプションが含まれています。

    • [ランタイムのデフォルトバージョン]: 自動化ランブックが定期的に更新され、新しいデフォルトバージョンが割り当てられている場合は、このオプションを選択します。

    • [ランタイムの最新バージョン]: 自動化ランブックが定期的に更新され、直前に更新されたバージョンを実行する場合は、このオプションを選択します。

    • [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 を使用して指定した 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                     : {}