Cloud SQL 用の Active Directory 診断ツール

Active Directory(AD)診断ツールは、Google Cloud のオンプレミス ドメインと Cloud SQL for SQL Server インスタンスの AD セットアップに関する問題のトラブルシューティングに役立つユーティリティ PowerShell スクリプトです。

このツールは、閉じたポート、FQDN ルックアップ、DNS の問題など、さまざまな問題のチェックを実行します。オンプレミス ドメインのドメイン コントローラの 1 つであるオンプレミスの Windows VM 上で動作します。

このページでは、Cloud SQL の Active Directory 診断ツールの使用方法と、このツールが実行するチェックについて説明します。

前提条件

AD 診断ツールを使用する前に、次のコンポーネントが設定されていることを確認してください。

  • AD が有効なオンプレミス ドメイン。
  • Google Cloud コンソールの Managed AD ドメイン。
  • Managed AD ドメインに参加した Cloud SQL for SQL Server インスタンス。

AD 診断ツールの使用方法

AD 診断ツールを使用するには、次の手順を行います。

  1. オンプレミス ドメイン コントローラーまたはオンプレミス ドメインに参加している VM のいずれかにログオンします。
  2. VM に diagnose_ad.ps1 スクリプトをダウンロードします。
  3. 管理者として PowerShell を起動します。
  4. 次のコマンドを使用して、PowerShell ウィンドウで diagnose_ad.ps1 スクリプトを実行します。

    powershell -command "& { . C:\\<var>SCRIPT_PATH</var>\\diagnose_ad.ps1; Run-Tool }"
    
  5. プロンプトが表示されたら、次の情報を入力します。

    • オンプレミス ドメイン名(my-onprem-domain.com など)
    • Managed AD ドメイン名(my-ad-domain.com など)
    • SQL Server Active Directory FQDN とプライベート IP アドレスのリスト。このリストは、Google Cloud コンソールのインスタンスの [概要] ページで確認できます。

このツールが、AD 診断ツールによって実行されるチェックで説明されているように、いくつかのチェックを実行します。

AD 診断ツールによって実行されるチェック

