• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

プライベートロケーションでのKerberos(SPNEGO)認証のサポート

|View as Markdown (English)

このドキュメントでは、Kerberos認証をサポートした状態でモニターを実行するように外形監視ジョブマネージャー(SJM)を設定する方法について説明します。また、ジョブマネージャーを独自のレルムに向ける前に設定を検証できるように、Amazon Linux 2023 EC2インスタンス上でKerberosキー配布センター(KDC)とSPNEGOで保護されたWebアプリケーションを構築するためのオプションのウォークスルーも含まれています。

プレースホルダーの値

始める前に、ご使用の環境の以下の値を確認してください。このドキュメントに表示されるプレースホルダーはすべて、ご自身の値に置き換えてください。

プレースホルダー

説明

例

<REALM_NAME>

Kerberosレルム(大文字である必要があります)

KERBTEST.LOCAL

<EC2_PRIVATE_IP>

EC2インスタンスのプライベートIPv4アドレス

10.8.9.172

<EC2_INTERNAL_HOSTNAME>

Webアプリの完全修飾ドメイン名(FQDN)

ip-X-X-X-X.ec2.internal

<CLIENT_PRINCIPAL>

外形監視ワーカーに割り当てられたKerberos ID

synthetics-test

<CLIENT_KEYTAB_PATH>

クライアントのキータブが保存されているホスト上のフルパス

/home/ec2-user/kerb-test/synthetics-test.keytab

<PRIVATE_LOCATION_KEY>

New Relic プライベートロケーションキー

NRSP-us...

要件と互換性

Kerberos認証は、キー配布センター(KDC)への直接ネットワークアクセス、内部DNS解決、および厳密に同期された時計に依存します。これらの制約により実行できる場所が制限されるため、開始する前に以下の要件を確認してください。

以下の環境でKerberos認証をサポートしています:

  • Dockerコンテナ環境で外形監視ジョブマネージャーを実行するプライベートロケーション
  • Podmanコンテナ環境で外形監視ジョブマネージャーを実行するプライベートロケーション

これらの環境では、Kerberos認証をサポートしていません:

  • 内部KDCへのネットワークルートを持たないパブリックロケーション
  • KubernetesおよびOpenShiftのジョブマネージャー環境

ジョブマネージャーは、ブラウザモニタージョブにのみKerberos認証情報を提供します。スクリプト化されたAPIモニターおよびpingモニターは、Kerberos認証なしで実行されます。

各ブラウザランタイムコンテナは(Chromeがリリースされる前に、kinit経由で)独自のKerberosチケットを取得するため、プライベートロケーションもこれらの要件を満たす必要があります:

  • ランタイムコンテナ内からTCPおよびUDPポート88でKDCにアクセスできるようにしてください。
  • ランタイムコンテナ内からKDCおよびターゲットアプリケーションのホスト名を解決してください。Dockerデプロイメントで、内部DNSがそれらを解決しない場合は、RUNTIME_EXTRA_HOSTSでマッピングしてください — この変数はDocker専用です。Podmanデプロイメントは内部DNSに依存します。
  • chronyなどのサービスを使用して、プライベートロケーションホストのクロックとKDCのクロックの差を5分以内に保ってください。ランタイムコンテナはホストのカーネルクロックを共有するため、ホストを同期するだけで十分です。

パート1:Kerberosテストラボのセットアップ(オプション)

ヒント

パート1では、ジョブ・マネージャーの設定をエンド・ツー・エンドで検証できるように、自己完結型のKerberosレルムと保護されたテスト・アプリケーションを構築します。これは本番環境のパスではなく、New Relicはお客様のKDCを管理しません。すでにKerberos KDCまたはActive Directoryドメインを実行している場合は、管理者にレルム名、KDCアドレス、およびクライアント・キータブを取得してもらい、パート2に進んでください。

パート2:Kerberos用に外形監視ジョブマネージャーを設定する

外形監視ブラウザランナーコンテナがKDCを自動的に解決し、Kerberosチケットを取得し、保護されたエンドポイントに対して認証できるようにするには、ジョブマネージャーを起動するコマンドに以下のKerberos環境変数とキータブボリュームマウントを追加してください。

