today::エンジニアに憧れる非エンジニア

今のところは、エンジニアとは言えないところの職種です。しかしエンジニア的なものの考え方に興味津津。

データレスPC™の裏をかき、ローカルに必要なプログラムやデータを保存する方法

「PC使用が強く統制された職場において、快適でセキュアなPC運用を手に入れるための方法」についての記事です。 仕事用PCの運用の自由度が高い方から見れば、「お前は何と戦っているんだ」系のネタともいえます。

前提

データレスPC™とは

横河レンタ・リース株式会社が提供する、一連のシステムプロダクトの運用形態を指す名称です。同社の商標となっています。

データレスPC™の大まかな特徴は以下の通りです。

  • 「ユーザーデータをPCから分離し、ファイルサーバー内に保存する」という運用を実現する
  • 横河レンタ・リースが提供する以下のプロダクトにより構成される運用形態である
    • Flex Work Place Passage Drive
    • Flex Work Place Unifire Cast
    • Flex Work Place Passage
    • Flex Work Place Unifire
    • Flex Work Place AppSelf
  • アプリケーションのインストールも、PC管理者が専用形式で提供する署名付きインストーラーでしか行うことができない
    • データレスPC™を構成するプロダクトの1つである「Flex Work Place AppSelf」の機能
    • 一方で、インストール不要のポータブルアプリケーションの利用には制限がない

データレスPC™の裏をかく

データレスPC™において、「ローカルPCは不可視化・書き込み禁止」と謳われています。 しかし、実は「ファイルシステムレベルでの書き込み禁止」は行われていません。 禁止されているのは、「WindowsエクスプローラーからのGUIアクセス」のみである模様です。

ということは、「何らかの手段を用いてシェルが利用可能なところまで持っていけば、シェルからローカルPC内のストレージを利用することができる」わけなのです。

データレスPC™の裏をかく行為が必要となる理由

現職の在宅勤務環境において、データレスPC™のデータにアクセスするためには、先に社内ネットワークにVPN接続を行わなければなりません。

VPN接続に用いるパスワードは、当然ながらVPN接続を行う前の段階で必要となります。 しかし、パスワード管理ソフトとパスワードデータベースをファイルサーバー側に置いてしまうと、「パスワード管理ソフトとパスワードデータベースにアクセスするためにVPN接続が必要になる」という事態が発生してしまいます。 これでは「VPN接続のためのパスワードをパスワード管理ソフトによる管理対象とする」ことはできません。

そのような状況で「VPN接続に必要なパスワードをパスワード管理ソフトによる管理対象とする」という運用を実現するために、「パスワード管理ソフトとデータをローカルに格納する」ということをしたいのです。

ローカルにどうしても必要になるリソース

以上の要件から、ローカルにどうしても必要になるリソースは以下になります。

  • パスワード管理ソフト
  • パスワード管理ソフトで使うパスワードデータベース

「パスワードデータベースを開くためにキーファイルを必要とする」という運用を行う場合は、当該キーファイルもローカルに必要となります。

データレスPC™の裏をかくために、PC外に必要となるリソース

PC外部に、「ポータブルアプリケーションを展開することができるファイルサーバー」が必要になります。 社内で用意されているファイルサーバー等で構いません。 シェルの実行に必要なアプリケーションを展開するために用います。

ローカルPCにリソースを持ち出す手順

  1. 何らかのシェルが使用可能な状態に持っていく
  2. シェルを使い、ローカルにどうしても必要になるリソースをCドライブ内の任意の場所にコピーする
  3. 実際のプログラムの実行は「ファイル名を指定して実行」ダイアログボックスから行う

何らかのシェルが使用可能な状態に持っていく

コマンドプロンプトの使用が管理者により禁止されている」「単体でPowerShellを起動することができない」という状況においても、使用可能なシェルが存在しないわけではありません。 前述の状態でも使用できる可能性があるシェルとしては、例えば以下のようなものがあります。

Visual Studio Code内のPowerShellにアクセスするためには、アクセス可能なファイルサーバーにVisual Studio Codeをポータブルモードで展開します。 Visual Studio Codeをポータブルモードで展開する手順については、@IT内のVS Codeを持ち運ぶには(ポータブルモード)にて詳しく説明がされています。

PortableGitの展開については、以下のようなWebサイトに説明があります。

シェルを使い、ローカルにどうしても必要になるリソースをCドライブ内の任意の場所にコピーする

WindowsそのものがインストールされているCドライブは、ローカルPC上の他のドライブとは異なり、常にローカルPC内の記憶領域となります。

コピーには、PowerShellCopy-Itemコマンドやbashcpコマンドを用います。 シェルからであれば、WindowsエクスプローラーのGUIからアクセスできないCドライブ内のリソースにアクセスが可能です。

コピー先としては、「自分のユーザーフォルダー内における任意の場所」がいいのではないかと思います。 「システムで使う領域を変にいじり、後で何をどうすればいいのかわからなくなる」という事態になっては困りますしね。

実際の実行は「ファイル名を指定して実行」ダイアログボックスから行う

データレスPC™環境において、Cドライブ内のリソースは、WindowsエクスプローラーのGUI画面からのアクセスは拒否されます。 しかし、以下のような方法でファイルのフルパスを指定してアクセス・実行することは可能です。

  • 「ファイル名を指定して実行」ダイアログボックスからパスを直接入力
  • ファイル指定ダイアログボックスでパスを直接入力

なお、上記ファイルを指定するダイアログボックスにおいては、ファイル名やフォルダー名はある程度入力すればサジェスト機能を使うことが可能です。 フルパス全部というのは覚えきれないので、サジェスト機能を頼るのが吉かと思います。