SQL Server Windows拡張機能のAzureサービス アカウントとアクセス許可を構成する

適用対象:SQL Server

この記事では、Azure Arc によって有効になっている SQL Server インスタンスに対して least privilege を使用する場合に、SQL ServerのAzure拡張機能が アカウントに付与するアクセス許可の一覧を示します。最小限の特権構成では、Azure ポータルで機能を有効にした場合にのみ、拡張機能によって必要なアクセス許可が付与されます。

Note

NT AUTHORITY\SYSTEM には、一覧表示されているディレクトリとレジストリ キーに対するアクセス許可を変更するためのアクセス許可が必要です。 このアクセスは、 NT AUTHORITY\SYSTEM が最小限の特権モードで NT SERVICE\SqlServerExtension アカウントに必要なアクセス権を付与できるようにするために必要です。

さらに、NT AUTHORITY\SYSTEM には、各SQL Server インスタンスに対する CONNECT SQL アクセス許可を持つアクティブなSQL Server ログインが必要です。 Deployer は、NT AUTHORITY\SYSTEM としてSQL Serverに接続して、この記事で説明するすべての SQL レベルのアクセス許可を構成します。 このログインが無効、削除、または拒否 CONNECT SQL 場合、Deployer は標準または最小特権モードで SQL アクセス許可を構成できません。 確認手順 の前提条件を 参照してください。

Overview

最小限の特権を有効にして SQL Server を Azure Arc に接続すると、Azure Arc 拡張機能は、その機能を有効にするときに必要なアクセス許可のみを、サービス アカウントNT SERVICE\SqlServerExtension付与します。 この機能を無効にすると、拡張機能によってこれらのアクセス許可が自動的に削除されます。 機能が非アクティブな場合、拡張機能はその機能に対するアクセス許可を付与しません。

エージェント アカウントのアクセス許可を手動で設定することはできません。

Note

現時点では、最小特権構成は既定では適用されません。

拡張機能バージョンが 1.1.2859.223 以上の既存のサーバーでは、最終的に最小限の特権構成が適用されます。 この拡張機能は、2024 年 11 月にリリースされました。 最小特権の自動適用を防ぐには、 1.1.2859.223後に拡張機能のアップグレードをブロックします。

機能別の SQL 特権セクションでは、次の機能を有効にしたときに拡張機能によって付与されるアクセス許可について説明します。

ディレクトリのアクセス許可

ディレクトリ パス 必要なアクセス許可 Details Feature
<SystemDrive>\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer フル コントロール 拡張子に関連する DLL ファイルと EXE ファイル。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\RuntimeSettings フル コントロール 拡張機能の設定ファイル。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status フル コントロール 拡張機能の状態ファイル。 Default
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer フル コントロール 拡張ログ ファイル。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status\HeartBeat.Json フル コントロール 拡張ハートビート ファイル。 Default
%ProgramFiles%\Sql Server Extension フル コントロール 拡張サービス ファイル。 Default
<SystemDrive>\Windows\system32\extensionUpload フル コントロール 課金に必要な使用状況ファイルを書き込むには必要です。 Default
<SystemDrive>\Windows\system32\ExtensionHandler.log フル コントロール 拡張機能によって作成されたログ前フォルダー。 Default
<ProgramData>\AzureConnectedMachineAgent\Config Read Arc 構成ファイル ディレクトリ。 Default
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent フル コントロール 評価レポートと状態を記述するために必要です。 Default
SQL ログ ディレクトリ (レジストリで設定) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\log
Read SQL ログから SQL 仮想コア情報を抽出するために必要です。 Default
SQL バックアップ ディレクトリ (レジストリで設定) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\Backup
ReadAndExecute/Write /Delete バックアップに必要 Backup

1 詳細については、「 ファイルの場所とレジストリ マッピング」を参照してください。

レジストリの権限

基本キー: HKEY_LOCAL_MACHINE

レジストリ キー 必要な権限 Details Feature
SOFTWARE\Microsoft\Microsoft SQL Server Read installedInstancesなどの SQL Server プロパティを読み取ります。 Default
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER フル コントロール Microsoft Entra ID と Purview。 Microsoft Entra ID

Purview
SOFTWARE\Microsoft\SystemCertificates フル コントロール Microsoft Entra ID に必要です。 Microsoft Entra ID
SYSTEM\CurrentControlSet\Services Read SQL Server アカウント名。 Default
SOFTWARE\Microsoft\AzureDefender\SQL Read Azure Defender の状態と最終更新時刻。 Default
SOFTWARE\Microsoft\SqlServerExtension フル コントロール 拡張機能関連の値。 Default
SOFTWARE\Policies\Microsoft\Windows 読み取りと書き込み 拡張機能を使用した自動Windows更新の有効化。 自動更新

