Azure Arc によって有効化された SQL Server を最小限の権限で操作する

適用対象: SQL Server

最小限の権限の情報セキュリティ原則は、アカウントとアプリケーションが必要なデータと操作のみにアクセスできることをアサートします。 Azure Arc で SQL Server を有効にすると、最小限の権限でエージェント拡張機能サービスを実行できます。 この記事では、最小限の権限でエージェント拡張機能サービスを実行する方法について説明します。

必要に応じて、最小限の権限で実行するようにサービスを構成するには、この記事の手順に従います。 現在、サービスは最小限の権限で自動的に実行されません。

Azure Extension for SQL Server の Windows サービス アカウントとアクセス許可を構成する」では、 エージェント拡張機能サービスの最小権限のアクセス許可について説明します。

注意

2024 年 11 月 リリース以降の拡張機能を持つ既存のサーバーには、最小限の特権構成が自動的に適用されます。 この適用は段階的に実施させていただきます。

最小特権の自動適用を防ぐには、2024 年 11 月 リリース以降への拡張機能のアップグレードをブロックします。

エージェント拡張機能サービスを最小限の権限で実行するように構成すると、NT Service\SQLServerExtension サービス アカウントが使用されます。

NT Service\SQLServerExtension アカウントは ローカルの Windows サービス アカウントです。

  • 最小権限オプションが有効になっている場合、Azure Extension for SQL Server によって作成および管理されます。
  • Windows オペレーティング システムで SQL Server サービス用の Azure 拡張機能を実行するために必要な最小限のアクセス許可と権限が付与されています。 構成の読み取りと保存またはログの書き込みに使用されるフォルダーとディレクトリにのみアクセスできます。
  • 必要最小限のアクセス許可を持つ、そのサービス アカウント専用の新しいログインを使用して SQL Server に接続してクエリを実行するためのアクセス許可が付与されました。 最小アクセス許可は、有効な機能によって異なります。
  • アクセス許可が不要になったときに更新されます。 たとえば、機能を無効にしたり、最小限の権限の構成を無効にしたり、SQL Server 用の Azure 拡張機能をアンインストールしたりすると、アクセス許可が取り消されます。 この取り消しにより、アクセス許可が不要になった後に残らないようになります。

前提条件

このセクションでは、この記事の例を完了するために必要なシステム要件とツールについて説明します。

システム要件

最小限の権限を持つ構成には、次のものが必要です。

  • Windows Server 2012 またはそれ以降
  • SQL Server 2012 以降

最小限の権限を持つ構成は、現在 Linux ではサポートされていません。

前提条件 - Azure Arc で有効になっている SQL Server に記載されているその他の要件が引き続き適用されます。 SQL Server サービス アカウントを含め、各 SQL Server インスタンス上の sysadmin 固定サーバー ロールのメンバーである必要があります。

ツール

この記事の手順を完了するには、次のツールが必要です。

最小限の権限を有効にする

  1. Azure CLI でログインします。

    az login
    
  2. arcdata 拡張機能のバージョンを検証します。

    az extension list -o table
    

    結果にサポートされているバージョン arcdata が含まれている場合は、次のステップに進みます。

    必要に応じて、arcdata Azure CLI 拡張機能をインストールまたは更新します。

    拡張機能をインストールするには、次のようにします。

    az extension add --name arcdata
    

    拡張機能を更新するには:

    az extension update --name arcdata
    
  3. Azure CLI で最小限の権限を有効にします。

    最小権限を有効にするには、LeastPrivilege 機能フラグを true に設定します。 このタスクを完了するには、<resource-group><machine-name> の更新された値を使用して次のコマンドを実行します。

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
    

    たとえば、次のコマンドを実行すると、myrg という名前のリソース グループ内の myserver という名前のサーバーに対する最小限の権限が有効になります。

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver 
    

最小特権の構成を確認する

Azure Arc によって有効化された SQL Server が最小限の権限で実行されるように構成されていることを確認するには:

  1. Windows サービスで、Microsoft SQL Server Extension Service サービスを見つけます。 サービスがサービス アカウント NT Service\SqlServerExtension として実行されていることを確認します。 

  2. サーバーでタスク スケジューラを開き、Microsoft\SqlServerExtension の下に SqlServerExtensionPermissionProvider という名前のイベント ドリブン タスクが作成されていることを確認します。

    注意

    2024 年 7 月のリリースより前の SqlServerExtensionPermissionProvider はスケジュールされたタスクです。 1 時間ごとに実行されます。

    サーバーでタスク スケジューラを開き、Microsoft\SqlServerExtension の下に SqlServerExtensionPermissionProvider という名前のスケジュールされたタスクが作成されていることを確認します。

  3. SQL Server Management Studio を開き、NT Service\SqlServerExtension という名前のログインを確認します。 アカウントに次のアクセス許可が割り当てられていることを確認します。

    • SQL の接続
    • View Database State
    • サーバーの状態の表示
  4. 次のクエリを使用してアクセス許可を検証します。

    サーバー レベルのアクセス許可を検証するには、次のクエリを実行します。

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    SELECT * FROM fn_my_permissions (NULL, 'SERVER");
    

    データベース レベルのアクセス許可を確認するには、[1] をいずれかのデータベースの名前に置き換えて、次のクエリを実行します。

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    USE <database name>; 
    SELECT * FROM fn_my_permissions (NULL, 'database");