17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

内容

標準化、ガバメントクラウド環境ではWindowsサーバが多いということで、AWS上のWindowsサーバーへの接続方法を記載します。閉域環境を前提として、Fleet ManagerとRDPクライアントを使用する方法について説明します。両方とも通常の接続方法に加え、+αの情報も記載します。

Fleet Manager

Fleet Managerは Systems Managerの中の1つの機能で、お手軽にリモートデスクトップ接続が出来る機能です。使用にあたる前提条件はこちらに記載されていますが、Session Managerと同様です。SSM AgentがインストールされたSystems Managerのマネージドノードで、下記IAMポリシーと閉域環境ではVPCエンドポイントが必要になります。公式AMIを使用するとSSM Agentはインストール済みとなっています。

なお、具体的には、IAMロールに設定したIAMポリシーに AmazonSSMManagedInstanceCore を付与し、下記 2 つの VPC エンドポイントを作成します。

  • ssm.ap-northeast-1.amazonaws.com
  • ssmmessages.ap-northeast-1.amazonaws.com

ssm01.png

Systems Manager → Fleet Managerのコンソールから接続することが可能です。

ssm04.png

なお、Fleet Managerを使用した接続ですが、クライアントから直接EC2サーバに接続しているわけではありません。EC2、クライアントがSystems ManagerのAPIに接続して、Systems Managerが中継しているようなイメージになります。そのため、EC2サーバのセキュリティグループのインバウンドルールでは特定の通信を許可する必要はありません。

ssm002.png

オンプレミスサーバの管理

Fleet Managerではオンプレミスのサーバの管理も行うことが可能です。

ssm003.png

オンプレミスサーバを管理するにはSystems Managerのマネージドノードにする必要があり、下記の作業が必要になります。

上記設定の流れを記載していきます。IAMサービスロールは、下記のようにSystems ManagerにAWS STS AssumeRoleの信頼関係を付与します。IAMポリシーは先ほどと同様に AmazonSSMManagedInstanceCore を付与します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ssm.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

Systems Managerのコンソールからアクティベーションコードを払い出します。

ssm03.png

公式マニュアル中にあるスクリプトを使用してSSM Agentをインストールします。この際、上記で発行したアクティベーションコードとアクティベーションIDを使用することで該当アカウントのマネージドノードとすることが出来ます。

[System.Net.ServicePointManager]::SecurityProtocol = 'TLS12'
$code = "activation-code"
$id = "activation-id"
$region = "us-east-1"
$dir = $env:TEMP + "\ssm"
New-Item -ItemType directory -Path $dir -Force
cd $dir
(New-Object System.Net.WebClient).DownloadFile("https://amazon-ssm-$region.s3.$region.amazonaws.com/latest/windows_amd64/ssm-setup-cli.exe", $dir + "\ssm-setup-cli.exe")
./ssm-setup-cli.exe -register -activation-code="$code" -activation-id="$id" -region="$region"
Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration")
Get-Service -Name "AmazonSSMAgent"

RDP クライアント

従来のRDPクライアントを使用する方法です。接続元端末と接続先EC2がネットワーク経路上で通信可能であり、ネットワークACLおよびEC2のセキュリティグループでTCP 3389が許可されていれば接続可能です。Direct Connectを使用して閉域接続する際はこちらでの接続方法が多いかと思います。

ssm004.png

通常接続するだけだと、記事として記載内容が思いつかないため、ここではEC2①に一度接続後、EC2①からRDPでEC2②に接続する多段接続の例を見てみます。

ssm05.png

EC2①がWindowsサーバの場合、RDPで接続後、EC2②に接続することが可能です。ただしRDPの管理接続は2セッションまでのため、3セッション以上の接続の場合はRemote Desktop Services(RDS)ライセンスサーバなどが必要になります。
ここではRDPで踏み台サーバに接続するのではなく、SSHポートフォワーディングをした接続方法を見てみます。(下記ではEC2①はLinuxサーバとしています。)

SSH ポートフォワーディング

SSHポートフォワーディングは、SSHトンネルを使用して、ローカルPCのポートへの通信をリモートサーバ経由で別のサーバの特定ポートへ安全に転送する方法です。

ssm06.png

ローカルPCで以下のコマンドを実行し、SSHトンネルを作成します。

ssh -L 13389:172.16.1.10:3389 -i key.pem ec2-user@192.168.1.10

ssm07.png

その後、mstsc /v localhost:13389 でローカルホストの13389番ポートに接続することでEC2②に接続することが可能です。

ssm005.png

17
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?