あまぶろぐ

インフラと趣味のゆるいブログ

AWS Systems Manager でWindows Server にRDPする!

(やりたかったこと)

・プライベートサブネットのEC2(Windows)をRDPでメンテナンスする

・踏み台サーバは作りたくない

 

(実現方法)

AWS Systems Manager(SSM)でWindows Server にRDPする

 1.マネージドインスタンスにする

 2.SSMセッションマネージャーを使う

 

(はまったこと)

●パブリックサブネットとプライベートサブネットで実現方法が異なっていた

  ・パブリックサブネットでインターネットにアクセスできれば「SSM」でアクセス可能

  ・プライベートサブネットでインターネットにアクセスできない環境であれば、「SSM+VPCエンドポイント」でアクセス可能

 

(前提条件)

VPC、プライベートサブネット、EC2を事前に作成する

・SSMを利用するAWS用のユーザ(ssmuser)を作成する

・パソコンにAWS CLI、SSMプラグインをインストールする

・SSM用のグループ(AWSSSMaccess-G)を作成、ssmuserを追加する

・AWSSSMaccess-Gに2つのポリシーをアタッチ

  ・AmazonEC2ReadOnlyAccess

  ・AmazonSSMFullAccess 

 

(やったこと)

1.マネージドインスタンスにする

 ①EC2(Windows)にSSM Agentを入れる(大体はデフォルトで入っている)

 

 ②SSM APIへの通信経路を確保する。SSM AgentからSSM APIへアウトバウンド通信が発生する。これを確保する。SSM Agentからインターネットにアクセスできない場合、VPCエンドポイントを利用してSSM APIへの経路を確保する。VPCに3つのエンドポイントを追加、EC2からの接続(443)を許可するSGを作成し、エンドポイントにアタッチ。

  ・com.amazonaws.ap-northeast-1.ssm

  ・com.amazonaws.ap-northeast-1.ec2messages

  ・com.amazonaws.ap-northeast-1.ssmmessages

 

 ③EC2にIAMロールをアタッチする

  ・IAMポリシー「AmazonSSMManagedInstanceCore」をEC2用のIAMロールにアタッチ

 

 2.SSMセッションマネージャーを使う(セッションマネージャーで直接アクセス)

 ①パソコン側の操作

  ・aws configure、ssmuser のAccess Key ID、Secret Access Key、を入力

  ・aws ssm start-session --target EC2のインスタンスID --document-name AWS-StartPortForwardingSession --parameters "portNumber=3389, localPortNumber=13389"

  ・コマンドプロンプト画面で「Waiting for connections...」と表示されれば、RDP画面を起動

  ・アクセス先を「localhost:13389」とする

  ・WindowsのID、パスワードを入力する



参考文献:AWS BlackBelt , AWS Systems Manager