IAP を有効にする

Identity-Aware Proxy(IAP)を使用して、ワークステーション上のアプリケーションへのアクセスを制御します。IAP は一元的な認可レイヤを確立するため、ネットワーク レベルのファイアウォールに依存せずに、アプリケーション レベルでアクセスを管理できます。

ユーザー ID、グループ メンバーシップ、デバイスのセキュリティ、場所、IP アドレスなどのシグナルに基づいてアクセスを制御できます。ユーザーはウェブブラウザと HTTPS を使用してアプリケーションにアクセスし、IT チームはアクセス ポリシーを一元的に定義して適用します。

このドキュメントでは、クラスタ内のワークステーション上のアプリケーションで IAP を有効にする方法について説明します。次の図は、IAP が有効になっているクラスタを示しています。

図 1. IAP が有効になっているクラスタ

始める前に

ワークステーションで IAP を有効にするには、クラスタに次のものが必要です。

  • カスタム ドメイン: IAP は、カスタム ドメインを使用するワークステーション クラスタでのみサポートされます。
  • アプリケーション ロードバランサ: このロードバランサは、Private Service Connect(PSC)エンドポイントを使用してすべての上り(内向き)HTTP トラフィックを処理し、IAP を構成できます。

これらのコンポーネントを設定するには、Cloud Workstations のカスタム ドメインを設定するをご覧ください。

プロキシを有効にする

ワークステーションで IAP を有効にする手順は次のとおりです。

  1. 次のコマンドを実行して、クラスタのアプリケーション ロードバランサで IAP を有効にします。

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \
        --global
    

    次のように置き換えます。

    • BACKEND_SERVICE_NAME: クラスタのカスタム ドメインの設定時に作成したバックエンド サービスの名前。
    • CLIENT_ID: OAuth 2.0 クライアント ID。
    • CLIENT_SECRET: OAuth 2.0 クライアント シークレット。

    IAP を有効にしてアプリケーション ロードバランサを設定する方法については、ロードバランサで IAP を有効にするをご覧ください。

  2. ドメイン内のユーザーにアクセス権を付与する:

     gcloud iap web add-iam-policy-binding \
         --resource-type=backend-services \
         --service=BACKEND_SERVICE_NAME \
         --member='PRINCIPAL' \
         --role='roles/iap.httpsResourceAccessor' \
         --condition="expression=EXPRESSION,title=TITLE,description=DESCRIPTION"
    

    次のように置き換えます。

    • BACKEND_SERVICE_NAME: バックエンド サービスの名前。
    • PRINCIPAL: アクセス権を付与するプリンシパル。例: group:my-group@example.comuser:test-user@example.com、または domain:example.com
    • EXPRESSION: Common Expression Language(CEL)で記述された条件式。たとえば、この式を使用してアクセスレベルを指定し、コンテキストアウェア アクセスを構成できます。
    • TITLE: 条件のタイトル。
    • DESCRIPTION: 条件の説明(省略可)。Cloud Workstations は、個々のワークステーション リソースに構成された IAM ポリシーに基づいて IAM チェックを実行します。冗長性を回避するには、承認済みのワークステーション ユーザーすべてを含む広範なグループまたはドメイン全体に権限を付与するように IAP ポリシーを構成することを検討してください。このポリシーは主に、コンテキストアウェア アクセスを構成するアクセスレベルを指定するために使用します。

    ユーザーへのアクセス権の付与の詳細については、gcloud iap web add-iam-policy-binding をご覧ください。