Cloud Identity-Aware Proxy の概要

このページでは、Cloud Identity-Aware Proxy(Cloud IAP)の基本概念について説明します。

Cloud IAP を使用すると、HTTPS によってアクセスされるアプリケーションの一元的な承認レイヤを確立できるため、ネットワークレベルのファイアウォールに頼らずに、アプリケーションレベルのアクセス制御モデルを使用できます。

Cloud IAP のポリシーは組織全体に拡張されます。アクセス ポリシーを一元的に定義し、それをすべてのアプリケーションとリソースに適用できます。ポリシーを作成して適用する専門チームを割り当てると、アプリケーション内の誤ったポリシーの定義や実装からプロジェクトが保護されます。

Cloud IAP の用途

Cloud IAP は、アプリケーションとリソースに対してアクセス制御ポリシーを適用する際に使用します。Cloud IAP は、署名済みヘッダーまたは App Engine スタンダード環境の Users API と連動してアプリを保護します。Cloud IAP では、グループベースのアプリケーション アクセスを設定できます。あるリソースを、従業員がアクセスできて請負業者がアクセスできないようにしたり、特定の部門のみがアクセスできるようにしたりできます。

Cloud IAP の仕組み

Cloud IAP によって保護されているアプリケーションまたはリソースには、適切な Cloud Identity Access Management(Cloud IAM)役割を持つユーザーとグループがプロキシ経由でのみアクセスできます。Cloud IAP によってアプリケーションまたはリソースへのアクセスをユーザーに許可すると、使用中のサービスによって実装されたきめ細かいアクセス制御が適用され、VPN を使用する必要がなくなります。ユーザーが Cloud IAP で保護されたリソースにアクセスしようとすると、Cloud IAP が認証と承認のチェックを行います。

App Engine
Cloud IAP 使用時の App Engine へのリクエストパスの図
Compute Engine
Cloud IAP 使用時の Compute Engine と Kubernetes Engineへのリクエストパスの図
Kubernetes Engine
Cloud IAP 使用時の Compute Engine と Kubernetes Engineへのリクエストパスの図

認証

Google Cloud Platform(GCP)リソースへのリクエストは、App Engine または Cloud Load Balancing(HTTPS)経由で送信されます。これらのサービスの処理インフラストラクチャ コードは、Cloud IAP がアプリまたはバックエンド サービスに対して有効になっているかどうかを確認します。Cloud IAP が有効になっている場合は、保護されたリソースに関する情報が Cloud IAP 認証サーバーに送信されます。これには、GCP プロジェクト番号、リクエスト URL、およびリクエスト ヘッダーや Cookie 内の Cloud IAP 認証情報などの情報が含まれます。

次に、Cloud IAP はユーザーのブラウザ認証情報をチェックします。存在しない場合、ユーザーは OAuth 2.0 の Google アカウント ログインフローにリダイレクトされ、トークンが今後のログインのためにブラウザの Cookie に保存されます。既存のユーザー用の Google アカウントを作成する必要がある場合は、Google Cloud Directory Sync を使用して Active Directory または LDAP サーバーと同期できます。

リクエストされた認証情報が有効である場合、認証サーバーはこれらの認証情報を使用してユーザーの ID(メールアドレスとユーザー ID)を取得します。認証サーバーは、この ID を使用してユーザーの Cloud IAM 役割をチェックし、ユーザーがリソースにアクセスする権限を持っているどうかをチェックします。

Compute Engine または Kubernetes Engineを使用している場合、仮想マシン(VM)のアプリケーション処理ポートにアクセスできるユーザーは Cloud IAP 認証をバイパスできます。Compute Engine と Kubernetes Engineのファイアウォールは、同じネットワーク上の他の VM や Cloud IAP で保護されたアプリケーションと同じ VM 上で実行されているコードからのアクセスを防御しません。セキュリティを確保するには、ユーザーの責務を確認してください。

承認

認証後、Cloud IAP は関連する Cloud IAM ポリシーを適用して、ユーザーが要求されたリソースにアクセスする権限を持っているかどうかをチェックします。リソースが存在する Cloud Platform Console プロジェクトで Cloud IAP の access: HTTPS 役割を持つユーザーは、アプリケーションにアクセスする権限があります。Cloud IAP の access: HTTPS 役割リストを管理するには、Cloud Platform Console の Cloud IAP パネルを使用します。

リソースの Cloud IAP を有効にすると、OAuth 2.0 クライアント ID とシークレットが自動的に作成されます。自動的に生成された OAuth 2.0 認証情報を削除すると、Cloud IAP が正しく機能しなくなります。OAuth 2.0 認証情報は、Cloud Platform Console の [API とサービス] で表示および管理できます。

ユーザーの責務

Cloud IAP は、App Engine または Cloud Load Balancing HTTP(S) に対するすべてのリクエストの認証と承認を保護します。Cloud IAP は以下を防御しません。

  • VM 内部のアクティビティ(他のユーザーが SSH 経由で VM にアクセスした場合など)。これには、App Engine フレキシブル環境ベータ版で VM への直接の SSH アクセスが有効になっている場合が含まれます。
  • プロジェクト内部のアクティビティ(プロジェクト内の別の VM など)。

セキュリティを確保するには、次の予防措置を講じる必要があります。

  • 処理インフラストラクチャを経由しないトラフィックを防御するようにファイアウォールとロードバランサを設定します。
  • 署名済みヘッダーまたは App Engine スタンダード環境の Users API を使用します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Identity-Aware Proxy のドキュメント