Share via


セキュリティで保護されたエンクレーブが設定された Always Encrypted を使用するアプリケーションを開発する

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

セキュリティで保護されたエンクレーブが設定された Always Encrypted を使うと、Always Encrypted が拡張され、暗号化された機密データベース列に対するアプリケーション クエリの高度な機能が有効になります。 セキュリティで保護されたエンクレーブのテクノロジを利用することで、データベース エンジンのクエリ Executor は、暗号化された列に対する計算を、データベース エンジン プロセス内のセキュリティで保護されたエンクレーブにデリゲートできるようになります。

前提条件

セキュリティで保護されたエンクレーブによる Always Encrypted をサポートするには、環境が次の要件を満たす必要があります。

  • SQL Server インスタンスまたは Azure SQL Database のデータベース サーバーは、該当する/必要な場合にエンクレーブと構成証明をサポートするように正しく構成されている必要があります。 詳細については、「セキュリティで保護されたエンクレーブと構成証明を設定する」を参照してください。
  • 次のアプリケーションを確認してください。
    • クライアント ドライバーバージョンを使用して、セキュリティで保護されたエンクレーブを持つ Always Encrypted をサポートします。

    • データベースに接続する場合、Always Encrypted を有効にします。

    • 構成証明プロトコルを設定します。このプロトコルは、エンクレーブ クエリを送信する前にクライアント ドライバーがエンクレーブを構成証明する必要があるかどうかを決定し、存在する場合は使用する構成証明サービスを設定します。 最新のドライバー バージョンでは、次の構成証明プロトコルがサポートされています。

      • Microsoft Azure Attestation - Microsoft Azure Attestation を使用して認証を強制します。
      • ホスト ガーディアン サービス - ホスト ガーディアン サービスを使用して構成証明を適用します。
      • なし - 構成証明なしでエンクレーブを使用できます。

      次の表は、特定の SQL 製品とエンクレーブ テクノロジに対して有効な構成証明プロトコルを示しています。

      Product エンクレーブ テクノロジ サポートされている構成証明プロトコル
      SQL Server 2019 (15.x) 以降 VBS エンクレーブ ホスト ガーディアン サービス、なし
      Azure SQL Database SGX エンクレーブ (DC シリーズ データベース内) Microsoft Azure Attestation
      Azure SQL Database VBS エンクレーブ なし
    • 構成証明を使用している場合は、環境に対して有効な構成証明 URL を設定します。

セキュリティで保護されたエンクレーブが設定された Always Encrypted 用のクライアント ドライバー

セキュリティで保護されたエンクレーブが設定された Always Encrypted を使用してアプリケーションを開発するには、セキュリティで保護されたエンクレーブがサポートされているバージョンの SQL クライアント ドライバーが必要です。 クライアント ドライバーでは、次の重要な役割が行われます。

  • セキュリティで保護されたエンクレーブ (構成されている場合) を使用するクエリが実行のために SQL Server または Azure SQL Database に送信される前に、ドライバーによってエンクレーブの構成証明が開始され、セキュリティで保護されたエンクレーブが信頼できること、および機密データの処理に安全に使用できることが確認されます。 構成証明について詳しくは、「セキュリティで保護されたエンクレーブの構成証明」をご覧ください。
  • クライアント ドライバーにより、共有シークレットをネゴシエートすることで、エンクレーブとのセキュリティで保護されたセッションが確立されます。
  • ドライバーでは、共有シークレットを使用して、エンクレーブがクエリを処理するために必要な列暗号化キーが暗号化され、そのキーが SQL Server に送信されます。そこからキーは、キーの暗号化解除が行われるセキュリティで保護されたエンクレーブに転送されます。
  • 最後に、ドライバーによって実行のためにクエリが送信され、セキュリティで保護されたエンクレーブ内で計算がトリガーされます。

セキュリティで保護されたエンクレーブが設定された Always Encrypted は、次のクライアント ドライバーでサポートされます。

関連項目