このページでは、Identity-Aware Proxy(IAP)を使用して App Engine インスタンスを保護する方法について説明します。
準備
App Engine で IAP を有効にするには、次のものが必要です。
- 課金が有効になっている Google Cloud コンソール プロジェクト。
App Engine インスタンスをまだ設定していない場合は、App Engine のデプロイで完全なチュートリアルをご覧ください。
IAP は、Google が管理する OAuth クライアントを使用してユーザーを認証します。組織内のユーザーのみが IAP 対応アプリケーションにアクセスできます。組織外のユーザーにアクセスを許可するには、外部アプリケーション用に IAP を有効にするをご覧ください。
IAP の有効化
Console
コンソールを使用して IAP を有効にする場合、Google が管理する OAuth クライアントは使用できません。 Google Cloud
プロジェクトの OAuth 同意画面をまだ構成していない場合は、画面を構成するように指示されます。OAuth 同意画面を構成する方法については、OAuth 同意画面の設定をご覧ください。
IAP アクセス権の設定
-
[Identity-Aware Proxy] ページに移動します。
[Identity-Aware Proxy] ページに移動 - IAP で保護するプロジェクトを選択します。
- アクセスを許可するリソースの横にあるチェックボックスをオンにします。
- 右側のパネルで [プリンシパルを追加] をクリックします。
-
表示される [メンバーの追加] ダイアログで、プロジェクトに対する IAP で保護されたウェブアプリ ユーザーの役割を付与するグループ、または個人のメールアドレスを追加します。
このロールを持つことができるプリンシパルの種類は次のとおりです。
- Google アカウント: user@gmail.com
- Google グループ: admins@googlegroups.com
- サービス アカウント: server@example。gserviceaccount.com
- Google Workspace ドメイン: example.com
追加する Google アカウントは、自分がアクセスできるものにしてください。
- [役割] のプルダウン リストから [Cloud IAP] > [IAP で保護されたウェブアプリ ユーザー] を選択します。
- [保存] をクリックします。
IAP の有効化
-
[Identity-Aware Proxy] ページの [アプリケーション] で、アクセスを制限するアプリケーションを見つけます。リソースの IAP を有効にするには、
- 表示された [IAP の有効化] ウィンドウで [有効にする] をクリックし、IAP でリソースを保護することを確認します。IAP が有効になった後は、ロードバランサへのすべての接続でログイン認証情報が必要になります。プロジェクトで IAP で保護されたウェブアプリ ユーザーの役割を持つアカウントにのみアクセスが許可されます。
gcloud
Before you set up your project and IAP, you need an up-to-date version of the gcloud CLI. For instructions on how to install the gcloud CLI, see Install the gcloud CLI.
-
To authenticate, use the Google Cloud CLI and run the following command.
gcloud auth login
- Click the URL that appears and sign in.
- After you sign in, copy the verification code that appears and paste it in the command line.
-
Run the following command to specify the project that contains the applications that you want to protect with IAP.
gcloud config set project PROJECT_ID
-
To enable IAP, run the following command.
gcloud iap web enable --resource-type=app-engine --versions=version
-
Add principals who should have the IAP-secured Web App user role to the project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor
- Replace PROJECT_ID with your project ID.
- Replace PRINCIPAL_IDENTIFIER with the necessary principals. This can be a
type of domain, group, serviceAccount, or user. For example,
user:myemail@example.com
.
After you enable IAP, you can use the gcloud CLI to modify the
IAP access policy using the IAM role
roles/iap.httpsResourceAccessor
. Learn more about
managing roles and permissions.
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 で保護されたウェブアプリ ユーザーのロールによる認証を持たないアカウントでアプリにアクセスしようとすると、アクセスできないことを示すメッセージが表示されます。