グループのアクセス許可

NT SERVICE\SqlServerExtension は、ハイブリッド エージェント拡張機能アプリケーションに追加されます。 これにより、Azure Instance Metadata Service (IMDS) ハンドシェイクは、データ処理サービス (DPS) や課金の使用状況、拡張機能ログ、ダッシュボード データ収集の監視のために Azure データ プレーン サービスと通信するために必要なマシン リソースマネージド ID トークンを取得できます。

SQL のアクセス許可

NT SERVICE\SqlServerExtension アカウントが追加されます。

  • マシン上のすべてのインスタンスへの SQL ログインとして
  • 各データベースのユーザーとして

拡張機能は、機能が有効になっているとき、インスタンス オブジェクトとデータベース オブジェクトへのアクセス許可も付与します。

Note

最小アクセス許可は、有効な機能によって異なります。 拡張機能は、不要になったときにアクセス許可を更新します。 機能を有効にすると、必要なアクセス許可が付与されます。 ロールは、最小限の特権モードでは使用されません。

NT SERVICE\SqlServerExtension アカウントのアクセス許可の詳細

レジストリ パス 権限 NT SERVICE\SqlServerExtension アカウントが侵害された場合のアクセス許可に関連するリスク
SOFTWARE\Microsoft\Microsoft SQL Server Read 拡張機能では、インストールされている SQL Server のバージョンを確認できます。
SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLSERVER フル コントロール Microsoft Entra 認証または Purview が有効になっている場合にのみ必要です。 拡張機能によって SQL Server の構成が変更される可能性があります。
SOFTWARE\Microsoft\SystemCertificates フル コントロール Microsoft Entra 認証が有効になっている場合にのみ必要です。 拡張機能は、信頼されたルート証明機関を置き換えることができます。
SYSTEM\CurrentControlSet\Services Read 拡張機能では、サービス アカウント名を確認できます。
SOFTWARE\Microsoft\AzureDefender\SQL Read 拡張機能では、Microsoft Defender の状態と更新時刻を学習できます。
SOFTWARE\Microsoft\SqlServerExtension フル コントロール 拡張機能によって拡張機能の設定が変更される可能性があります。
SOFTWARE\Policies\Microsoft\Windows 読み取りと書き込み 自動更新が有効になっている場合にのみ必要です。 拡張機能は、Windows Update ポリシーを変更し、コードの整合性と仮想化ベースのセキュリティを制御する Device Guard を無効にし、パッチが不足しているために長時間公開される可能性があります。

機能別の SQL 特権

次の表に、Azure Extension for SQL Server によって付与されるアクセス許可を制御する機能の既定の動作を示します。

Feature 既定の動作
既定の拡張機能のアクセス許可 既定で有効
自動バックアップ 既定では無効になっています
可用性グループ 既定で有効
ベスト プラクティス アセスメント 既定では無効になっています
移行の評価 既定で有効
データベースの移行 既定で有効
ポイントインタイム リストア 既定では無効になっています
Purview 既定では無効になっています

既定の拡張機能のアクセス許可

次の既定のアクセス許可は、Azure Extension for SQL Server によって提供される基本的な機能レベルの最小要件であり、適用する必要があります。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database master VIEW DATABASE STATE
Database msdb ALTER ANY SCHEMA
Database msdb CREATE TABLE
Database msdb CREATE TYPE
Database msdb DB DATA READER
Database msdb DB DATA WRITER
Database msdb EXECUTE
Database msdb SELECT dbo.backupfile
Database msdb SELECT dbo.backupmediaset
Database msdb SELECT dbo.backupmediafamily
Database msdb SELECT dbo.backupset
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobactivity
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.syssessions
Database msdb SELECT dbo.sysoperators
Database msdb SELECT dbo.suspectpages
Server CONNECT ANY DATABASE
Server CONNECT SQL
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE

自動バックアップ

自動バックアップ は既定で無効になっています。 この拡張機能は、自動バックアップが有効になっているすべてのデータベースにバックアップアクセス許可を付与します。 バックアップ機能を有効にすると 、特定の時点の復元 機能も有効になるため、データベースを作成する権限も付与されます。

機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database [すべてのデータベース] DB BACKUP OPERATOR
Server CREATE ANY DATABASE
Server master DB CREATOR

可用性グループ

フェールオーバーなどの可用性グループ の検出と管理機能は既定で有効になっていますが、 AvailabilityGroupDiscovery 機能フラグを使用して無効にすることができます。

この機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server VIEW ANY DEFINITION

ベスト プラクティス アセスメント

ベスト プラクティスの評価は、既定では無効になっています。

