このページでは、App Engine スタンダード環境またはフレキシブル環境のアプリケーションをデプロイし、それを Identity-Aware Proxy(IAP)で保護する手順について説明します。このクイックスタートには、ログインしているユーザーの名前を確認する App Engine スタンダード環境ウェブアプリのサンプルコードが含まれています。
コンテンツ配信ネットワーク(CDN)からリソースを提供する予定の場合、ベスト プラクティス ガイドの重要な情報をご覧ください。
Google Cloud 上にないリソースを保護するには、オンプレミスのアプリとリソースの保護をご覧ください。
準備
App Engine で IAP を有効にするには、次のものが必要です。
- 課金が有効になっている Google Cloud コンソール プロジェクト。
App Engine インスタンスをまだ設定していない場合は、App Engine のデプロイで完全なチュートリアルをご覧ください。
IAP は、Google が管理する OAuth クライアントを使用してユーザーを認証します。組織内のユーザーのみが IAP 対応アプリケーションにアクセスできます。組織外のユーザーにアクセスを許可するには、外部アプリケーション用に IAP を有効にするをご覧ください。
IAP の有効化
コンソール
Google Cloud コンソールを使用して IAP を有効にする場合、Google が管理する OAuth クライアントは使用できません。
If you haven't configured your project's OAuth consent screen, you'll be prompted to do so. To configure your OAuth consent screen, see Setting up your OAuth consent screen.
Setting up IAP access
-
Go to the
Identity-Aware Proxy page.
Go to the Identity-Aware Proxy page - Select the project you want to secure with IAP.
- Select the checkbox next to the resource you want to grant access to.
- On the right side panel, click Add principal.
-
In the Add principals dialog that appears, enter the email addresses of groups or
individuals who should have the IAP-secured Web App User role for the project.
The following kinds of principals can have this role:
- Google Account: user@gmail.com
- Google Group: admins@googlegroups.com
- Service account: server@example.gserviceaccount.com
- Google Workspace domain: example.com
Make sure to add a Google Account that you have access to.
- Select Cloud IAP > IAP-secured Web App User from the Roles drop-down list.
- Click Save.
Turning on IAP
-
On the Identity-Aware Proxy page, under APPLICATIONS,
find the application you want to restrict
access to. To turn on IAP for a resource,
- In the Turn on IAP window that appears, click Turn On to confirm that you want IAP to secure your resource. After you turn on IAP, it requires login credentials for all connections to your load balancer. Only accounts with the IAP-Secured Web App User role on the project will be given access.
gcloud
プロジェクトと IAP を設定する前に、最新バージョンの gcloud CLI を入手する必要があります。gcloud CLI をインストールする手順については、gcloud CLI をインストールするをご覧ください。
-
認証するには、Google Cloud CLI を使用して次のコマンドを実行します。
gcloud auth login
- 表示された URL をクリックしてログインします。
- ログインしたら、表示される確認コードをコピーしてコマンドラインに貼り付けます。
-
次のコマンドを実行して、IAP で保護するアプリケーションを含むプロジェクトを指定します。
gcloud config set project PROJECT_ID
-
IAP を有効にするには、次のコマンドを実行します。
gcloud iap web enable --resource-type=app-engine --versions=version
-
IAP で保護されたウェブアプリ ユーザーのロールを付与するプリンシパルをプロジェクトに追加します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor
- PROJECT_ID を実際のプロジェクト ID に置き換えます。
- PRINCIPAL_IDENTIFIER は、必要なプリンシパルに置き換えます。これは、ドメイン、グループ、serviceAccount、ユーザーのいずれかのタイプにできます。次に例を示します。
user:myemail@example.com
。
IAP を有効にすると、gcloud CLI で roles/iap.httpsResourceAccessor
の IAM ロールを使用して IAP アクセス ポリシーを変更できます。詳しくは、ロールと権限の管理をご覧ください。
API
次のコマンドを実行して
settings.json
ファイルを準備します。cat << EOF > settings.json { "iap": { "enabled":true } } EOF
次のコマンドを実行して IAP を有効にします。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
IAP を有効にすると、Google Cloud CLI で roles/iap.httpsResourceAccessor
の IAM ロールを使用して IAP アクセス ポリシーを変更できます。詳しくは、ロールと権限の管理をご覧ください。
ユーザー認証をテストする
IAP で保護されたウェブアプリ ユーザーについての上述のロールを使用して、IAP に追加した Google アカウントからアプリの URL にアクセスします。アプリに無制限にアクセスできるはずです。
Chrome のシークレット ウィンドウを使用してアプリにアクセスし、プロンプトが表示されたらログインします。IAP で保護されたウェブアプリ ユーザーのロールによる認証を持たないアカウントでアプリにアクセスしようとすると、アクセスできないことを示すメッセージが表示されます。
次のステップ
- アクセスレベルを適用して、より詳細なコンテキスト ルールを設定する。
- Cloud Audit Logs を有効にするでアクセス リクエストを確認する。
- IAP の詳細について学習する。
- ユーザーの ID の取得方法を確認し、独自の App Engine アプリを開発する。