Azure Arc によって有効化された SQL Server を最小限の権限で操作する (プレビュー)

適用対象:SQL Server

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

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

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

Note

Azure 拡張機能がバージョン 1.1.2594.118 (2024 年 2 月リリース) 以降の場合、今後数か月以内に、最小特権モードが自動で有効になります。

現在、この構成のサポートはプレビューで利用できます。

Note

この記事で紹介しているテクノロジはプレビュー機能であり、「Microsoft Azure プレビューの追加利用規約」に従うことを条件として提供されます。

最新の更新プログラムについては、「リリース ノート - Azure Arc によって有効化された SQL Server」を参照してください。

エージェント拡張機能サービスを最小限の権限で実行するように構成すると、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 ではサポートされていません。

ツール

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

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

  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 という名前のスケジュールされたタスクが作成されていることを確認します。 このタスクは 1 時間ごとに実行され、機能が有効または無効に基づいて、必要に応じて権限を追加または削除します。

  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");
    

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

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

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

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

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