CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回は、2007年に公開されたホワイトペーパー「Fleet management at scale: How Google manages a quarter million computers securely and efficiently」を紹介します。ここでは、Google社員が日常業務に使用する端末の管理を自動化するツールが紹介されており、興味深いことにその大部分がオープンソースを利用したものか、あるいは、Google自身が開発してオープンソース化したものになっています。実際にどのようなオープンソースが使われているのか具体例を紹介してみたいと思います。
Googleでは、社員が日常業務に使用する標準端末として、Chromebookが採用されています。Chromebookの場合は、端末上に個人設定や個人ファイルを保存せずに利用できるクラウドネイティブな設計になっており、端末のさまざまな管理作業がはじめから自動化されています。しかしながら、業務上の必要性から、macOSやLinuxワークステーションなど、他の種類の端末も数多く使用されており、これらの管理を自動化するツールが必要となります。特にこのホワイトペーパーでは、次の5つの項目について、どのようなツールを使用しているのかが具体的に説明されています。
(1) OSの自動インストール:OSベンダーの標準設定ではなく、業務用にカスタマイズした内容でのOSのインストールを自動化する
(2) 端末のシステム設定:スクリーンロックなどセキュリティに関連する設定を自動化する(ユーザーによる変更を検知して修正する)
(3) 内蔵ハードディスクの暗号化:ハードディスクの暗号化とそれに伴う暗号化鍵の管理を自動化する
(4) 業務用ソフトウェアのパッケージ管理:業務用の標準ソフトウェアのパッケージ化と配布のシステムを用意する
(5) その他のソフトウェアの管理:ユーザーが独自にインストールするソフトウェアのセキュリティチェックを自動化する
冒頭でも触れたように、OSベンダーが提供する機能やツールでは不足する部分については、既存のオープンソースを利用するか、もしくは、独自に開発したものをオープンソースとして公開しています。今回は特に、macOSに関するツールをピックアップして紹介したいと思います。
まず、(1)については、オープンソースのAutoDMGを使用しています。これは、OSをインストール済みのディスクイメージを作成して、ネットワーク経由でインストール対象のハードディスクに書き込めるようにするツールです。Google社内にある分散ファイルシステム(DFS)上のイメージを社内ネットワーク経由で書き込んだ場合、約15分程度でインストール作業が完了すると記載されています。次に、(2)については、オープンソースのPuppetが使用されています。管理サーバーからプッシュ型で設定を配布するのではなく、端末上にインストールされたスタンドアローン型のクライアントが定期的に設定をチェックして、ポリシーに反する設定項目を自動修正します。
(3)のハードディスク暗号化については、Googleが独自に開発してオープンソース化した、Cauliflower Vestを使用しています。これは、Appleが標準提供する暗号化鍵の管理システムを利用して、暗号化を強制的に実行する機能を提供します。また、専用の鍵管理サーバーをAppEngineの環境にデプロイすることができます。
そして最後の(4)(5)は、端末にインストールするソフトウェアパッケージの管理です。業務用の標準ソフトウェアについては、外部のサイトからダウンロードするのではなく、社内に専用のリポジトリーを用意してそこから配布を行います。そのためのパッケージ配布・管理システムには、オープンソースのMunkiをベースとして、不足する機能を独自に追加したSimianが紹介されています。(ただしこれは、このホワイトペーパーが公開された2017年時点の情報です。現在は、Simianの開発は停止しています。)
また、Googleでは、外部サイトから取得したソフトウェアのインストールも原則としては、禁止されていません。この際、セキュリティ的に問題のあるソフトウェアの実行を防止するために、いくつかの仕組みが用意されています。特に、端末上で行われる標準的なセキュリティチェックに加えて、独自開発したオープンソースSantaによるホワイトリスティングが行われます。これは、実行対象のバイナリーのハッシュ値を計算して、事前に許可されたハッシュ値を持つソフトウェアのみ実行を許可するという仕組みです。
Santaによって実行が許可されなかった場合、該当のソフトウェアにはツールによるセキュリティチェックが行われて、問題が発見されなかった場合(もしくは、明示的に利用が禁止されたソフトウェアでない場合)、ユーザーはポップアップ画面のボタンを押して「ホワイトリスティング」の申請を行うことができます。一定数のユーザーからのリクエストがあれば、このソフトウェアのハッシュ値がデータベースに登録されて、実行が許可されるようになります。Santaによるハッシュ値のチェックは、ソフトウェアを起動するごとに行われるので、インストール後にバイナリーが改変された場合は、自動的に実行が禁止されることになります。
今回は、2007年に公開されたホワイトペーパー「Fleet management at scale: How Google manages a quarter million computers securely and efficiently」を紹介しました。業務用端末の管理については、それぞれの企業で独自のツールを用いることも多いと思いますが、開発したツールをオープンソースとして公開するというのは、興味深い取り組みかもしれません。
次回は、大規模なCI(Continuous Integration)環境の要となる、テストの効率化に関する話題をお届けします。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes