VS Code(Visual Studio Code)v1.57へバージョンアップ時の制限モード(Workspace Trust)のダイアログの対処

VS Code(Visual Studio Code)をv1.57へバージョンアップしたタイミングで
プロジェクトを信頼するかどうか(制限モードを利用)のダイアログについてメモしました。
経緯
VS Codeをアップデートした際にダイアログが表示され「No」を選択したところ
制限モードとなりできることが限定されてしまったためです。
環境
Visual Studio Code 2021 1.57
アップデート時のメッセージ
アップデート時に下記のメッセージが表示されました。
メッセージの内容原文
vbnetDo you trust the authors of the files in this folder?
Code provides features that may automatically execute files in this folder.
If you don't trust the authors of these files, we recommend to continue in restricted mode as the files may be malicious. See our docs to learn more.
メッセージの意味
開いたプロジェクトを信頼するかどうかのダイアログになります。
VS Codeでは他の人が作成したプログラムが実行される仕組みがあり、気付かぬうちに勝手に実行されてしまうことで不利益を被る可能性があります。
そのためプロジェクト自体が**信頼できる(Yes)か信頼できない(No)**かどうかの確認を求められています。
確認の回答
Yesと回答すると通常通りプロジェクトが起動します。
Noと回答すると制限モードでプロジェクトが起動します。
制限モードとは
ワークスペースの機能を一部無効化することのできる機能です。 タスク、デバッグ、ワークスペース設定、拡張機能など、いくつかのVS Code機能の操作を無効化や制限をすることによりコードの自動実行を防止します。
それぞれの制限
タスク
タスクはスクリプトとツールバイナリを実行できます。
タスク定義はワークスペースの.vscode
フォルダーで定義されているためリポジトリのソースとして管理するケースがあります。
その場合悪意のある人が作成したタスクがリポジトリへコミットされてしまった場合、知らないうちに実行する可能性があります。
そのため制限付きモードではタスクの実行は無効になります。
デバッグ
タスクの実行と同様に、デバッグ拡張機能は、デバッグセッションの起動時にデバッガーバイナリを実行できます。
そのため制限付きモードではデバッグは無効になります。
ワークスペース設定
ワークスペース設定はタスク同様に.vscode
配下のworkspace
のルートにあるフォルダーに保存されるため
悪意のある人悪意のあるコードを指すように設定すると、損傷を与える可能性があります。
そのため制限付きモードでは一部のワークスペース設定は無効になります。
拡張機能 拡張機能はユーザーに代わってコードを実行し害を及ぼす可能性があります。 そして一部の拡張機能には予期しない実行可能ファイルを実行するように構成されている場合に悪意を持って動作する可能性のある設定があります。
そのため制限付きモードではワークスペーストラストを明示的にオプトインしていない拡張機能は無効になります。
制限モードの切り替え
制限モードの切り替えは左下の歯車の設定から実施できます。
Manage Workspace Trustを開く
設定 > Manage Workspace Trust(ワークスペースの信頼を管理)
切り替え手順
信頼を取り消す場合とワークスペースを信頼する場合それぞれ下記の手順で実施します。
信頼を取り消す
Trusted Folders & workspaceの一覧から取り消したいプロジェクトの右側の×をクリック
ワークスペースを信頼する
Trusted Folders & workspaceの左下のAdd Folerから対象のディレクトリを開く
新規プロジェクト
ダイアログからYes, Itrust the authorsをクリック
参考文献
Visual Studio Code Workspace Trust security
- article
Copilot×Cursorでプラグインがぶつかる!VSCode拡張競合エラーの見分け方と対策集
- article
VSCode で快適に使う ESLint 拡張機能ガイド
- article
VSCodeで開発時のインポート補完(TypeScript)を相対パスからエイリアスにする設定
- article
Next.js のTypeScriptプロジェクトへeslint、stylelint、prittierを導入してVSCodeで自動フォーマットするまでの手順
- article
VS Code(Visual Studio Code)v1.57へバージョンアップ時の制限モード(Workspace Trust)のダイアログの対処
- blog
うちのチーム、これやってない?アジャイル開発を腐らせる、ありがちなアンチパターン 10 選と処方箋
- blog
CD パイプラインを構築して、開発チームを「リリース疲れ」から解放しよう
- blog
見積もりが全然当たらないあなたへ。プランニングポーカーで楽しく、納得感のある見積もりをするコツ
- blog
「QA は最後の砦」という幻想を捨てる。開発プロセスに QA を組み込み、手戻りをなくす方法
- blog
ドキュメントは「悪」じゃない。アジャイル開発で「ちょうどいい」ドキュメントを見つけるための思考法
- blog
「アジャイルコーチ」って何する人?チームを最強にする影の立役者の役割と、あなたがコーチになるための道筋
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来
- review
人類はなぜ地球を支配できた?『サピエンス全史 上巻』ユヴァル・ノア・ハラリが解き明かす驚愕の真実
- review
え?世界はこんなに良くなってた!『FACTFULNESS』ハンス・ロスリングが暴く 10 の思い込みの正体
- review
瞬時に答えが出る脳に変身!『ゼロ秒思考』赤羽雄二が贈る思考力爆上げトレーニング
- review
関西弁のゾウに人生変えられた!『夢をかなえるゾウ 1』水野敬也が教えてくれた成功の本質
- review
「なぜ私の考えは浅いのか?」の答えがここに『「具体 ⇄ 抽象」トレーニング』細谷功