注意

プライベートロケーションでKerberosを有効にすると、そのロケーションのすべてのブラウザーモニタージョブがキータブマウントとKerberos環境変数を受け取ります。ジョブマネージャーは、モニターごとやURLごとに認証情報をフィルタリングしません。ChromeはKERBEROS_HOST_ALLOWLISTのみに基づいてどのホストがKerberosチケットを受け取るかを決定するため、その許可リストはできるだけ絞り込んでください。

重要

4つのKERBEROS_*変数をすべて設定するか、どれも設定しないかのいずれかにしてください。一部のみを設定した場合、外形監視ジョブマネージャーは起動に失敗し、不完全なKerberos設定エラーをログに記録します。

標準コマンド(Kerberosなし)

bash
$
docker run -e PRIVATE_LOCATION_KEY=<PRIVATE_LOCATION_KEY> \
>
-d --restart unless-stopped \
>
-v /var/run/docker.sock:/var/run/docker.sock:rw \
>
newrelic/synthetics-job-manager

必須コマンド(Kerberosサポートを有効にした場合)

4つのKERBEROS_*環境変数(-e)とキータブのボリューム・マウント(-v)を、ジョブ・マネージャーを起動するためにすでに使用しているコマンドに追加します。

パート3:Kerberos認証のトラブルシューティング

ランタイムコンテナ内でKerberosの初期化が失敗した場合でも、コンテナのスタートアップパイプラインは引き続きブラウザをリリースし、モニターを実行します。その後、モニターはHTTP 401チャレンジまたはナビゲーションタイムアウトにより保護されたエンドポイントに対して失敗し、その結果にKerberosInitWarningの根本原因のタグを付けます。この失敗は通常のタイムアウトのように見えるため、モニタースクリプトを調査する前に、ジョブログで以下のエラーコードを確認してください。

これらのコードは、パート2のスタートアップ検証とは異なります — KERBEROS_*変数のうち一部のみを設定した場合、ジョブマネージャーは完全に起動に失敗し、これらのコードはジョブのログに一切表示されません。

エラーコード

原因

すべきこと

KERBEROS_KDC_UNREACHABLE

ランタイムコンテナは、ネットワーク経由でKDCに到達できません。

プライベートロケーションホストとKDC間のTCPおよびUDPポート88のファイアウォールルールを確認してください。

KERBEROS_BAD_CREDENTIAL

プリンシパルがキータブと一致しないか、キータブが破損しています。

klist -kt <CLIENT_KEYTAB_PATH>

を実行して、ホスト上のキータブを検証してください。

KERBEROS_CLOCK_SKEW

ホストのクロックがKDCのクロックと5分以上異なります。

chrony

などのサービスを使用して、NTPでホストの時計を同期してください。

KERBEROS_DNS_LOOKUP_FAILED

コンテナはKDCのホスト名またはレルムを解決できません。

ジョブマネージャーコンテナの内部DNSリゾルバー設定を確認するか、

RUNTIME_EXTRA_HOSTS

でホストをマッピングしてください。

KERBEROS_CONFIG_INVALID

ランタイムコンテナがマウントされたキータブを読み取れないか、そこからプリンシパルを解析できませんでした(空の、または不正な形式のキータブ)。

キータブがランタイムコンテナ内で読み取り可能であり、少なくとも1つのプリンシパルが含まれていることを確認してください:

klist -kt <CLIENT_KEYTAB_PATH>

。

KERBEROS_UNKNOWN_FAILURE

システム・レベルのGSSAPIまたは暗号化の失敗により、ハンドシェイクが停止しました。

クライアントキータブの暗号化タイプ(

klist -kt -e <CLIENT_KEYTAB_PATH>

には各エントリのenctypeがリストされています)を、ステップ3でKDCに設定された

supported_enctypes

の値と比較してください。キータブが提供するものとKDCが受け入れるものとの間の不一致が、これらのエラーのほとんどの原因となります。

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.