IAPとは?App EngineでのIAPの有効化やってみた

GCP

IAP(Identity-Aware Proxy)って何?

そもそも、インターネット上のサイトには、大きく分けて2種類あります。

🟢 誰でもアクセスできるサイト(例:YouTubeやWikipedia等)
🔒 特定の人だけがアクセスできるサイト(例:学校の成績サイトや会社の社内ページ等)

IAPは、「特定の人だけアクセスできるようにする仕組み」です。

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

参考:Identity-Aware Proxy の概要

IAPと使うと、こんなことができます

機能
①ユーザーの本人確認 Googleアカウントでログインしている人かをチェックする
②権限があるかを確認 「この人は許可されたユーザーかどうか?」を確認
③許可されていない人をブロック 許可されていない人はアクセスができず、エラーメッセージが表示される

このようにIAPを使用することで、あるリソースについて、従業員にはアクセスを許可し、請負業者には許可しないように設定できます。また、特定の部門のみがアクセスできるようにすることもできます。

IAP以外に、Google Cloudでは他にもアプリケーションでユーザを認証する方法があります。

参考:ユーザーの認証

App EngineでのIAPを有効化する手順

App Engineに対して、IAPを有効化または無効化するには、下記の権限が必要です。

appengine.applications.update

参考:IAPの有効化と無効化

  • IAPの画面を開き、App Engine アプリのIAPの欄にチェックをつける

  • App Engineアプリの行をクリックすると、右側にApp Engineアプリの設定画面が出てきます。
    この画面のプリンシパルを追加をクリックして、アプリケーションへのアクセスを許可したいユーザやユーザーグループに対して、IAP-secured Web App Userロールを付与します。

 

このように設定することで、IAMロールを保持しないユーザがアクセスした場合に、このような画面が出るようになります。

注意点

IAPのコンソール画面にあるように、App Engineではアプリ単位でしかIAPの有効化ができません。

IAPの有効化と無効化内に注意書きにもありますが、App Engineアプリに複数のサービスがあり、サービス単位でIAPの有効化を制御したい場合、IAMポリシーで追加の設定が必要です。

注:1 つの App Engine アプリケーションが複数のサービスで構成されている場合に、一部のサービスは公開し、その他のサービスは制限された状態にするには、アプリケーション全体で IAP を有効にし、一般公開するサービスでIAP で保護されたウェブアプリ ユーザーのロールを「allUsers」または「allAuthenticatedUsers」に付与します。

まとめ

IAP(Identity-Aware Proxy)を使うことで、Google Cloud上のアプリケーションに対して「誰がアクセスできるか」を細かくコントロールできるようになります。
ネットワークレベルの制御だけに頼らず、アプリケーションレベルでのアクセス制御を実現できるのが大きな特徴です。

特に App Engine では、IAP をアプリ単位で有効化し、IAMロールでアクセスを制御する設計になっているため、

  • 社内ユーザーだけに見せる

  • 一部のサービスだけを一般公開する といった柔軟な運用が可能です。

本記事が、App Engine における IAP の役割や導入方法、注意点を理解する手助けとなれば幸いです。

コメント

PAGE TOP
タイトルとURLをコピーしました