gMSA を使用すると、SQL Serverセットアップがエラー 0x84BB0001で失敗する

適用対象: WindowsのSQL Server

まとめ

この記事は、グループ管理サービス アカウント (gMSA) を使用してSQL ServerをインストールするときにSQL Serverセットアップ エラーの0x84BB0001 ("アクセスが拒否されました") を解決するのに役立ちます。 このエラーは、gMSA 自体が有効であっても、Active Directoryまたはリモートのセキュリティ アカウント マネージャー (SAM) 参照によってセットアップを実行する ID がブロックされたときに発生します。 この記事では、拒否された ID を識別し、リモート SAM グループ ポリシー設定を確認し、Active Directoryまたはクラスター オブジェクトのアクセス許可を修正する方法について説明します。

開始する前に、前提条件を確認し、「gMSA を使用したSQL Serverセットアップ、起動、認証エラーのトラブルシューティング」のクイック検証チェックリストを実行します。

Symptoms

  • セットアップ レポート 0x84BB0001 または "アクセスが拒否されました" です。
  • Detail.txt には、 LookupADEntry、 DirectoryEntries.Find、または UnauthorizedAccessExceptionが含まれています。
  • SQL Server データ フォルダーに対するアクセス許可を変更しても、エラーは解決されません。

原因

Active Directory またはリモート SAM の検索により、Setup を実行しているアカウントが妨げられることがあります。 セットアップ アカウントまたは有効なセキュリティ ポリシーによって必要な参照がブロックされている間は、gMSA 自体を有効にすることができます。

エラー 0x84BB0001を診断する

  1. Detail.txtから拒否された ID を識別します。

  2. セットアップ ログで、 0x84BB0001、 LookupADEntry、 DirectoryEntries.Find、 UnauthorizedAccessException、 RestrictRemoteSAMを検索します。

    PowerShell で次のコマンドを実行します。

    Get-ChildItem 'C:\Program Files\Microsoft SQL Server\*\Setup Bootstrap\Log' -Recurse -File |
      Select-String -Pattern '0x84BB0001|LookupADEntry|DirectoryEntries.Find|UnauthorizedAccessException|RestrictRemoteSAM'
    

    予想される結果: 検索では、最も早く関連するログ エントリと拒否された ID が識別されます。

  3. 有効な ネットワーク アクセス: SAM へのリモート呼び出しを実行できるクライアントを制限する ポリシーを確認します。

  4. フェールオーバー クラスター インスタンス (FCI) のセットアップの場合は、クラスター コンピューター オブジェクトと仮想コンピューター オブジェクトのアクセス許可を確認します。

エラー 0x84BB0001を解決する

Caution

回避策として、ドメイン セキュリティ ポリシーを広く弱めたり、永続的なローカル管理者権限を gMSA に付与したりしないでください。

承認されたセキュリティ ポリシーを使用してセットアップ ID を承認する

ネットワーク アクセス: SAM へのリモート呼び出しを許可するクライアントを制限 ポリシーは、どのユーザーおよびグループが SAM と Active Directory へのリモート呼び出しを実行できるかを制御します。 そのアクセス制御エントリは、定義されたプリンシパルを明示的に許可または拒否できます。 ポリシーを設定したまま、必要なアカウントのみをリモート アクセス許可リストに追加します。

  1. Detail.txtを使用して、アクセス拒否エラーを受け取ったアカウントを特定します。 セットアップを起動した ID を使用している間、SQL Serverセットアップが失敗する可能性があるため、拒否された ID が gMSA であると想定しないでください。

  2. 影響を受けるサーバーで有効なグループ ポリシー レポートを生成します。

    New-Item -ItemType Directory -Path C:\Temp -Force
    gpresult /h C:\Temp\gpresult.html
    
  3. C:\Temp\gpresult.html開き、ネットワーク アクセスを構成するグループ ポリシー オブジェクト (GPO) を特定します。SAM へのリモート呼び出しを許可するクライアントを制限し、セキュリティ管理者またはグループ ポリシー管理者にその権限のある GPO を確認させます。

  4. セットアップ ログで、このポリシーが必要な参照をブロックすることが確認された場合は、識別されたセットアップ ID または承認済みのセキュリティ グループのみをポリシーのリモート アクセス許可リストに追加します。 ポリシーを広く無効にしたり、関連性のない大規模なグループへのアクセス権を付与したりしないでください。 組織のセキュリティ ベースラインを保持します。

    1. グループ ポリシー管理で、権限のある GPO を編集します。
    2. コンピューターの構成>ポリシー>Windows設定>セキュリティ設定>ローカル ポリシー>セキュリティ オプションに移動します。
    3. ネットワーク アクセスを開く : SAM へのリモート呼び出しを許可するクライアントを制限します。
    4. [ セキュリティの編集] を選択し、承認された ID またはグループを追加して、 リモート アクセスを許可します。
    5. 組織の変更管理プロセスに従ってポリシーを適用します。
  5. 影響を受けるサーバーで、グループ ポリシーを更新し、別の結果レポートを生成します。

    gpupdate /force
    gpresult /h C:\Temp\gpresult-after.html
    

