IAP を有効にする

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

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

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

IAP が有効になっているクラスタのアーキテクチャ

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

始める前に

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

  • カスタム ドメイン: IAP は、カスタム ドメインを使用するワークステーション クラスタでのみサポートされます。
  • アプリケーション ロードバランサ: このロードバランサは、Private Service Connect(PSC)エンドポイントを使用してすべての Ingress 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.com、user: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 をご覧ください。