Amazon Workspacesを調べてみた

# 背景・目的
仮想デスクトップ機能を調べる機会があり、Amazon WorkSpacesを数回しか利用したことがなかったので整理します。

# まとめ
- WorkSpacesはWorkSpaces Familyとして3つある。
- WorkSpacesはVPC上に作られて、インターネットに接続できる必要がある。
- プロトコルは下記から選択が可能。
    -  PCoIP
    -  WorkSpaces Streaming Protocol (WSP) 

# 概要
[Amazon WorkSpaces Family](https://aws.amazon.com/jp/workspaces/)として下記の3つがあるようです。
- Amazon WorkSpaces
    - すべてのタイプのワーカーに対応した包括的かつ完全永続型の仮想デスクトップ
- Amazon WorkSpaces Core
    - サードパーティのVDIソフトウェア向けの仮想デスクトップインフラAPI
- Amazon WorkSpaces Web
    - 社内WebサイトやSaaSアプリにアクセスするための安全で低コストのブラウザサービス

ここでは、WorkSpacesについて、整理します。

## Amazon WorkSpacesとは
下記のユーザ向け仮想クラウドベースのデスクトップを提供できる。
- Microsoft Windows
- Amazon Linux
- Ubuntu Linux

必要に応じてユーザをすばやく追加、削除可能で、ユーザは複数のデバイスまたはウェブブラウザからアクセスが可能。

### 機能
- 対応OSは上述の通り
- プロトコルを下記から選択が可能。
    -  PCoIP
    -  WorkSpaces Streaming Protocol (WSP) 
- WorkSpace に接続し、中断したところからピックアップ｡ WorkSpaces は、永続的なデスクトップエクスペリエンスを提供する。
- 月単位または時間単位の柔軟性のある支払いオプションが用意されている
- WorkSpaces Application Manager (Amazon WAM) を使用して、Windows WorkSpaces 用のアプリケーションをデプロイおよび管理することが可能。
- Windows デスクトップの場合、保有しているライセンスとアプリケーションの導入が可能。または、AWS Marketplace for Desktop Apps から購入することも可能。
- ユーザー用にスタンドアロンのマネージド型ディレクトリを作成するか、WorkSpaces をオンプレミスのディレクトリに接続する。これにより、既存の認証情報を使用して、自社リソースにシームレスにアクセスが可能。
- 同じツールを使用して､オンプレミスデスクトップの管理に使用する WorkSpace を管理可能
- MFAによりセキュリティ強化
- KMSを使用して、データ、ディスクI/O、ボリュームスナップショットを暗号化
- ユーザアクセスをIPアドレスで制御が可能

### アーキテクチャ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/6dccbebb-445d-64fc-e3e8-d33decc5a28a.png)
[出典：WorksSpaces アーキテクチャ](https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/amazon-workspaces.html)
- ①②③ すべての認証情報、セッションについてはポート443でHTTP接続する
- ③④⑤⑥a、⑥b Simpe AD、AD Connectorディレクトリを使用してユーザ認証する。
    - また、AWS Managed Microsoft ADも使用可能。
- ⑦⑧ WorkSpacesへのピクセルストリーミングにポート4172（PCoIP）または、4195（WSP）を使用して、ヘルスチェックに4172,4195を利用する。
- 各WorkSpacesは、管理およびストリーミング用にeth0とプライマリネットワークインタフェース様にeth1のENIが関連付けられている。

### WorkSpaceへのアクセス
下記のクライアントアプリケーションにより、WorkSpacesに接続が可能。

::: note info
Linux WorkSpacesにはWebブラウザから接続不可
:::

- アプリケーション
    - Windows
    - Mac
    - Ubuntu Linux 18.04
    - Chromebook
    - iPad
    - Android
    - Fireタブレッド
    - ゼロクライアントデバイス
- Webブラウザ
    - Chrome53以降(Windows MacOSのみ)
    - Firefox49以降

## WorkSpaces のネットワーキングとアクセス
気になったところだけピックアップします。

### WorkSpacesのプロトコル
2つのプロトコルをサポートしている。選択するには、デバイスの種類、OS、NW条件、双方向の動画サポートの要否など、いくつかの要因で決まります。
- PCoIP を使用すべき場合
    - iPad または Android の Linux クライアントを使用する場合。
    - Teradici ゼロクライアントデバイスを使用する場合。
    - GPU ベースのバンドル (Graphics.g4dn、GraphicsPro.g4dn、Graphics、GraphicsPro) を使用する必要がある場合。
    - スマートカード以外のユースケースに Linux バンドルを使用する必要がある場合。
    - 中国 (寧夏) リージョンで WorkSpaces を使用する必要がある場合。
- WSP を使用する場合
    - エンドユーザーのネットワーク状態をサポートするために、損失/レイテンシーの許容値を高くする必要がある場合。
        - 例えば、グローバルに WorkSpaces にアクセスしているユーザーや、信頼性の低いネットワークを使用しているユーザーがいる場合です。
    - ユーザーがスマートカードで認証したり、セッション内でスマートカードを使用したりする必要がある場合。
    - セッション内でウェブカメラサポート機能が必要な場合。
    - Windows Server 2019 を搭載した WorkSpaces バンドルで Web Access を使用する必要がある場合。
    - Ubuntu WorkSpaces を使用する必要がある場合。

### WorkSpaces 用に VPC を設定する
WorkSpacesはVPCで起動する。OSの更新や、アプリケーションをデプロイできるようにインターネットに接続できる必要がある。
VPCサブネットは、WorkSpacesを起動するリージョンの異なるAZに存在する必要がある。
[こちら](https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/amazon-workspaces-vpc.html)では、1つのパブリックサブネットと2つのプライベートサブネットでVPCを設定することを推奨している。

### WorkSpaces と SAML 2.0 の統合
SAML2.0 をデスクトップセッションの認証のために WorkSpaces と統合すると、ユーザーはデフォルトのウェブブラウザから既存のSAML 2.0 ID プロバイダー (IdP) 認証情報と認証方法を使用できるようになる。
IdP を使用して WorkSpaces へのユーザーの認証を行うと、多要素認証やコンテキストに応じたアクセスポリシーなどの IdP 機能を採用することで、WorkSpaces を保護することができる。

### WorkSpaces のセキュリティグループ
WorkSpaces にディレクトリを登録すると、下記の2つのセキュリティグループが作成される。
- ディレクトリコントローラー用
- ディレクトリ内の WorkSpaces用

## WorkSpace ユーザーを管理する
各 WorkSpace は 1 人のユーザーに割り当てられており、複数のユーザーで共有することはできない。
デフォルトでは、ディレクトリごとに 1 ユーザーあたり 1 つの WorkSpace のみ許可される。
ただし、必要に応じて、ディレクトリ設定に応じて、1 ユーザーに対して複数の WorkSpace を作成が可能とのこと。

## WorkSpaces のディレクトリを管理する
WorkSpaces は、ディレクトリを使用して、WorkSpaces とユーザーの情報を格納し管理します。下記のオプションの 1 つを使用できる。
- AD Connector
    - 既存のオンプレミス Microsoft Active Directory を使用
    - ユーザーはオンプレミスの認証情報を使用して WorkSpaces にサインインし、自分のWorkSpaces からオンプレミスのリソースにアクセス可能
- AWS Managed Microsoft AD 
    - AWSでホストされる Microsoft Active Directory を作成
- Simple AD
    - Samba 4を搭載し、 AWSでホストされている Microsoft Active Directory と互換性のあるディレクトリを作成
- 相互信頼
    - AWS Managed Microsoft AD ディレクトリとオンプレミスドメイン間の信頼関係を作成します。

# 参考
https://aws.amazon.com/jp/workspaces/

https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/amazon-workspaces.html