チェック説明 注意事項と推奨事項
利用可能なドメイン コントローラ オンプレミス ドメインの各ドメイン コントローラの IP アドレスに ping を発行し、到達可能であることを確認します。 残りのチェックは、到達可能であった IP アドレスに対して行われます。このチェックに失敗した場合は、残りのオンプレミス ドメイン コントローラへのネットワーク接続を確認します。詳細については、 ネットワーク インフラストラクチャの作成をご覧ください。
ポート AD に必要なすべての TCP ポートと UDP ポートがすべてのオンプレミス ドメイン コントローラで開いていることを確認します。 このチェックでは、オープンポートのリストが一貫していない、RPC ポート範囲(49152 ~ 65535)の警告ステータスが返されます。この範囲を許可するファイアウォール ルールが設定されていることを確認することをおすすめします。詳細については、 ファイアウォール ポートを開くをご覧ください。
DNS サーバー 正常でフォールト トレラントな AD 設定を確認します。 スクリプトがオンプレミスのドメイン コントローラで実行されていない場合、このチェックは警告を返します。プライマリ DNS とセカンダリ DNS サーバーを設定して、フォールト トレラントな AD 設定をデプロイすることをおすすめします。
FQDN(マネージド AD ドメイン) 指定したマネージド AD ドメイン名に対して nslookup を実行します。 このチェックは、Managed AD ドメインがオンプレミス ドメイン コントローラから到達可能かどうかを検証します。障害が発生した場合は、オンプレミス ネットワークと Google Cloud Virtual Private Cloud(VPC)の間のネットワーク接続の確立を試みます。詳細については、 ネットワーク接続の確立をご覧ください。
FQDN(SQL Server) 指定した SQL Server FQDN に対して nslookup を実行します。 このチェックは、オンプレミス ドメイン コントローラからインスタンスに到達できるかどうかを検証します。障害が発生した場合は、オンプレミス ネットワークと Google Cloud Virtual Private Cloud(VPC)の間のネットワーク接続の確立を試みます。詳細については、 ネットワーク接続の確立をご覧ください。
DC レプリケーション オンプレミス ドメイン コントローラ間の AD レプリケーション エラーを探します。 PowerShell が Active Directory ドメイン ユーザーとして実行されていて、スクリプトがオンプレミス ドメインに参加した VM で実行されている場合、失敗ステータスが想定されます。このチェックが失敗した場合は、 インストールのテストの手順に従ってください。
DNS 転送 オンプレミス ドメイン コントローラからマネージド AD ドメイン コントローラにリクエストをルーティングするために必要となる、オンプレミス ドメイン コントローラでの条件付き DNS 転送設定を探します。 スクリプトがオンプレミス ドメイン コントローラで実行されていない場合、このチェックは失敗する可能性があります。 DNS 条件付きフォワーダーを構成することをおすすめします。
信頼の設定 オンプレミス ドメインとマネージド AD ドメインの間に AD 信頼が設定されていることを確認します。 このチェックでは、オンプレミスとマネージド AD ドメインの間に AD 信頼が設定されていることを確認します。 オンプレミス ドメインとマネージド Microsoft AD ドメインの間に信頼を作成することをおすすめします。詳細については、 信頼を設定するをご覧ください。
ローカル セキュリティ ポリシー ローカル セキュリティ ポリシー構成 Network access: Named pipes that can be accessed anonymously が設定されていることを確認します。 このチェックは、AD 信頼を作成するために必要です。 スクリプトがオンプレミスのドメイン コントローラで実行されていない場合、このチェックが失敗することが想定されます。このチェックでは、管理者として PowerShell を実行し、ローカル セキュリティ ポリシー設定を確認する必要があります。エラーが発生した場合は、 オンプレミス ドメインのローカル セキュリティ ポリシーを確認することをおすすめします。
名前サフィックス ルーティング オンプレミス ドメイン コントローラで Managed AD ドメインへの名前サフィックス ルーティングが有効になっているかどうかを確認します。このチェックは、オンプレミス フォレストから Managed AD フォレストにリクエストをルーティングするために必要です。 このチェックでは、管理者として PowerShell を実行して、名前サフィックス ルーティングの設定を確認する必要があります。失敗した場合は、 オンプレミスの信頼の名前サフィックス ルーティングを更新することをおすすめします。
オンプレミス ドメインの Kerberos チケット オンプレミス ドメインで Kerberos 認証が有効であることを検証します。オンプレミス ドメインの既存の Kerberos チケットを検索します。見つからない場合、新しいチケットを生成しようとします。 このチェックは、オンプレミス DC の既存の Kerberos チケットを検索しようとします。 失敗した場合、検証の形式として新しいチケットが生成しようとします。他のチェックでエラーが発生すると、このチェックでエラーが発生する可能性があります。他のチェックの失敗を解決すると、このチェックの失敗も解決されるはずです。
SQL Server の Kerberos チケット オンプレミス ドメインで Kerberos 認証が有効であることを検証します。指定した SQL Server サービス プリンシパル名(SPN)ごとに、既存の Kerberos チケットを検索します。SQL Server の SPN は MSSQLSvc/{SQL Server FQDN}:1433 です。SPN のチケットの取得に失敗した場合、Cloud SQL はホスト名で IP を許可する Windows レジストリ値が設定されているかどうかを確認します。 設定されている場合は、SPN MSSQLSvc/{SQL Server IP}:1433 でチケットを取得してみてください。
詳しくは、 Microsoft のドキュメントをご覧ください。
このチェックは、SQL Server の既存の Kerberos チケットを検索しようとします。 失敗した場合、検証の形式として新しいチケットが生成しようとします。他のチェックでエラーが発生すると、このチェックでエラーが発生する可能性があります。他のチェックの失敗を解決すると、このチェックの失敗が解決されるはずです。

次のステップ

  • フィードバックを送信するには、GitHub の問題を使用します。