Chromeブラウザにセッションステートレスで接続できる WorkSpaces Web をちょっと触ってみたく、SAML 連携が必要なので AWS SSO (今は IAM Identity Center)で始める。
あんまり、「WorkSpaces Web」(WorkSpaces とは別物)の記事が無いので書きます。
WorkSpaces vs AppStream 2.0 vs WorkSpaces Web
結構似てる系のサービスで WorkSpaces
vs AppStream 2.0
vs WorkSpaces Web
が上がる。
大きな違いはセッションがステートレス(接続時に行った変更が反映されない)かどうか、利用できる機能がデスクトップすべてかブラウザだけか、なので、それをベースに選定できる。
要件のスコープを狭めることができるなら、その分コストが安くなるイメージ。
- Workspaces
- 自分専用のデスクトップを取得
- ログインする度に同じインスタンスを利用
- カスタマイズはログイン後も保持(永続性)
- 認証
- 自分専用のデスクトップを取得
- Workspaces Web
- AppStream2.0
- 2種類のステートレスな配信方式
- デスクトップ配信
- ステートレス(ログインする度に新しいインスタンスを利用)
- 管理者のみがデスクトップをカスタマイズ可能
- デスクトップ配信
- アプリケーション配信
- ステートレス(ログインする度に新しいインスタンスを利用)
- 管理者のみがアプリケーションをカスタマイズ可能
- 永続的なデータについてはオブジェクトストレージ(S3、Google Drive、oneDerive)か、テンポラリなディレクトリを使う
- 認証
- SAML
- ※ただしAD連携は可能だがユーザー認証はSAMLになるのでFederationの仕組み(Azure AD、ADFSなど)が必要 Amazon AppStream 2.0 で Active Directoryを利用することに対する私見 | DevelopersIO
- 2種類のステートレスな配信方式
WorkSpaces Web のウェブポータルを作成
VPC と サブネット
VPCとサブネットを指定する。
この際、プライベートサブネットを指定する必要がある。
インターネットにでたい場合は、合わせてそのサブネットに NATGW が紐づいている必要がある。
All subnets must be private. https://docs.aws.amazon.com/workspaces-web/latest/adminguide/general-requirements.html
ポリシー設定として開始する
ユーザー設定としてクリップボード、ファイル転送の挙動を設定する
AWS SSO と IdP 連携
WorkSpaces Web
ここから IdP との連携が必要になる。
まずは SP メタデータファイルをダウンロードする。
AWS SSO(IAM Identity Center)
別タブで AWS SSO の管理コンソールを開いて、アプリケーションの画面でアプリケーションを追加する。
※カスタム SAML 2.0 アプリケーションの追加
IAM Identity Center メタデータをダウンロードする。
WorkSpaces Web側でダウンロードした SP メタデータファイルをアプリケーション SAML メタデータファイルとしてアップロードする。
再び WorkSpaces Web
WorkSpaces Web の IdP の詳細にて、AWS SSO側でダウンロードした IAM Identity Center メタデータを IdP メタデータドキュメントとしてアップロードする。
AWS SSO にてユーザー属性のマッピング
これだけだとエラーが出たので、ユーザー属性のマッピングが必要そう。
WorkSpaces Web requires the subject or NameID to be mapped and set in the SAML assertion within your IdP's settings. https://docs.aws.amazon.com/workspaces-web/latest/adminguide/getting-started-step1.html#:~:text=Note-,WorkSpaces,-Web%20requires%20the
とあるように、 subject
か NameID
のマッピングが必要そう。
確認してみると Subject
のマッピング先が空になっている。
ので、Username
を入れる。
接続する
キャプチャし損ねたけど、SSO の画面に一度飛ばされる。
ファイルのダウンロード
ダウンロードすると、My Files
の ‘TemporaryFiles` にデフォルトで落ちるみたい。
ローカルのコピーをリモートにペースト
なんかこれは癖がある。
まず以下の作業をする。
そうするとリモートセッション内でペースト(Ctrl + v)すると、ペーストできる。
ファイルのアップロード
アップロードしようとすると、Linux のエクスプローラーが開いて、同様に My Files
の ‘TemporaryFiles` を見れるので、ここに上げておけば利用可能。
おまけ
完全に AppStream 2.0 が動いているのがわかってしまう
このブログ詳しい