構成証明なしで SQL Server のセキュリティで保護されたエンクレーブが設定された Always Encrypted を計画する

適用対象: SQL Server 2019 (15.x) 以降 - Windows のみ

構成証明なしで SQL Server でセキュリティで保護されたエンクレーブを使用して Always Encrypted を設定すると、この機能を簡単に開始できます。 ただし、運用環境でセキュリティで保護されたエンクレーブを使用する場合は、構成証明なしで OS 管理者に対する保護レベルが低下する点に注意してください。 たとえば、悪意のある OS 管理者がエンクレーブ内で実行されている SQL Server ライブラリを改ざんした場合、クライアント アプリケーションはそれを検出できません。 このような攻撃が心配な場合は、ホスト ガーディアン サービスで構成証明を設定することを検討してください。 詳細については、「ホスト ガーディアン サービスの構成証明の計画」を参照してください。

SQL Server では、セキュリティで保護されたエンクレーブを使用した Always Encrypted は、仮想化ベースのセキュリティ (VBS) エンクレーブ (仮想セキュア モードまたは VSM エンクレーブとも呼ばれます) を使用します。これは、Windows ハイパーバイザーに依存し、エンクレーブを使用しないソフトウェア ベースのテクノロジであり、特別なハードウェアは必要ありません。

注意

SQL Server が VM にデプロイされている場合、VBS エンクレーブは VM 内の攻撃からデータを保護するのに役立ちます。 ただし、ホストからの特権システム アカウントを使用した攻撃からは保護されません。     たとえば、ホスト コンピューターで生成された VM のメモリ ダンプには、エンクレーブのメモリが含まれている場合があります。

前提条件

SQL Server を実行しているコンピューターは、SQL Server のインストール要件Hyper-V ハードウェア要件の両方を満たしている必要があります。

これらの要件の内容は次のとおりです。

  • SQL Server 2019 (15.x) 以降

  • Windows 10 以降または Windows Server 2019 以降

  • 仮想化テクノロジの CPU サポート:

    • Extended Page Tables を備えた Intel VT-x。
    • Rapid Virtualization Indexing を備えた AMD-V。
    • VM で SQL Server を実行されている場合
      • Azure では、第 2 世代 VM サイズ (推奨) を使用するか、入れ子になった仮想化が有効になっている第 1 世代 VM サイズを使用します。 個々の VM サイズに関するドキュメントを参照して、入れ子になった仮想化がサポートされている第 1 世代 VM サイズを確認してください。
      • Hyper-V 2016 以降 (Azure の外部) では、VM が第 2 世代 VM (推奨) であるか、入れ子になった仮想化が有効になっている第 1 世代 VM であることを確認してください。 詳細については、「Hyper-V では、第 1 世代と第 2 世代の仮想マシンのどちらを作成するべきですか?」と「入れ子になった仮想化の構成」を参照してください。
      • VMware vSphere 6.7 以降では、VMware のドキュメントの説明に従って、仮想化ベースのセキュリティによる VM のサポートを有効にします。
      • 他のハイパーバイザーおよびパブリック クラウドでは、VBS エンクレーブが設定された Always Encrypted を有効にする入れ子になった仮想化機能がサポートされている場合もあります。 互換性と構成手順については、仮想化ソリューションのドキュメントを確認してください。
  • 仮想化ベースのセキュリティ (VBS) を有効にして実行する必要があります。

ツールの要件

クライアント ドライバーの要件

構成証明なしでセキュリティで保護されたエンクレーブの使用をサポートするクライアント ドライバーのバージョンについては、「Develop applications using Always Encrypted with secure enclaves」を参照してください。

VBS が実行されていることを確認する

注意

この手順は、SQL Server コンピューター管理者が行う必要があります。

VBS が実行されているかどうかを確認するには、msinfo32.exeを実行してシステム情報ツールを開き、[システムの概要] の下部に表示されている Virtualization-based security の項目を見つけます。

Screenshot of System Information showing virtualization-based security status and configuration.

最初に確認する項目は、Virtualization-based securityです。次の 3 つの値のいずれかが表示されます。

  • Running は、VBS が正しく構成されており、正常に開始できたことを意味します。
  • Enabled but not running は、VBS を実行するように構成されているものの、ハードウェアが、VBS を実行するための最小限のセキュリティ要件を満たしていないことを意味します。 BIOS または UEFI でハードウェアの構成を変更して、IOMMU などのオプションのプロセッサ機能を有効にする必要があります。また、ハードウェアが本当に必要な機能をサポートしていない場合は、VBS のセキュリティ要件を低減させることが必要になる可能性があります。 詳細については、このセクションを引き続き参照してください。
  • Not enabled は、VBS を実行するように構成されていないことを意味します。

VBS を有効にする

VBS が有効になっていない場合は、管理者特権の PowerShell コンソールで次のコマンドを実行して有効にします。

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1

レジストリを変更した後、SQL Server コンピューターを再起動して、VBS が実行されているかどうかを再度確認します。

VBS を有効にするその他の方法については、「コードの整合性に対する仮想化ベースの保護を有効にする」を参照してください。

VBS が実行されていない場合に実行する

コンピュータ上で VBS が実行されていないために有効になっている場合は、Virtualization-based security プロパティを確認してください。 Required Security Properties 項目の値と、Available Security Properties 項目の値を比較します。 VBS を実行するには、必須プロパティが、使用可能なセキュリティ プロパティと等しいか、そのサブセットである必要があります。 セキュリティ プロパティの重要度は次のとおりです。

  • Base virtualization support は常に必須です。これは、ハイパーバイザーを実行するために最小限必要なハードウェア機能を表します。
  • Secure Boot は推奨されますが必須ではありません。 セキュア ブートは、UEFI の初期化が完了した直後に Microsoft によって署名されたブートローダーを要求して、ルートキットから保護します。
  • DMA Protection は推奨されますが必須ではありません。 DMA 保護は、IOMMU を使用してダイレクト メモリ アクセス攻撃から VBS とエンクレーブ メモリを保護します。 運用環境では、DMA 保護を備えたコンピューターを常に使用する必要があります。 開発またはテスト環境では、DMA 保護の要件を削除することができます。 SQL Server インスタンスが仮想化されている場合、DMA 保護を使用できない可能性が高いため、VBS を実行するための要件を削除する必要があります。

VBS の必須セキュリティ機能を低減する前に、OEM またはクラウド サービス プロバイダーに問い合わせて、欠落しているプラットフォーム要件を UEFI または BIOS で有効にする方法 (たとえば、セキュア ブート、Intel VT-d、AMD IOV の有効化など) があるかどうかを確認してください。

VBS の必須プラットフォーム セキュリティ機能を変更するには、管理者特権の PowerShell コンソールで次のコマンドを実行します。

# Value 1 = Only Secure Boot is required
# Value 2 = Only DMA protection is required (default configuration)
# Value 3 = Both Secure Boot and DMA protection are required
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 1

レジストリを変更した後、SQL Server コンピューターを再起動して、VBS が実行されているかどうかを再度確認します。

コンピューターが会社で管理されている場合、再起動後に、グループ ポリシーまたは Microsoft Endpoint Manager によって、これらのレジストリ キーの変更がオーバーライドされる可能性があります。 IT ヘルプ デスクに問い合わせて、VBS 構成を管理するポリシーがデプロイされているかどうかを確認してください。

次のステップ