このページでは、 Identity-Aware Proxy(IAP)で App Engine インスタンスを保護する方法について説明します。
準備
App Engine で IAP を有効にするには、次のものが必要です。
- 課金が有効になっている Google Cloud コンソール プロジェクト。
App Engine インスタンスをまだ設定していない場合は、 App Engine のデプロイ で完全なチュートリアルをご覧ください。
IAP は、Google が管理する OAuth クライアントを使用してユーザーを認証します。組織内のユーザーのみが IAP 対応アプリケーションにアクセスできます。組織外のユーザーにアクセスを許可するには、外部アプリケーション用に IAP を有効にするをご覧ください。
IAP の有効化
コンソール
コンソールを使用して IAP を有効にする場合、Google が管理する OAuth クライアントは使用できません。 Google Cloud
如果您尚未配置项目的 OAuth 同意屏幕,系统将提示您执行此操作。如需配置 OAuth 同意屏幕,请参阅设置 OAuth 同意屏幕。
设置 IAP 访问权限
-
转到 Identity-Aware Proxy 页面。
转到 Identity-Aware Proxy 页面 - 选择要使用 IAP 保护的项目。
- 选中您要授予访问权限的资源旁边的复选框。
- 在右侧面板上,点击添加主账号。
-
在显示的添加主账号对话框中,输入群组或个人(应拥有项目的 IAP-secured Web App User 角色)的电子邮件地址。
以下种类的主账号可以具有此角色:
- Google 账号:user@gmail.com
- Google 网站论坛:admins@googlegroups.com
- 服务账号:server@example.
- Google Workspace 网域:example.com
请务必添加您有权访问的 Google 账号。
- 从角色下拉列表中选择 Cloud IAP > 受 IAP 保护的网页应用用户。
- 点击保存。
启用 IAP
-
在 Identity-Aware Proxy 页面的应用下方,找到要限制访问的应用。如需为某资源开启 IAP,请
-
在出现的开启 IAP 窗口中,点击开启以确认您想用 IAP 保护资源。开启 IAP 后,它需要向对负载平衡器的所有连接请求索要登录凭据。只有具有项目的 IAP-Secured Web App User (
roles/iap.httpsResourceAccessor) 角色的正文才能获得访问权限。
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 で保護されたウェブアプリ ユーザー(
roles/iap.httpsResourceAccessor)ロールで IAP が付与された Google アカウントからアプリの URL にアクセスします。Chrome のシークレット ウィンドウを使用してアプリにアクセスし、プロンプトが表示されたらログインします。IAP で保護されたウェブアプリ ユーザーのロールが付与され、認証に成功したユーザーはアプリにアクセスできます。必要なロールが付与されていないユーザーや、認証に失敗したユーザーは、アプリにアクセスできません。