ステップ 3: アクセスを構成する

このセクションでは、MDE のインストールを完了するために必要なデプロイ後の手順について説明します。

GKE クラスタの Filestore ドライバを有効にする

1.4.0 以降、MDE GKE クラスタはファイル ストア インスタンスを使用して JVM ヒープダンプを保存します。これにより、エンジニアリング チームは顧客の問題をより効果的にトラブルシューティングできます。Terraform の制限により、以前のバージョンの Autopilot クラスタではこのアドオンが有効になっていない場合があります。Pod が起動せず、ContainerCreating 状態になっている場合は、次のコマンドを使用して Filestore の CSI ドライバを有効にする必要があります。

gcloud container clusters update CLUSTER_NAME \
   --update-addons=GcpFilestoreCsiDriver=ENABLED --region REGION_NAME

Identity-Aware Proxy の構成

Identity-Aware Proxy(IAP)を使用すると、MDE API とウェブ インターフェースの内部 IP に安全に接続できます。また、外部ロードバランサ オプションを使用してデプロイした場合は、MDE ウェブ インターフェースへの外部アクセスを承認済みユーザーのみに制限できます。

IAP を使用するには、まず OAuth 画面を構成し、IAP サービス API を有効にする必要があります。

  1. Google Cloud コンソールで、[IAP] に移動し、[API を有効にする] をクリックします。完了までに数分かかることがあります。

  2. IAP の OAuth 同意画面を構成します。

    1. Google Cloud コンソールで、[セキュリティ] > [Identity-Aware Proxy] ページに移動し、MDE デプロイ プロジェクトを選択します。

    2. プロジェクトの OAuth 同意画面を構成していない場合、構成するように指示されます。

      1. [同意画面を構成] をクリックします。
      2. [外部] ユーザータイプを選択し、[作成] をクリックします。
      3. 表示するアプリケーション名(例: MDE)を入力します。
      4. [ユーザー サポートメール] で、一般公開される連絡先として表示するメールアドレスを選択します。メールアドレスは、ログインしているユーザー アカウントに属しているか、ログインしているユーザーがマネージャーまたはオーナーである Google グループに属している必要があります。
      5. [デベロッパーの連絡先情報] に移動し、プロジェクトに対する変更を Google からお知らせする際に使用するメールアドレスを入力します。
      6. オプションの詳細を追加します。
      7. [保存] をクリックします。

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

IAP 経由の SSH トンネリング

MDE サービスのプライベート IP に接続するには、SSH 経由でプロキシを介してトンネルを確立します。これにより、Postman などのローカルツールを使用して MDE API を操作できます。

始める前に

一般的な IAP 構成の手順を完了していることを確認します。

標準の MDE デプロイでは、mde-proxy というプロキシ VM が作成されます。このマシンは、MDE API ゲートウェイまたは MDE ウェブ インターフェースへの受信リクエストをプロキシできます。この VM にはプライベート IP のみがありますが、IAP を使用すると、TCP 転送用の Identity-Aware Proxy(IAP)を使用して、このマシンへの安全な SSH トンネルを作成できます。このセクションの残りの部分では、mde-proxy にトラフィックをトンネリングするように IAP を構成する方法と、ワークステーションから mde-proxy へのトンネルを作成する方法について説明します。

  1. Google Cloud コンソールで、[IAP] に移動して、[SSH と TCP リソース] をクリックします。

  2. IAP の使用を承認されたユーザーに、IAP 経由で mde-proxy に接続する権限を付与します。

    ユーザーが IAP を使用して mde-proxy に接続できるようにするには、次の手順で roles/iap.tunnelResourceAccessor ロールを付与します。

    1. リストから [mde-proxy] を選択します。

    2. 右側のパネルで [プリンシパルを追加] をクリックします。

    3. アクセス権を付与するプリンシパルのメールアドレスを入力します。

    4. IAP-secured Tunnel User ロールを選択します。

  3. 次のコマンドを使用して、MDE API へのトンネルを作成します。

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy"  \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8080:api.mde.cloud.google.com:80
    

    コマンドを実行すると、MDE API に http://localhost:8080 でアクセスできるようになります。

  4. MDE ウェブ インターフェースへのトンネルを作成します。

    手順 3 で MDE API へのトンネルを作成した場合は、後でコマンドを実行するために新しいターミナルを開くことができます。MDE API と MDE ウェブ インターフェースへの SSH トンネルは並行して実行できます。

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8081:ui.mde.cloud.google.com:80
    

    コマンドを実行すると、MDE ウェブ インターフェースに http://localhost:8081 でアクセスできるようになります。

ウェブ インターフェースの外部 HTTP ロードバランサへのアクセスを構成する

このセクションでは、IAP を使用して MDE ウェブ インターフェースの外部 HTTP ロードバランサへのアクセスを構成します。

MDE ウェブ インターフェースで外部 HTTP ロードバランサを有効にした場合は、IAP を使用して、承認されたユーザーのみにアプリケーションへのアクセスを制限する必要があります。

始める前に

次の前提条件を満たしていることを確認してください。

  • MDE ウェブ インターフェースを使用して MDE をデプロイした。
  • 外部 HTTP ロードバランサを使用して MDE ウェブ インターフェースをデプロイしました。
  • 一般的な IAP 構成の手順を完了している。

手順

  1. Google Cloud コンソールで、[IAP] に移動します。
  2. [アプリケーション] をクリック
  3. mde/mde-ui-ext-service サービスを選択します。

  4. [有効にする] トグルをクリックします。

  5. 構成要件を読み、同意します。

  6. [オンにする] をクリックします。このオペレーションには数分かかることがあります。

  7. IAP の使用を承認されたユーザーに MDE ウェブ インターフェースへのアクセス権を付与します。

    1. 右側のパネルで [プリンシパルを追加] をクリックします。
    2. アクセス権を付与するプリンシパルのメールアドレスを入力します。
    3. IAP-secured Web App User ロールを選択します。

MDE ウェブ インターフェースの DNS を構成する

MDE ウェブ インターフェースで外部 HTTP ロードバランサを有効にした場合は、input.tfvars の変数 MDE_UI_DOMAIN_NAME に割り当てたドメイン名の A レコードを、デプロイされた外部 HTTP ロードバランサの IP アドレスに設定して、Google マネージド SSL 証明書のプロビジョニングを完了する必要があります。

次のコマンドを使用して、外部 HTTP バランサの IP アドレスを調べることができます。

gcloud compute addresses list --filter="name~'.*mde-ui.*'" --format="value(address)" --global

A レコードの作成方法について詳しくは、DNS ホストにお問い合わせください。