メニュー
Amazon EC2 Systems Manager
ユーザーガイド

ハイブリッド環境での Systems Manager の設定

Amazon EC2 Systems Manager では、オンプレミスサーバーと仮想マシン (VM) をハイブリッド環境でリモートかつ安全に管理できます。Systems Manager 向けにハイブリッド環境を設定すると、次のようなメリットがあります。

  • 同じツールやスクリプトを使用して 1 か所からオンプレミスのワークロードをリモートで管理できる一貫したセキュアな方法が作成されます。

  • AWS Identity and Access Management (IAM) を使用することでサーバーおよび VM で実行できるアクションのアクセス制御が一元化されます。

  • すべてのアクションが AWS CloudTrail に記録されるため、サーバーと VM で実行されるアクションの監査とビューが一元化されます。

  • サービス実行の成功に関する通知が送信されるように CloudWatch Events と Amazon SNS を設定できるため、モニタリングが一元化されます。

Systems Manager のハイブリッドマシンを設定するには、このトピックの手順をすべて実行します。

重要

完了すると、Systems Manager 向けに設定されているハイブリッドマシンは、マネージドインスタンスと Amazon EC2 コンソールに表示されます。Systems Manager 用に設定されている Amazon EC2 インスタンス、マネージドインスタンスです。ただし、Amazon EC2 コンソールにおいて、オンプレミスインスタンスは、プレフィックス ("mi-") 付きの Amazon EC2 インスタンスとは区別して表示されます。

IAM サービスロールの作成

ハイブリッド環境のサーバーおよび VM が Systems Manager SSM サービスと通信するには、IAM ロールが必要です。ロールは、SSM サービスに対する AssumeRole 信頼を付与します。

注記

サービスロールの作成は AWS アカウントごとに一度のみ行う必要があります。

AWS Tools for Windows PowerShell を使用して IAM サービスロールを作成するには

  1. 以下の信頼ポリシー (この例では SSMService-Trust.json) のテキストファイルを作成します。ファイル拡張子 (.json) を付けてこのファイルを保存します。

    Copy
    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ssm.amazonaws.com"}, "Action": "sts:AssumeRole" } }
  2. 以下のように New-IAMRole を使用して、サービスロールを作成します。この例では、SSMServiceRole という名前のロールを作成します。

    Copy
    New-IAMRole -RoleName SSMServiceRole -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
  3. 以下のように、Register-IAMRolePolicy を使用して、SSMServiceRole でセッショントークンを作成できます。セッショントークンは、Systems Manager を使用してコマンドを実行するためのアクセス権限をマネージドインスタンスに付与します。

    Copy
    Register-IAMRolePolicy -RoleName SSMServiceRole -PolicyArn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM

AWS CLI を使用して IAM サービスロールを作成するには

  1. 以下の信頼ポリシー (この例では SSMService-Trust.json) のテキストファイルを作成します。ファイル拡張子 (.json) を付けてこのファイルを保存します。

    Copy
    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ssm.amazonaws.com"}, "Action": "sts:AssumeRole" } }
  2. サービスロールを作成するには、create-role コマンドを使用します。この例では、SSMServiceRole という名前のロールを作成します。

    Copy
    aws iam create-role --role-name SSMServiceRole --assume-role-policy-document file://SSMService-Trust.json
  3. 以下のように、attach-role-policy を使用して SSMServiceRole でセッショントークンを作成できます。セッショントークンは、Systems Manager を使用してコマンドを実行するためのアクセス権限をマネージドインスタンスに付与します。

    Copy
    aws iam attach-role-policy --role-name SSMServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM

注記

ハイブリッドマシンで Systems Manager を使用する企業または組織のユーザーに、IAM のアクセス許可を付与し、SSM API を呼び出す必要があります。詳細については、「Systems Manager のセキュリティロールを設定する」を参照してください。

マネージドインスタンスのアクティベーションを作成する

ハイブリッド環境のサーバーおよび VM をマネージドインスタンスとしてセットアップするには、マネージドインスタンスのアクティベーションを作成する必要があります。アクティベーションが完了したら、アクティベーションコードと ID を受け取ります。このコードと ID の組み合わせは、Amazon EC2 のアクセス ID とシークレットキーに似ており、マネージドインスタンスから Systems Manager サービスへのセキュアなアクセスが可能になります。

コンソールを使用してマネージドインスタンスのアクティベーションを作成するには

  1. Amazon EC2 コンソール」を開き、ナビゲーションペインで [Systems Manager Shared Resources] を展開して、[Activations] を選択します。

  2. [Create an Activation] を選択します。

  3. フォームに入力し、[Create Activation] を選択します。

    アクティベーションが期限切れになる日付を指定することができます。有効期限日後にマネージドインスタンスを追加登録するには、新しいアクティベーションを作成する必要があります。有効期限日は、登録されて実行中のインスタンスには影響しません。

  4. マネージドインスタンスのアクティベーションコードと ID を安全な場所に保存します。ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールするとき、このコードと ID を指定します。コードと ID をなくした場合は、新しいアクティベーションを作成する必要があります。

