【AWS】「AWS Systems Manager」経由でWindowsサーバーにリモートデスクトップ接続する方法

初めまして、クラウド導入・運用サービスにて構築担当している高木です。
AWSとスノーボードが大好きです。スノーボードは3年ほど前インストラクターの資格を取得したのですが、子供が産まれてからゲレンデから遠ざかってしまいました。子供が少し大きくなったら家族でゲレンデに遊びに行こうとひそかに計画しています。

それでは早速本題です。
今回のコラムでは、複数のユーザーが「AWS Systems Manager(以下AWS SSM)」経由でWindowsサーバーにリモートデスクトップ接続をする方法について紹介していきます。

恐らく皆さまもオンプレミス環境と同様に、AWS環境にWindowsインスタンスを構築した際も、システム構築やメンテナンスのために、リモートデスクトップ接続をされている事かと思います。

リモートデスクトップの接続方法はいくつかあると思いますが、代表的なものは踏み台サーバー経由でのアクセスではないでしょうか。しかし、踏み台サーバーの構築費用やランニング費用、運用管理等、本来のシステム管理以外の部分で時間とコストがかかります。

AWS SSMの利用料は無料で、アクセス権限の一括管理やアクセスログの集中管理ができるようになります。なお、アクセスログの保存には、別途CloudWatch LogsやS3の費用が必要になります。

そこで、今回はAWS SSMを利用した、リモートデスクトップを紹介していきます。

前半は、IAMにおけるユーザーの管理について、後半はリモートデスクトップ接続方法について案内していきます。

1.はじめに

AWS環境上に構築されたWindowsインスタンスへリモートデスクトップ接続を行うユーザー権限は、主にソフトウェア開発者やアプリケーション開発者、運用管理者等を想定しています。
それらのユーザーはリモートデスクトップ接続の権限のみ許可されており、AWSマネージメントコンソールへのアクセスはすべて拒否される運用ルールを想定しています。

今回のコラムでは、システム管理者がIAMユーザーの管理を行い、開発者や運用者は管理者から提供されたIAMの権限を利用してWindowsインスタンスにアクセスするような運用をイメージしています。

2.そもそもAWS SSMとは?

AWS SSMはAWS上のリソースを表示したり、インスタンスを制御するために使用できるAWSの管理サービスです。具体的には「インスタンスのパッチ管理」「アンチウィルス定義の更新」「ソフトウェアのインストール状況確認」「運用タスクの自動化」等の機能を有しています。詳細の説明は割愛しますが、運用管理フェーズでさまざまなメリットがありますので、是非皆さまも利用してみて下さい。

さて、今回のコラムではAWS SSMの中でも『Session Manager(以下 セッションマネージャー』という機能を利用します。

3.AWS SSMを利用しないと

AWS SSMを利用しない場合は、プライベートサブネットに所属するWinsowsインスタンスは外部ネットワークから直接接続する事はできません。開発者や運用者は必ずパブリックサブネットに所属する、踏み台サーバーを経由してWindowsインスタンスへログインする必要があります。管理者は、踏み台サーバーのグローバルIPアドレス、踏み台サーバーのログインIDパスワード等の認証情報を開発者や運用者に提供しなければなりません。

【図1】

4.AWS SSMを利用すると

AWS SSMを利用した場合、パブリックサブネットに所属する踏み台サーバーを経由する必要が無く、直接プライベートサブネットに所属するWindowsインスタンスへリモートデスクトップアクセスする事が可能になります。 管理者は、IAMグループで権限の一括管理ができるようになりますので、開発者や運用者毎に踏み台サーバー用の認証情報を提供する必要がなくなります。
また、AWS SSMではインスタンスへのアクセスログを記録するオプションがあります。『Amazon CloudWatch Logs』や『Amazon S3』と連携することで、セッションログデータの蓄積することも可能です。

AWS SSM利用のメリット(まとめ)

  • 踏み台サーバーの削減
  • 踏み台サーバー用の認証情報不要
  • 権限の一括管理
  • アクセスログの管理

AWS SSMを利用することで、コストと情報セキュリティの面で優れた運用ができます。

【図2】

5.IAMグループの作成(管理者が実行)

AWS SSMを利用する場合、どのようなセキュリティポリシーでWindowsインスタンスへのアクセスを制限するのでしょうか。

今回のコラムでは「IAMユーザー」と「IAMグループ」を利用して、Windowsインスタンスへリモートデスクトップを実行できる利用者を制限する方法を紹介していきます。

まずは、AWSマネージメントコンソールにログインし、サービス検索画面で「IAM」と入力します。

【図3】

  • 左側のダッシュボードから「グループ」から、「新しいグループの作成」を選択します。
【図4】

  • グループ名の設定画面では、任意のグループ名を指定します。
    ※今回は「AmazonSSMAccess-Group」とします。
  • 右下の「次のステップ」を選択します。
【図5】

ポリシーのアタッチ画面では、作成するIAMグループに与える権限を設定します。

  • フィルターの検索窓に「AmazonSSMFullAccess」を選択します。
  • フィルターの検索窓に「AmazonEC2ReadOnlyAccess」を選択します。
  • 右下の「次のステップ」を選択します。

確認画面に移動します。

  • 選択されているポリシー名を確認します。
  • 右下の「次のステップ」を選択します。
【図6】

IAMグループの一覧画面で、先程作ったIAMグループが出来ていることを確認します。

【図7】

6.IAMユーザー払い出し(管理者が実行)

次に、Windowsインスタンスへアクセスする利用者用のIAMユーザーを作成します。
IAMユーザーは同一アカウントを複数人で共有することはできませんので、必ず一人に一ユーザーを割り当てるようにしましょう。

ふたたびAWSマネージメントコンソールの画面を開きます。

  • IAMのダッシュボード画面から「ユーザー」から「ユーザーを追加」を選択します。
【図8】

ユーザーを追加の画面に移動します。

  • 「ユーザー名」の入力画面に任意のユーザー名を入力します。
  • 「アクセスの種類」の選択画面では「プログラムによるアクセス」を選択します。
  • 右下の「次のステップ」を選択します。

※今回「AWS マネジメントコンソールへのアクセス」については、開発者や運用者がAWSマネージメントコンソールにアクセスする要件が無いため、選択していません。運用ルールによってAWSマネージメントコンソールへのアクセスが必要な場合は選択頂いてもかまいません。

【図9】

アクセス許可の設定画面に移動します。

  • 「ユーザーをグループに追加」を選択します。
  • 先ほど作成した「AmazonSSMAccess-Group」を選択します。
  • 右下の「次のステップ」を選択します。
【図10】

タグの追加画面に移動します。

  • 任意のタグを設定します。
  • 右下の「次のステップ」を選択します。
【図11】

確認画面に移動します。

  • 内容が正しければ、右下の「ユーザーの作成」を選択します。
【図12】

ユーザー作成が成功します。

【図13】

  • 「.csvのダウンロード」を選択します。
  • 操作端末にcsvファイルがダウンロードされます。

csvファイルを開きます。

  • 「Access key ID」「Secret access key」の値を控えておきます。
【図14】

  • 「Access key ID」と「Secret access key」の値を控えます。

この値がユーザーそれぞれの認証コードのようなものになります。
一度csvファイルをダウンロードした後に、再度「Secret access key」をAWSマネージメントコンソールから確認する事や、再度csvファイルのダウンロードは出来ません。
ユーザー認証でセキュリティレベルの高い情報なので、大切に保管するようにしましょう。

7.リモートデスクトップ接続(開発者や運用者が実行)

次ここからの操作は、直接Windowsインスタンスを操作する開発者や運用者それぞれの操作端末で必要な作業になります。

操作端末からAWS SSM経由でリモートデスクトップを実施するために必要な「AWS CLI」「SSMプラグイン」をインストールしていきます。

まずは「AWS CLI」のインストールを進めます。
AWS CLIをインストールすることで、AWSの操作をコマンドプロンプトやPowerShellといったCUIの操作画面から制御できるようになります。
下記のAWS公式URLより、操作端末に切なインストーラーを選択しダウンロードします。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html別ウィンドウで開きます

ダウンロード後にインストールを実施し、操作端末にAWS CLIがダウンロードされたことを確認します。

次に「SSMプラグイン」をダウンロードします。
SSMプラグインをダウンロードすることで、AWS CLIからインスタンスへ接続する事ができるようになります。

下記のAWS公式URLより、操作端末に切なインストーラーを選択しダウンロードします。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html別ウィンドウで開きます

ダウンロード後にインストールを実施し、操作端末にSSMプラグインがダウンロードされたことを確認します。

コマンドプロンプトを開きます。

  • 「aws configure」コマンドを実行します。

IAMユーザーを作成したときに控えた、「Access key ID」「Secret access key」を入力します。

  • Access key ID:『.csvファイルにて控えた値』を選択。
  • Secret access key: 『.csvファイルにて控えた値』を選択。

リージョンとコード形式を選択します。

  • Default region name:『ap-northeast-1』を選択。
  • Default output format:『JSON』を選択。

リージョンとコード形式を選択します。

aws ssm start-session --target i-xxxx --document-name AWS-StartPortForwardingSession --parameters "portNumber=3389, localPortNumber=13389"

※「i-xxxx」の個所はWindowsのインスタンスIDを代入してください。

【図15】

Starting session with SessionId:・・・・
Port 13389 opened for SessionId・・・・
上記コメントが表示されるとポートフォワード成功です。

いよいよAWS上のWindowsサーバーにアクセスします。

  • 操作端末からリモートデスクトップ接続を選択します。
  • コンピュータ名に「localhost:13389」と入力します。
  • 接続を選択します。
【図16】

  • ユーザーアカウントを選択しWindowsパスワードを入力します。
【図17】

リモートデスクトップ接続が成功するはずです。

【図18】

これで踏み台サーバーを構築することなく、プライベートサブネットのWindowsインスタンスにリモートデスクトップする事が出来ました。

8.補足情報

開発者や運用者用に払出したIAMユーザーは、必要なくなった時に都度削除することをオススメします。業務で必要なくなったIAMユーザーをそのまま残しておくと、担当から離れた開発者や運用管理者にもアクセス権限が有効なままになっている状態となります。
IAMユーザーを削除することで、削除されたユーザーはSSM経由でリモートデスクトップ接続できなくなります。セキュリティ面で必要な管理だと思いますので、忘れずに実施してください。

また、長期間同じIAMユーザーで運用する場合は、一定期間でキー情報を更新しましょう。

上記の操作はAWSマネージメントコンソールの「IAM」で設定可能です。

9.おわりに

雑駁な内容でわかりづらかった個所もあったかと思いますが、最後までご覧いただきまして、ありがとうございました。

私個人の感想ですが、AWS SSMの利用に慣れてくると、踏み台サーバーからリモートデスクトップ接続するワンステップが必要なくなるので、サーバーへのアクセスが簡単になったように感じます。

皆さまもAWS SSMを利用して踏み台サーバーレスの構成にする事で、コスト的にも運用管理的にもスマートなシステムを実現してみては如何でしょうか。

以上、このコラムが皆さまの参考になりましたら幸いです。

Amazon Web Services(AWS)は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
本コラムに掲載のサービスや操作画面等は2020年6月時点の情報です。

移行準備段階で知っておくべきAmazon Web Servicesの
サービスを学び、具体的にクラウド検討を考える!

ネットワークからクラウドまでトータルサポート!!
NTT東日本のクラウド導入・運用サービスを確認してください!!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る