この機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database master SELECT
Database master VIEW DATABASE STATE
Database msdb SELECT
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE
StoredProcedure EnumErrorLogsSP EXECUTE
StoredProcedure ReadErrorLogsSP EXECUTE

データベース移行

データベース移行機能は既定で有効になっており、既定の拡張機能のアクセス許可に記載されているアクセス許可のみが必要ですが、特定の移行アクションが実行されると、一部のアクセス許可は Just-In-Time で付与されます。

次のアクションでは、拡張機能が Just-In-Time を付与する追加のアクセス許可が必要です。

Note

SqlServerAvailabilityGroups_CreateManagedInstanceLinkを持つユーザー SqlServerAvailabilityGroups_failoverMiLink、および Azure の SqlServerAvailabilityGroups_deleteMiLink アクセス許可は、移行プロセス中に Database migration ページでアクションを実行できます。このページでは、sysadmin 固定サーバー ロールを含む、拡張機能で使用されるアカウントのSQL Serverアクセス許可が昇格されます。

[データの移行] ステップで、Managed Instance リンク移行の [確認と作成] タブで [データ移行の開始] を選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 サービス アカウントには、分散型可用性グループ (AG) を構成するための昇格されたアクセス許可が必要です。 分散 AG が作成され、Azure ポータルに表示されるデプロイが完了状態になると、アクセス許可が取り消されます。 別の移行が同時に実行されている場合、拡張機能は、最後の分散 AG が作成されるまでアクセス許可を取り消しません。

Managed Instance リンクの移行を作成するアクションは、作成要求中に次のアクセス許可を取得します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server CREATE ENDPOINT
Server ALTER ANY ENDPOINT
Server CREATE CERTIFICATE
Database master IMPERSONATE ON USER::[dbo]

監視とカットオーバーの手順では、Managed Instance リンク移行の [完全なカットオーバー] オプションを選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 カットオーバーが完了すると、拡張機能によってアクセス許可が取り消されます。

Managed Instance リンクの移行のカットオーバーを完了するアクションは、完全な要求中に次のアクセス許可を取得します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin1

1 最小権限が有効になっている場合、完全なカットオーバー アクションにより、カットオーバー中に sysadmin 固定サーバー ロールが NT SERVICE\SqlServerExtension アカウントに付与されます。 このロールは、Azure SQL Managed Instanceへのカットオーバーのために分散 AG をフェールオーバーするために必要です。

監視とカットオーバーの手順では、Managed Instance リンク移行の [移行のキャンセル] オプションを選択すると、拡張機能によって Just-In-Time アクセス許可が付与されます。 移行が取り消された後、拡張機能はアクセス許可を取り消します。

Managed Instance リンクの移行を取り消すアクションは、取り消し要求中に次のアクセス許可を取得します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin1

1 最小権限が有効になっている場合、キャンセル アクションは、キャンセル要求中に sysadmin 固定サーバー ロールを NT SERVICE\SqlServerExtension アカウントに付与します。 このロールは、分散 AG を削除するときに必要です。

移行評価

移行評価 は既定で有効になっています。

この機能が無効になっている場合、他の有効な機能で必要な場合を除き、拡張機能は次のアクセス許可を取り消します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database [すべてのデータベース] SELECT sys.sql_expression_dependencies
Database msdb EXECUTE dbo.agent_datetime
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.sysmail_account
Database msdb SELECT dbo.sysmail_profile
Database msdb SELECT dbo.sysmail_profileaccount
Database msdb SELECT dbo.syssubsystems

Purview

Purview 機能は既定で無効になっています。

この機能が有効になっている場合、拡張機能は自動的に次のアクセス許可を付与します。

オブジェクトの種類 データベースまたはオブジェクト名 Privilege
Database [すべてのデータベース] EXECUTE
Database [すべてのデータベース] SELECT
Server CONNECT ANY DATABASE
Server VIEW ANY DATABASE

Just-In-Time SQL アクセス許可

一部の SQL アクセス許可は、特定のアクションを実行するために必要な場合にのみ割り当てられ、アクセス許可を必要とする操作が完了するとすぐに取り消されます。 失効の実行に失敗した場合、50 分ごとに実行されるバックグラウンド クリーンアップ ジョブは、古いアクセス許可を自動的に取り消します。

Just-In-Time アクセス許可がサービス アカウントに割り当てられます。

  • NT SERVICE\SqlServerExtension 最小特権が有効な場合
  • 最小特権が無効になっている場合は、ローカル システム アカウント。

現在、次の機能では Just-In-Time アクセス許可が使用されています。

  • Managed Instance のリンク移行オプションを使用する場合のデータベースの移行。

追加の権限

サービス アカウントには、次のアクセス許可が必要です。

  • 拡張機能サービスにアクセスし、自動回復を構成します。
  • サービスとしてログオンします。