目次
はじめに
前回の記事では、VPC上にSimpleAD・WorkSpacesを構築し、ログインできるところまでの確認を行いました。今回は、SimpleADを使用してWorkSpacesを立ち上げた場合の実際の通信経路や、通信制御方法について確認していこうと思います。
WorkSpacesの実際の通信経路
前回の記事の中では、下記のような構成図とともにWorkSpacesの構成を確認しました。
しかし、こちらの図はかなり簡略化した構成図となります。しかし、前回のようにVPCのプライベートサブネット上にSimpleADを利用してWorkSpacesを構築した場合は、実際は下記のような形でリソースが作成されます。
SimpleAD・WorkSpacesの実体はAWS管理VPC上に構築されます。
AWSユーザーが指定したVPC内のサブネット上には、SimpleAD・WorkSpacesへ紐づくENIが出現する形です。
ユーザーがインターネット経由でWorkSpacesへアクセスする際は、AWS管理VPC上のAuth/SessionGatewayとStreaingGatewayあてに接続を行います。ユーザー→WorkSpaces間の通信の流れを整理した構成図が下記の物です。
ユーザーはWorkSpacesのクライアントアプリなどを利用してインターネット経由でWorkSpacesに接続できます。その際には、まずAWS上のAuth/SessionGatewayあてにTCPポート443番にて認証の通信が発生します。
Auth/SessionGatewayから、AWS管理VPC上のSimpleADあてに接続し、認証が行われます。認証が完了したら、AWS上のStreamingGatewayに対してストリーミングの通信が発生します。この際に利用するプロトコルは、WSP(TCP/UDPの4195ポート)もしくはPCoIP(TCP/UDPの4172ポート)となります(構成図内ではWSPの場合のポート番号を記載しています)。StreaingGatewayはAWS管理VPC上のWorkSpacesへ通信を中継します。
WorkSpacesはAWS管理VPCとユーザー管理VPCの二つのネットワークに同時に接続される状態となっています。ユーザー-WorkSpaces間のストリーミングトラフィックについては、WorkSpaces上からAWS管理VPC・StreamingGatewayあてに通信します。その他のトラフィックについては、WorkSpaces上からユーザー管理VPCあてに通信を行います。そのため、WorkSpaces内からインターネットへの通信は、下記の通信経路で行われます。
その為、WorkSpacesを利用する場合は、下記2種類の通信対して別々に通信制御を行う必要があります。
①Auth/SessionGateway、StreamingGateway経由で発生するAWS管理VPC内のWorkSpacesあての通信
②ユーザー管理VPC上のWorkSpacesのENIで発生するインバウンド/アウトバウンド通信
①のAuth/SessionGateway、StreamingGatewayの通信については、WorkSpacesの「IPアクセスコントロール」という機能にて制御することができます。また、②のユーザー管理VPC上のWorkSpacesENIの通信については、VPC内のセキュリティグループにて制御することができます。SimpleAD・WorkSpacesの通信制御可能箇所をまとめた構成図が下記となります。
WorkSpacesのIPアクセスコントロールグループについては、デフォルトでは作成されない状態となっています。WorkSpacesの接続元IPアドレスを制限したい場合は、WorkSpacesのコンソールから作成可能です。ユーザー管理VPC上のENIに対しては、SimpleAD・WorkSpacesを作成した時点で自動でセキュリティグループが割り当たっています。次セクションにて、実際のコンソールからIPアクセスコントロールグループ・セキュリティグループの内容を確認していきます。
なお、WorkSpacesの通信経路や認証の流れについては、BlackBeltオンラインセミナーの資料にも詳しい記載があります。特にADConnectorを利用してオンプレミス環境のADにて認証を行う場合は、BlackBeltの資料もご参照ください。
BlackBeltオンラインセミナー/Amazon WorkSpaces(Youtube)
BlackBeltオンラインセミナー/Amazon WorkSpaces Update(Youtube)
実環境確認
WorkSpacesのENI・セキュリティグループ確認
それでは、実際の環境にて、WorkSpacesのENI・セキュリティグループを確認します。AWSアカウントへログインし、WorkSpacesのサービストップ画面を表示します。
左メニューから「WorkSpaces」を押下します。
WorkSpacesの一覧が表示されます。WorkSpacesIDのリンクを押下します。
WorkSpacesの詳細画面が表示されます。「WorkSpacesIP」を手元にメモしておきます。
EC2のトップページへ移動します。左メニューから「ネットワークインターフェース」を押下します。
ネットワークインターフェースの一覧が表示されます。検索ボックスに、先ほど控えておいたWorkSpacesのIPアドレスを入力し、エンターキーを押下します。表示されたネットワークインターフェースのチェックボックスにチェックを入れると、ネットワークインターフェースの詳細を確認できます。「セキュリティグループ」の部分に表示されているセキュリティグループのリンクを押下します。
セキュリティグループの詳細を確認できます。WorkSpacesのセキュリティグループは、「WorkSpacesに割り当てているDirectoryServiceのディレクトリID_workspacesMembers」という名前で自動作成されています。デフォルトの状態だと、インバウンドルールには一つも許可設定がありません。
アウトバウンドルールについては、「0.0.0.0/0(すべてのアウトバウンド通信を許可)」の状態で設定されています。WorkSpacesからインターネットへの通信を制御する場合は、このセキュリティグループのアウトバウンドルールにて通信制御が可能です。
SimpleADのENI・セキュリティグループ確認
SimpleADのENIは、SimpleAD作成時に指定したサブネット2つにそれぞれ自動作成されています。SimpleADのプライベートIPアドレスも、コンソール上から確認可能です。DirectoryServiceのトップページに移動し、左メニューの「ディレクトリ」を押下します。表示されたディレクトリの一覧から、SimpleADのディレクトリIDのリンクを押下します。
SimpleADの詳細画面が表示されます。「DNSアドレス」の部分に表示されているIPアドレスをメモしておきます。
再度EC2のトップページに移動し、左メニューから「ネットワークインターフェース」を押下します。
先ほどと同じ要領で、ENIの一覧画面から先ほど控えて置いたIPアドレスを検索します。
IPアドレスごとにそれぞれENIが割り当たっていることが確認できます。
セキュリティグループのリンクを押下します。
SimpleADのセキュリティグループは、「SimpleADのディレクトリID_controllers」という名前で作成されています。
デフォルトの状態でも、すでにいくつかインバウンドルールの設定が行われています。SimpleADのデフォルトSGにて設定されているインバウンドルールについては、AWSのユーザーガイド(AWS 管理対象の Microsoft AD アクティブディレクトリで作成されるもの)をご確認ください。デフォルトの状態だと0.0.0.0/0にてインバウンドルールが設定されています。セキュリティ強化のためにセキュリティグループのルールを編集する場合は、AWSのユーザーガイド(AWS Managed Microsoft AD のネットワークセキュリティ設定を強化する)を参照し、ユースケースにあった形でセキュリティグループを設定してください。
IPアクセスコントロールグループの作成
IPアクセスコントロールグループについては、WorkSpacesのコンソールから確認できます。WorkSpacesのトップページから、左メニュー「IPアクセスコントロールグループ」を押下します。デフォルトの状態だとIPアクセスコントロールグループは一つも作成されていません。「IPアクセスコントロールグループを作成」を押下します。
IPアクセスコントロールグループの作成画面が表示されます。「グループ名」「説明」を入力します。
「ソース」にて、WorkSpacesへの接続を許可したいIPアドレスを入力します。
必要に応じてタグを設定可能です。グループ名・説明・ソースIPを指定したら、「作成」を押下します。
IPアクセスコントロールグループの作成が完了しました。IPアクセスコントロールグループの紐づけはSimpleAD単位となります。左メニューから「ディレクトリ」を押下します。
WorkSpacesに登録しているディレクトリの一覧が表示されます。ディレクトリIDのリンクを押下します。
ディレクトリの詳細画面が表示されます。そのまま下へスクロールします。
下へスクロールしていくと「IPアクセスコントロールグループ」というセクションがあります。「編集」を押下します。
IPアクセスコントロールグループの紐づけ編集画面が表示されます。IPアクセスコントロールグループの一覧の中からSimpleADに紐づけたいIPアクセスコントロールグループのチェックボックスにチェックを入れ、「関連付け」を押下します。
※Teradici のPCoIPゼロクライアントを利用してWorkSpacesにアクセスしたい場合は、ディレクトリへのIPアクセスコントロールグループの適用は避けてください。警告に表示されている通り、IPアクセスコントロールグループを適用すると、TeradiciのPCoIPゼロクライアントからWorkSpacesへのアクセスができなくなってしまいます。
参考:WorkSpaces の PCoIP ゼロクライアントをセットアップする
IPアクセスコントロールグループの適用が完了すると、ディレクトリの詳細画面の戻ります。
「IPアクセスコントロールグループ」セクションにて、紐づけられているIPアクセスコントロールグループを確認できます。
IPアクセスコントロールグループについては、いくつかクォータ制限があります。まず、一つのIPアクセスコントロールグループには設定できるルール数は10個までです。10個以上ルールを設定したい場合は、ディレクトリに対してIPアクセスコントロールグループを25個まで紐づけることが可能です。また、1リージョン当たりのIPアクセスコントロールグループ数の上限は100個までとなります。
IPアクセスコントロールグループを設定すると、許可されていないIPアドレスからのWorkSpacesへの接続が拒否されるようになります。許可されていないIPアドレスからWorkSpacesクライアントアプリを利用してWorkSpacesへアクセスしようとすると、「This device is not authorized to access the WorkSpace」というエラーが表示されます。
IPアクセスコントロールグループにて許可されているアドレスからクライアントアプリにてWorkSpacesへアクセスすると、エラーなくログインすることができます。