Google Cloud Platform

Identity-Aware Proxy を使ったウェブサイトへのアクセス制御

※この投稿は米国時間 2020 年 12 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。

ウェブサイトへのアクセスを制御する要件には、さまざまなものがあります。たとえば、社内ウェブサイトに、正社員、アルバイト、契約社員だけがアクセスできるようにする。誰でもアクセスできる一般公開サイトに、パーソナライズ機能を付け加える。許可されたユーザーのみがアクセスできるような厳しい制限付きのサイトを、安全なプラットフォーム上で実行する、などです。

これらは皆、ごく一般的な要件であり、それぞれについてさまざまな実現方法が考えられます。しかし、こうした要件すべてに対応できる、扱いやすく導入も簡単なソリューションがあります。Google Cloud Identity-Aware Proxy(IAP)です。

IAP とは、ウェブサイトへのリクエストをインターセプトし、リクエストを送信したユーザーを認証して、認証されたユーザーにのみサイトへのアクセスを許可する、という一連の処理を行うサービスです。IAP を使えば、多様なプラットフォーム上のウェブサイトを保護することが可能です。対応しているプラットフォームは、App Engine、Compute Engine のほか、Google Cloud ロードバランサの背後で動作するサービスなど、さまざまなものがありますが、その利用は Google Cloud に限定されません。IAP コネクタと合わせて使用すれば、オンプレミスのアプリケーションを保護することも可能です。

IAP Connector

IAP でウェブサイトを保護するための構成は、Google Cloud Console で行います。具体的には、[セキュリティ] サブメニューを使って IAP を有効にし、特定のサイトに適用します。続けて、「IAP で保護されたウェブアプリ ユーザー」ロールを特定のユーザーに与えて、アクセスを許可します。ロールを与える対象としては、個々のメールアドレス、メールドメイン全体、メールアドレス グループを指定できます。指定されたユーザーは、認証を受けた後、IAP で保護されたサイトに他のインターネット サイトとまったく同じようにアクセスできます。

use cases

目的にかかわらず、基本的な手順はほぼ同じです。

  • 会社のメールアドレスで認証を受けたユーザーのみがアクセスできる、社員専用の「イントラネット」サーバーを作成する: この場合、社内の Active Directory またはその他の LDAP ディレクトリに格納されている Gmail または Google Workspace のアドレスを Google Cloud Directory Sync 経由で認証します。または、他の一般的な ID プロバイダでサポートされているアドレスを認証することも可能です。

  •  IAP で「allAuthenticatedUsers」を許可するように指定して、認証を受けたユーザーが誰でもアクセスできるようにする: この場合、サイトへのアクセスを希望して認証されれば、誰でもアクセスすることが可能です。IAP のもう一つの主要機能として、各リクエストにヘッダーを追加し、ユーザー ID 情報を付け加えるというものがあります。リクエストを受信するサイト側では、このヘッダーの情報を使用することで、独自に認証を行わずに済みます。

  • 個々のメールアドレスではなく、1 つまたは複数のメールアドレス グループを指定して、そのグループだけがアクセスできるようにする: IAP で判別できるのは ID だけではありません。組織のデバイス ポリシーを設定すれば、このポリシーを満たしているグループ メンバーにのみアクセスを許可することが可能です。たとえば、特定の OS バージョンや、ブラウザまたはモバイル デバイスでの企業プロファイルの使用、会社所有機器の使用などを義務付けて、これらの条件に従っているユーザーのみにアクセスを限定できます。

私はこれまでの業務で、ウェブサイトのセットアップをはじめ、ユーザー登録および認証の管理、セッションのトラッキング、ファイアウォールの構成などを担当し、社内サイトへのアクセスには VPN を使用してきました。Identity-Aware Proxy のことを知り、こうした一切のことから解放されるのだと、安堵しました。まるで魔法のようです。同様の用途をお考えでしたら、ぜひ IAP をご検討ください。

-Cloud デベロッパー プログラム エンジニア Charlie Engelke