CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回は、2014年に公開されたエッセイ「BeyondCorp: A New Approach to Enterprise Security」をもとにして、Google社内のオフィスネットワークのアーキテクチャーを紹介します。オフィスネットワークに社外からアクセスする場合、一般の企業では、VPNがよく利用されますが、Googleの社内ネットワークにはVPN接続は存在せず、あらゆるシステムにインターネット経由で直接に接続できる環境が用意されています。VPNを用いずに、どのようにして社内システムのネットワークセキュリティーを確保しているのか、そして、なぜそのようなアーキテクチャーを採用したのか、その背景を読み解いてみたいと思います。
企業システムの社内ネットワークでは、これまで、ファイアウォールを用いたセキュリティ保護が基本的なモデルとして採用されてきました。「安全」な社内ネットワーク環境と、「危険」な外部ネットワークをファイアウォールで分離することで、社内システムのセキュリティを確保しようという考え方です。しかしながら、近年では、社内ネットワークと言えども無条件に「安全」とみなすことは難しくなってきました。社内環境にさまざまなデバイスが持ち込まれることもあれば、ファイアウォールを超えて社内システムが攻撃されるという事例もあります。そのため、「ファイアウォールの中に入れば、すべてが安全で信頼できる」という考え方そのものが、セキュリティ上のリスクをもたらす恐れがあります。社内ネットワーク環境もまた、インターネットと同様の「危険」な領域と考えて、その中に存在する社内アプリケーション環境を適切に保護する必要があるというわけです。
そこで、Googleでは、アクセス元のネットワーク環境ではなく、アクセスに使用する端末の個体識別とユーザー認証を組み合わせることで、アプリケーションごとにアクセスコントロールを行うという考え方を適用しました。冒頭のエッセイでは、これにより、「Google社員は、オフィス内、自宅ネットワーク、ホテルやコーヒーショップなど、あらゆる場所から同じ方法で社内システムが利用できるようになった」と説明されています。
前述のような、端末とユーザーを組み合わせたアクセスコントロールを実現するプロジェクトは、Google社内で「BeyondCorp」と呼ばれており、図1は、BeyondCorpを構成するコンポーネントを示した図になります。
図1 BeyondCorpを構成する主要コンポーネント(記事より抜粋)
少しばかり抽象的な図ですが、ユーザー認証とアプリケーションのアクセス制御に関わる主要コンポーネントには、次のようなものがあります。
・Device Inventory Database
BeyondCorpでは、社内ITチームによって管理された「Managed Device」の利用が前提となります。それぞれのデバイスには、個体を識別する証明書が導入されており、適切な証明書を持ったデバイスからのみ、社内アプリケーションへのアクセスが許可されます。また、それぞれのデバイスは、購入・配布・回収のライフサイクルに渡って管理されており、デバイスのインベントリーデータベースに利用者などの情報が記録されます。
・User and Group Database
デバイスの個体情報と同様に、それらのデバイスを利用するユーザーの情報も一元管理されており、ユーザー名に加えて、所属組織などの情報によってもアクセス管理ができるようになっています。また、これらのデバイス/ユーザー情報に基いたシングルサインオンのシステムが用意されています。
・Access Proxy
Googleの社内アプリケーションは、すべて、「Access Proxy」と呼ばれるシステムを通して、クライアントとの通信を行います。社内ネットワーク経由とインターネット経由、どちらについても、クライアントからのアクセスについては、このシステムが中継処理を行います。Access Proxyは、バックエンドシステムを用いたアクセスコントロールの処理に加えて、ロードバランスやバックエンドのアプリケーションのヘルスチェック、そして、DOS攻撃の検知など、コンシューマー向けのWebアプリケーションと同等のフロントエンド機能を有しています。また、クライアントとAccess Proxyの間の通信は、自動で暗号化が行われます。
・Access Control Engine
これは、社内アプリケーションにアクセスコントロールの共通サービスを提供するバックエンドシステムになります。Device InventoryやUser and Group Databaseの情報を用いて、シングルサインオンシステムと連携して、利用者の権限をチェックし、その情報を社内アプリケーションに提供します。社内アプリケーションの提供側は、これらの情報に基いたアクセス制限を実施することになります。アクセス権限の設定内容は、アプリケーションごとに個別設定が可能であり、冒頭のエッセイでは、社内バグ管理システムの例があげられています。たとえば、エンジニアリンググループのユーザーが開発用のデバイスからアクセスした際は、フルアクセス権が与えられ、その他の一般社員は、リードアクセスのみが可能になると言った権限設定が説明されています。
今回は、エッセイ「BeyondCorp: A New Approach to Enterprise Security」をもとにして、Google社内のオフィスネットワーク・アーキテクチャー、BeyondCorpを紹介しました。Googleでは、オフィス外の環境で日常的に仕事をする社員も多く、あらゆるネットワーク環境から安全に社内システムにアクセスできるというのは、業務効率の向上という点でも大きな意味を持っています。冒頭のエッセイには、旧来のVPNネットワークから、BeyondCorpの環境に移行した際の経験なども記載されいてますので、興味のある方はぜひ参考にしてください。
次回は、一般ユーザー(すなわち、一般のGoogle社員)から見た、BeyondCorpの利用について紹介したいと思います。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes