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 サービスロールを使用して、オートメーションを実行する (コンソール)

次の手順では、IAM サービスロール (つまり継承ロール) を使用する 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 (ドキュメントのバージョン)] が実行するバージョンに設定されていることを確認します。システムには、次のバージョンのオプションが含まれています。

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

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

    • [Default (デフォルト)]: ドキュメントの最初のバージョンを実行するには、このオプションを選択します。これはデフォルト設定です。

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

    ランブック 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 の使用方法の例については、「自動化のチュートリアル」を参照してください。自動化の使用を開始する方法についての詳細は、「オートメーションの設定」を参照してください。