詳細については、「 ネットワーク アクセス: SAM へのリモート呼び出しを許可するクライアントを制限する」を参照してください。

Active Directoryまたはクラスター オブジェクトのアクセス許可を修正する

スタンドアロン インストールの場合は、Detail.txtの最初のUnauthorizedAccessException、LookupADEntry、またはDirectoryEntries.Findエントリを使用して、ディレクトリ オブジェクトと拒否された操作を識別します。 Active Directory管理者に、該当するオブジェクトまたは組織単位で、その操作に必要なアクセス許可のみを付与します。

FCI インストールの場合は、次の手順に従います。

  1. 失敗したセットアップ操作に関連するクラスター名オブジェクトと仮想コンピューター オブジェクトを特定します。
  2. Active Directory ユーザーとコンピューターで、[表示>Advanced Features] を選択します。
  3. 影響を受けるコンピューター オブジェクト、またはセットアップでオブジェクトを作成または更新する必要がある組織単位を見つけます。
  4. オブジェクトの [プロパティ] で、[ セキュリティ>Advanced] を選択し、クラスター名オブジェクトまたは承認済みプロビジョニング ID に、組織のクラスター オブジェクト プロビジョニング モデルに必要なアクセス許可のみが付与されていることを確認します。
  5. 仮想コンピューター オブジェクトが事前設定されている場合は、無効になっていないことを確認し、クラスター名オブジェクトに組織が承認した制御アクセス許可があることを確認します。
  6. セットアップでオブジェクトを作成する必要がある場合は、ターゲット組織単位で承認済みのコンピューター オブジェクト作成アクセス許可を確認します。

エラー 0x84BB0001のみに基づいて広範なアクセス許可を付与しないでください。 ディレクトリ オブジェクトと拒否された操作を、最初に Detail.txt、グループ ポリシーの結果、およびクラスターの証拠と関連付けます。

セットアップを再試行する前に、ポリシーとディレクトリの変更がレプリケートされていることを確認する

  1. 管理者がグループ ポリシーまたはActive Directoryアクセス許可を更新したら、次のコマンドを実行します。

    gpupdate /force
    repadmin /replsummary
    repadmin /showrepl *
    
  2. 変更に gMSA の承認されたプリンシパルが関係している場合は、影響を受けるホストからの値を確認します。

    Get-ADServiceAccount -Identity 'SQLgMSA' `
      -Properties PrincipalsAllowedToRetrieveManagedPassword
    
    Test-ADServiceAccount -Identity 'SQLgMSA'
    

予想される結果:

  • 有効なグループ ポリシー レポートには、承認された SAM リモート アクセス エントリ (該当する場合) が含まれます。
  • Active Directoryレプリケーションでは、変更されたオブジェクトまたはポリシーに影響するエラーは報告されません。
  • gMSA に対して想定される許可されたプリンシパルが返されます。
  • Test-ADServiceAccount は、True を返します。
  • 新しいSQL Serverセットアップの試行で、同じアクセス拒否操作が記録されなくなりました。

異なるドメイン コントローラーが異なる gMSA またはアクセス許可情報を返す場合は、セットアップを繰り返し再試行しないでください。 最初にレプリケーション エラーを解決します。 repadmin /replsummary コマンドは、受信または送信のレプリケーションエラーがあるドメイン コントローラーを識別します。 詳細については、 Repadmin /replsummary を参照してください。

環境内でユーザー権限が強化された後にセットアップが失敗した場合は、既定のユーザー権限が削除された後にインストールが失敗SQL Serverを参照してください。

診断データの収集

これらの手順を完了した後もエラー 0x84BB0001でセットアップが失敗する場合は、同じエラー間隔で診断データ ( Detail.txt と gpresult 出力を含む) を収集します。 収集する gMSA 固有の証拠と標準的なSQL Server ログについては、gMSA トラブルシューティングの概要の診断データの収集に関するページを参照してください。 そのデータを使用して調査を続行するか、サポート ケースを開きます。