AWS Tools for Windows PowerShell を使用してマネージドインスタンスのアクティベーションを作成するには

  1. AWS Tools for Windows PowerShell をインストールしたマシンで、AWS Tools for Windows PowerShell を使用して次のコマンドを実行します。

    Copy
    New-SSMActivation -DefaultInstanceName name -IamRole IAM service role -RegistrationLimit number of managed instances –Region region

    (例:

    Copy
    New-SSMActivation -DefaultInstanceName MyWebServers -IamRole RunCommandServiceRole -RegistrationLimit 10 –Region us-east-1
  2. Enter キーを押します。アクティベーションが正常に完了したら、システムからアクティベーションコードと ID が返されます。アクティベーションコードと ID を安全な場所に保存します。

AWS CLI を使用してマネージドインスタンスのアクティベーションを作成するには

  1. AWS Command Line Interface (AWS CLI) をインストールしたマシンで、CLI を使用して次のコマンドを実行します。

    Copy
    aws ssm create-activation --default-instance-name name --iam-role IAM service role --registration-limit number of managed instances --region region

    (例:

    Copy
    aws ssm create-activation --default-instance-name MyWebServers --iam-role RunCommandServiceRole --registration-limit 10 --region us-east-1
  2. Enter キーを押します。アクティベーションが正常に完了したら、システムからアクティベーションコードと ID が返されます。アクティベーションコードと ID を安全な場所に保存します。

Windows ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールする

開始する前に、前のセクションでマネージドインスタンスのアクティベーションを完了した後に送信されたアクティベーションコードと ID を見つけます。次の手順では、このコードと ID を指定します。

重要

この手順では、オンプレミス環境やハイブリッド環境のサーバーおよび VM を対象としています。Amazon EC2 Windows インスタンスに SSM エージェントをダウンロードおよびインストールする方法については、「Windows インスタンスでの SSM エージェントのインストールおよび設定」を参照してください。

ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールするには

  1. ハイブリッド環境のサーバーまたは VM にログオンします。

  2. Windows PowerShell を開きます。

  3. AWS Tools for Windows PowerShell に以下のコマンドブロックをコピーして貼り付けます。アクティベーションコード、アクティベーション ID、SSM エージェントをダウンロードするリージョンを指定します。[region] で、SSM を利用できるリージョンを選択します。たとえば、us-west-2 を選択します。

    Copy
    $dir = $env:TEMP + "\ssm" New-Item -ItemType directory -Path $dir cd $dir (New-Object System.Net.WebClient).DownloadFile("https://amazon-ssm-region.s3.amazonaws.com/latest/windows_amd64/AmazonSSMAgentSetup.exe", $dir + "\AmazonSSMAgentSetup.exe") Start-Process .\AmazonSSMAgentSetup.exe -ArgumentList @("/q", "/log", "install.log", "CODE=code", "ID=id", "REGION=region") -Wait Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration") Get-Service -Name "AmazonSSMAgent"
  4. Enter キーを押します。

このコマンドは、サーバーまたは VM に SSM エージェントをダウンロードしてインストールします。また、このコマンドは SSM サービスにサーバーまたは VM を登録します。これで、サーバーまたは VM はマネージドインスタンスになりました。コンソールに表示されるこれらのインスタンスには、"mi-" というプレフィックスが付きます。List コマンドを使用して、すべてのインスタンスを表示できます。詳細については、『Amazon EC2 Systems Manager API Reference』を参照してください。

Linux ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールする

開始する前に、マネージドインスタンスのアクティベーションを完了した後に送信されたアクティベーションコードと ID を見つけます。次の手順では、このコードと ID を指定します。

重要

この手順では、オンプレミス環境やハイブリッド環境のサーバーおよび VM を対象としています。Amazon EC2 Linux インスタンスに SSM エージェントをダウンロードおよびインストールする方法については、「Linux インスタンスでの SSM エージェントのインストールおよび設定」を参照してください。

以下のスクリプトの URL では、すべての AWS リージョンから SSM エージェントをダウンロードできます。特定のリージョンからエージェントをダウンロードするには、次の URL の 1 つを選択します。

  • Amazon Linux、RHEL、CentOS、および SLES 64 ビット

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm

  • Amazon Linux、RHEL、および CentOS 32 ビット

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_386/amazon-ssm-agent.rpm

  • Ubuntu Server 64 ビット

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • Ubuntu Server 32 ビット

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_386/amazon-ssm-agent.deb

次に、regionSSM を使用できるリージョンに置き換えます。

ハイブリッド環境のサーバーおよび VM に SSM エージェントをインストールするには

  1. ハイブリッド環境のサーバーまたは VM にログオンします。

  2. SSH に以下のコマンドブロックをコピーアンドペーストします。アクティベーションコード、アクティベーション ID、SSM エージェントをダウンロードするリージョンを指定します。root ユーザーの場合は sudo が必要です。

    Amazon Linux、RHEL 6.x、CentOS 6.x 上

    Copy
    mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo start amazon-ssm-agent

    RHEL 7.x および CentOS 7.x 上

    Copy
    mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo systemctl start amazon-ssm-agent

    SLES 上

    Copy
    mkdir /tmp/ssm sudo wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo rpm --install amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent

    Ubuntu 上

    Copy
    mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo amazon-ssm-agent -register -code "code" -id "id" -region "region" sudo service amazon-ssm-agent start
  3. Enter キーを押します。

このコマンドは、ハイブリッド環境のサーバーまたは VM に SSM エージェントをダウンロードしてインストールします。コマンドは、SSM エージェントを停止してから、サーバーまたは VM を SSM サービスに登録します。これで、サーバーまたは VM はマネージドインスタンスになりました。Systems Manager 用に設定されている Amazon EC2 インスタンスも、マネージドインスタンスです。ただし、Amazon EC2 コンソールにおいて、オンプレミスインスタンスは、プレフィックス ("mi-") 付きの Amazon EC2 インスタンスとは区別して表示されます。