[アップデート] Amazon WorkSpacesで診断ログの自動アップロード機能がセルフサービス管理できる様になりました

2023.11.25

しばたです。

少し前の話ですがAWSから「Amazon WorkSpaces introduces self-service diagnostic log uploads」というタイトルの更新が発表されました。

この発表では「クライアントの診断ログの自動アップロード機能をセルフサービス管理できる様になった」と言っているのですが、実際に調査してみるとかなり謎の残る更新だったので分かる点について解説していきます。

更新内容

AWSの謳う更新内容自体は非常にシンプルです。
Amazon WorkSpacesのディレクトリ設定のうち、セルフサービスアクセス許可に新たに「診断ログのアップロード」が増えました。

この機能を有効にするとAmazon WorkSpacesクライアントアプリケーションで「診断ログの自動送信」機能が設定可能になります。

Windowsクライアントの場合だとこんな感じのメニューとなります。

メニューから実際に「有効・無効」を選ぶことができます。

ちなみにセルフサービスアクセスを無効にした場合はこんな感じでメニューに表示されません。

利用可能クライアント

本機能を使うためにはAmazon WorkSpacesクライアントが以下のバージョンである必要があります。

  • Windows Client : Ver.5.4.0 以降
  • macOS Client : Ver.5.8.0 以降
  • Ubuntu 22.04 Client : Ver.2023.1 以降
  • Ubuntu 20.04 Client : Ver.2023.1 以降

診断ログの自動アップロード機能

診断ログの自動アップロード機能は名前の通りWorkSpacesクライアント側のログ情報をAWSへ自動送信するものとなります。

この機能はWorkSpacesクライアントにより特定のタイミング(詳細は非公開)でログ情報をAWSに送信し、トラブル発生時にAWSサポートが参照するために使われます。
送信する内容に機微な情報は無いとのことで、また、実際にAWSサポートとやり取りする際には利用者がクライアントのデバイスIDを連絡する必要があります。

送信される情報については明言されていませんが、こちらのre:Postの投稿によると通常のWorkSpacesクライアントログをそのまま送っているとされています。

この投稿を信頼すべきか少し悩みましたが、実際のクライアントログ *1を見る限り正しそうです。
(適宜発行されたPre-singed URLに対してログファイルをアップロードしている模様) 

従来クライアントログをAWSサポートに提出するのは手作業で行う必要がありましたが、この機能はそれを自動化してくれるものと考えれば良いでしょう。

不明点

ここからは不明点について触れていきます。
主に過去の経緯について謎な部分が多いです。

1. 診断ログの自動アップロード機能の提供時期

診断ログの自動アップロード機能自体は昔から存在していました。
たとえばAWS API Changesによれば2022年9月29日の更新で本機能が導入されています。

Amazon WorkSpacesクライアントの対応もWindows版だとVer.5.4.0から対応しており、これは2022年10月5日の提供です。

Added support for automatic diagnostic log uploads feature that allows you to upload WorkSpaces client log files directly to WorkSpaces to troubleshoot issues without interrupting use of the WorkSpaces client.

おぼろげながら私の記憶でも「診断ログの設定メニュー自体は以前からあった...ような?」という印象があります。
当時のWorkSpacesクライアントがどの様な設定になっていたかは今となっては思い出せません...

2. AWS REST APIの建付け

また、この機能はREST API上ClientPropertiesに属する設定となり、通常のセルフサービス設定となるSelfservicePermissionsとは異なります。

実際の挙動を見る限り「ディレクトリ単位でのログアップロードの可否、兼、セルフサービス設定の可否」と2つの機能を兼務している様です。

既存の「このアカウントを記憶する」もディレクトリ単位なのにマネジメントコンソール上はセルフサービス許可にいるためある意味仕方ないのかもしれませんが、正直めちゃくちゃ分かりにくいです。

REST APIの設計がなぜこの様になっているのかはAWSのみぞ知るといった感じです。

3. 設定の有効範囲

こちらはドキュメントに記載が無いのですが、実際のクライアントログを確認するとログの自動アップロード機能は3つのレイヤーに対する設定を持っている様です。

  • AWSリージョン単位 (Region Preference) : ユーザーによる設定は不可
  • ディレクトリ単位 (Admin Preference) : ClientPropertiesの設定が反映される
  • クライアント単位 (User Preference) : クライアントアプリケーションの設定が反映される

そして、上記すべてのレイヤーでアップロードする(True)設定になるとはじめて自動アップロードが機能する様になっていました。
設定を変えながら試した結果は以下の通りです。

Windowsクライアントのログ(抜粋)

# 本日時点ではRegion Preference は常にTrueの模様

# セルフサービスアクセス有効、クライアント設定有効 → アップロードする
2023-11-25T08:02:48.947Z { Version: "5.16.0.4366" }: [INF] Diagnostic log upload preference settings: Region Preference [true], User Preference [true], Admin Preference [true]
2023-11-25T08:02:48.948Z { Version: "5.16.0.4366" }: [INF] Started diagnostics log uploader trigger timer.

# セルフサービスアクセス有効、クライアント設定無効 → アップロードしない
2023-11-25T08:07:31.888Z { Version: "5.16.0.4366" }: [INF] Diagnostic log upload preference settings: Region Preference [true], User Preference [false], Admin Preference [true]
2023-11-25T08:07:31.888Z { Version: "5.16.0.4366" }: [INF] Diagnostics uploading is not enabled, continuing without initializing the log uploader.

# セフルサービスアクセス無効、ユーザー設定有効 → アップロードしない
2023-11-25T07:55:28.141Z { Version: "5.16.0.4366" }: [INF] Diagnostic log upload preference settings: Region Preference [true], User Preference [true], Admin Preference [false]
2023-11-25T07:55:28.141Z { Version: "5.16.0.4366" }: [INF] Diagnostics uploading is not enabled, continuing without initializing the log uploader.

# セフルサービスアクセス無効、ユーザー設定無効 → アップロードしない
2023-11-25T09:36:47.485Z { Version: "5.16.0.4366" }: [INF] Diagnostic log upload preference settings: Region Preference [true], User Preference [false], Admin Preference [false]
2023-11-25T09:36:47.485Z { Version: "5.16.0.4366" }: [INF] Diagnostics uploading is not enabled, continuing without initializing the log uploader.

推測

ここまでの結果から、おそらくですが診断ログの自動アップロード機能は本日まで裏メニュー的な存在だったのだと推測します。

いくつか既存環境を調べましたがClientProperties.LogUploadEnabledの値はDISABLEDでした。
対してクライアントのアプリの設定はデフォルトUser Preference = Trueであり、AWSサポートとのやりとりのなかでClientProperties.LogUploadEnabledENABLEDに変えログの自動アップロードをする様にしていたのでしょう。

今回この設定をマネジメントコンソールで可能にすることで利用者への機能の周知を図ったのだと思います。

なお、いつからかそうなったのかは不明ですが、現在は新規にディレクトリとの紐づけを行うとClientProperties.LogUploadEnabledの値はENABLEDになる様です。

既存環境は必要に応じて機能のオプトイン、新規環境は必要に応じて機能のオプトアウトする形になります。

最後に

以上となります。

更新内容自体はシンプルなものでしたが、過去の経緯を考えると多くの謎が残るものでした。
過去の情報については多分に間違っている可能性があるのでご了承ください。

脚注

  1. アップロード機能自体のログもある