ライフサイクル設定でSageMaker StudioのJupyterLabのUIからファイルダウンロードの操作を表示させない
データ事業本部の鈴木です。
SageMaker StudioのJupyterLabからのファイルダウンロードをさせないようにできないか調べていたところ、re:Postで以下のやりとりを見つけました。
ライフサイクル設定から該当する拡張機能を無効化することでUIからダウンロードはできなくなるとのことですが、実際どうなるのか試して確認してみました。
課題感
SageMaker Studioはユーザープロファイルに紐づいた実行ロールでAWSの各種サービスにアクセスします。
JupyterLabインスタンス上にはデータを持ってきて分析したいものの、ユーザーのローカルPC上にはダウンロードさせたくないということはあると思います。
re:Postのナレッジを参考に実現できるか調べてみました。
やってみた
1. ライフサイクル設定の作成
re:Postのナレッジにしたがい、以下のように2つの拡張機能でダウンロードを無効化するコマンドを設定したライフサイクル設定を作成しました。
jupyter labextension disable @jupyterlab/docmanager-extension:download
jupyter labextension disable @jupyterlab/filebrowser-extension:download
ライフサイクル設定は、検証用のドメインにアタッチしておきました。
デフォルトには設定しませんでした。
2. 作成したライフサイクル設定を使わず起動した場合
まずはLifecycle Configurationの指定なしでスペースを起動しました。なお、今回使ったJupyterLabはVersion 4.3.5でした。
JupyterLabからファイルを選んで右クリックすると、Download
が選択でき、実際にファイルのダウンロードも可能でした。
3. 作成したライフサイクル設定を使って起動した場合
次に、作成したライフサイクル設定を指定してスペースを起動しました。
JupyterLabからファイルをブラウズすると、Download
がなくなっていることを確認できました。
JupyterLab拡張について
以下からJupyterLabのモジュールを確認できました。docmanager-extensionとfilebrowser-extensionも記載されています。
JupyterLab拡張機能は以下のガイドに記載があります。気になる方はご確認ください。
最後に
ライフサイクル設定でSageMaker StudioのJupyterLabのUIからファイルダウンロードの操作を表示させないようにする方法を試してみました。
SageMaker StudioはCode Editorなどもあるため、厳密には有効化してあるほかのアプリからダウンロードする口も全て使えなくする必要がありますが、軽く調べた限りだとすぐに情報はみつかりませんでした。どうしても気になる場合は不要なアプリにはアクセスできないようにするのがよさそうです。
参考になりましたら幸いです。