IAP による App Engine アプリの保護

このページでは、App Engine スタンダード環境またはフレキシブル環境のアプリケーションをデプロイし、それを Identity-Aware Proxy(IAP)で保護する手順について説明します。このクイックスタートには、ログインしているユーザーの名前を確認する App Engine スタンダード環境ウェブアプリのサンプルコードが含まれています。

コンテンツ配信ネットワーク(CDN)からリソースを提供する予定の場合、ベスト プラクティス ガイドの重要な情報をご覧ください。

Google Cloud 上にないリソースを保護するには、オンプレミスのアプリとリソースの保護をご覧ください。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    [プロジェクトの選択] ページに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

Cloud Shell の起動

  1. コンソール ウィンドウの上部にある [Cloud Shell を有効にする] をクリックします。

    コンソールの下部の新しいフレーム内で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。シェル セッションが初期化されるまで、数秒かかる場合があります。

    Cloud Shell セッション フレーム
  2. Cloud Shell に次のように入力して、プロジェクトのプロジェクト ID を表示します。
    gcloud projects list
  3. 次のコマンドを実行してデフォルト プロジェクトを設定します。YOUR-PROJECT-ID はこのクイックスタートで使用するプロジェクト ID です。
    gcloud config set project YOUR-PROJECT-ID

サンプルコードの取得

  1. Cloud Shell に次のコマンドを入力して、サンプル アプリケーションを取得します。

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    
  2. サンプルコードが入っているディレクトリに移動します。

    cd python-docs-samples/appengine/standard/users/
    

アプリケーションのデプロイ

  1. gcloud を使用してアプリケーションを App Engine にデプロイします。
    gcloud app deploy
  2. target url:https://YOUR_PROJECT_ID.appspot.com の形式で表示されます。アプリケーションにアクセスするには、ウェブブラウザでその URL に移動します。

IAP の有効化

プロジェクトの選択

  1. [Identity-Aware Proxy] ページに移動します。
    [Identity-Aware Proxy] ページに移動
  2. アクティブなプロジェクトがない場合は、IAP で保護するプロジェクトを選択するように指示されます。サンプル アプリケーションをデプロイしたプロジェクトを選択します。

OAuth 同意画面の構成

プロジェクトの OAuth 同意画面を構成していないと、画面を構成するように指示されます。この画面では、メールアドレスとプロダクト名が必要です。

  1. OAuth 同意画面に移動します。
    同意画面を構成
  2. [サポートメール] で、一般公開される連絡先として表示するメールアドレスを選択します。このメールアドレスは、自分のメールアドレスまたは自身が所有する Google グループにする必要があります。
  3. [アプリケーション名] に、アプリケーションの表示名を入力します。
  4. 任意の詳細を追加します。
  5. [保存] をクリックします。

プロダクト名やメールアドレスなど、OAuth 同意画面の情報を後で変更する場合は、上記の手順を繰り返して同意画面を構成します。

IAP アクセス権の設定

  1. [Identity-Aware Proxy] ページに移動します。
    [Identity-Aware Proxy] ページに移動
  2. 左側のボックスをオンにして、変更するリソースを選択します。右側のパネルで [メンバーを追加] をクリックします。
  3. [メンバーを追加] ダイアログで、プロジェクトの IAP で保護されたウェブアプリ ユーザー役割を付与するグループまたは個人のメールアドレスを追加します。

    メンバーにすることができるアカウントの種類は以下のとおりです。

    • Google アカウント: user@gmail.com
    • Google グループ: admins@googlegroups.com
    • サービス アカウント: server@example.gserviceaccount.com
    • G Suite のドメイン: example.com

    追加する Google アカウントは、自分がアクセスできるものにしてください。

  4. メンバーの追加が完了したら、[追加] をクリックします。

IAP の有効化

  1. [Identity-Aware Proxy] ページの [HTTPS Resources] で、アクセスを制限する App Engine アプリを見つけます。[公開] 列には、アプリの URL が表示されます。アプリの IAP を有効にするには、
    • IAP を有効にするには、appengine.applications.updateclientauthconfig.clients.createclientauthconfig.clients.getWithSecret 権限が必要です。上記の権限は、プロジェクト編集者などの役割によって付与されます。詳細については、IAP で保護されたリソースへのアクセスを管理するをご覧ください。
  2. IAP によってリソースを保護することを確認するには、表示された [IAP の有効化] ウィンドウで [有効にする] をクリックします。IAP を有効にすると、アプリケーションへのすべての接続でログイン認証情報が要求されます。

アクセスをテストする

  1. IAP で保護されたウェブアプリ ユーザーについての上述のロールを使用して、IAP に追加した Google アカウントからアプリの URL にアクセスします。アプリに無制限にアクセスできるはずです。

  2. Chrome のシークレット ウィンドウを使用してアプリにアクセスし、プロンプトが表示されたらログインします。IAP で保護されたウェブアプリ ユーザーのロールによる認証を持たないアカウントでアプリにアクセスしようとすると、アクセスできないことを示すメッセージが表示されます。

次のステップ