Important
Always Encrypted with Intel Software Guard Extensions(Intel SGX)エンクレーブは2027年10月31日にサポート終了となります。 この日までに該当するデータベースを移行してください。 2027年10月31日以降、AzureはDCシリーズの計算層に残るデータベースを自動的にサポート済みの標準シリーズ(非DC)計算層に移行し、仮想化ベースのセキュリティ(VBS)エンクレーブを有効にします。
この記事では、Always Encrypted with Intel SGX enclaves の代替手段と、それぞれの代替手段に必要な変更について説明します。 代替案を選ぶ前にセキュリティに関する考慮事項を確認しましょう。 Intel SGX と VBS エンクレーブは、ゲスト オペレーティング システムおよびホストに起因する攻撃に対して、それぞれ異なる保護機能を提供します。
始める前に、ターゲットとなるAzure SQL論理サーバー、データベース、エラスティックプールを表示・修正できることを確認してください。 PowerShell では、Az PowerShell モジュールをインストールし、Azure にサインインしてください。 Azure CLI では、Azure CLI をインストールし、Azure にサインインしてください。 影響を受けるデータベースに接続するアプリケーションを洗い出し、移行時にそれらのドライバー、接続文字列、構成証明の設定を更新できるようにします。
DC-シリーズを使用するデータベースを特定する
移行を計画する前に、DC シリーズを使用するすべての単一データベースとエラスティック プールを特定してください。 DCシリーズの弾力プール内のすべてのデータベースが影響を受けます。
- Azure Portal
- PowerShell
- Azure CLI
- Azureポータルで、Azure SQLの論理サーバーにアクセスします。
- 概要ページで利用可能なリソースを探してください。 この表には、論理サーバー上のデータベースが一覧表示されます。
- 価格ティア列でフィルターを選択し、その後、一覧をDC-seriesで絞り込みます。
- フィルター済みのリスト内の各データベースを記録する。 これらのデータベースは、DC シリーズおよび Intel SGX エンクレーブを使用しています。
- お使いの環境内で Azure SQL データベースをホストしている各論理サーバーについて、これらの手順を繰り返します。
移行パスを選択する
ワークロードに求められるセキュリティ要件とアプリケーション要件を満たす移行パスを選択してください。 以下の比較を出発点として使用し、選択したパスの詳細なガイダンスを確認してから本番環境に変更を加えてください。
| 移行経路 | このオプションは、次の場合に使用します。 | Attestation |
|---|---|---|
| Azure SQL Database の VBS エンクレーブ対応 | Azure SQL Databaseに留まり、VBSエンクレーブがあなたのセキュリティ要件を満たしていることが望ましいです。 | Azure SQL Database の VBS エンクレーブでは、構成証明はサポートされません。 |
| SQL Server on an Azure confidential VM with VBS enclaves | ホスト オペレーターによるアクセスからゲスト OS を保護するのに役立つ、ハードウェアで強制される境界が必要です。 | ホストガーディアンサービス(HGS)の認証は任意です。 |
単一のデータベースをVBSエンクレーブに移行する
この方法を使用して、Azure SQL Database でエンクレーブ対応機能を維持します。
- ワークロードのパフォーマンスと可用性要件を満たす 対応標準シリーズ(非DC)ハードウェア構成 を選択してください。
- データベースを選択したハードウェア構成に移動します。
-
データベースのVBSエンクレーブを有効にしてください。 VBS エンクレーブを有効にすると、データベース プロパティ
preferredEnclaveTypeはVBSに設定されます。 - 構成証明のないVBSエンクレイブのクライアントドライバー要件を確認し、必要に応じてアプリケーションドライバーを更新してください。
- 各アプリケーション接続が
Noneエンクレーブ構成証明プロトコルを使用するように更新し、Microsoft Azure Attestation の URL を削除してください。 正確な接続文字列キーワードはクライアントドライバーによって異なります。 - 移行後の検証を完了してください。
エラスティックプールをVBSエンクレーブに移行する
エラスティックプール内のすべてのデータベースは、プールのエンクレーブ構成を継承します。 このパスを使って、Azure SQL elastic pool内のデータベースのenclave対応能力を保持できます。
- プールの性能および可用性要件を満たす対応標準シリーズ(非DC)構成を選択します。 プール設定の変更については、「Azure SQL Databaseのエラスティックプール管理」をご覧ください。
-
弾力プール用のVBSエンクレーブを有効にしてください。 VBSエンクレーブを有効にすると、
preferredEnclaveTypeプールプロパティがVBSに設定されます。 - 証明のないVBSエンクレーブのクライアント ドライバー要件を確認し、必要に応じてアプリケーション ドライバーを更新してください。
- 各アプリケーション接続を
Noneエンクレーブ証明プロトコルを使用するよう更新し、Microsoft Azure Attestation の URL を削除してください。 接続文字列の具体的なキーワードは、使用するクライアント ドライバーによって異なります。 - プール内のすべてのデータベースについて、 移行後の検証 を完了してください。
Migrate to SQL Server on an Azure confidential VM
ホストオペレーターのアクセスからゲストOSを保護するハードウェアによる境界が必要な場合は、このルートを検討してください。 Azureの機密VMはVMメモリを暗号化し、Intel SGXエンクレーブとは異なるセキュリティ特性を提供します。 これらの違いを、あなたのセキュリティおよびコンプライアンス要件と比較して評価してください。
- SQL ServerをAzureの機密VMにデプロイしてください。
- エンクレイブ認証を使用するかどうかを選択してください:
- 選択した認証オプションのガイダンスに従い、SQL Serverインスタンス上でVBSエンクレーブでAlways Encryptedを設定してください。
- データベース、ログイン、キー、アプリケーション接続、依存するリソースの移行を計画しましょう。
- データベースサイズ、ネットワーク構成、ダウンタイム要件、対応データベースオブジェクトに基づいてデータ移行オプションを選択してください。 一般的な選択肢は以下の通りです:
- Azure Data Factory:コピー活動を使い、Azure SQL Databaseコネクタをソース、SQL Serverコネクタをシンクにします。 ADF は Always Encrypted 列をバイナリ値または暗号文として扱い、列マスター キーにアクセスすることなく移動します。
- Smart Bulk Copy:Smart Bulk Copyを使ってAzure SQL DatabaseからSQL Serverにスキーマとデータをコピーします。 移行前にツールの前提条件や制限を確認しましょう。
- BACPAC: データ層アプリケーションでサポートされるオブジェクトを含む小規模なデータベースには、BACPAC を検討してください。 エクスポートおよびインポート時もAlways Encryptedデータは暗号化されたままで、BACPACにはAlways Encrypted鍵のメタデータが含まれています。 詳細については、「 Always Encrypted」「 BACPACファイルをエクスポート」「BACPACファイルから新しい データベースを作成する」をご覧ください。
- SQL Serverインスタンスおよび選択した構成証明オプションのアプリケーション接続文字列を更新します。
- 移行後の検証を完了してください。
移行を検証する
ワークロードを本番環境に移行する前に:
- Always Encrypted が有効な状態でアプリケーションが接続できることを確認してください。
- 暗号化された列を使った代表的なクエリを実行し、対象環境がセキュアエンクレーブを使用している場合は、エンクレーブ計算を必要とするクエリも含めて実行します。
- 暗号化されたカラムに対する挿入、更新、削除、およびインデックス操作が期待どおりに動作することを確認してください。
- アプリケーションのパフォーマンスをテストし、必要に応じて対象のコンピューティング構成を調整します。
- 事業継続、災害復旧、フェイルオーバーの手順をテストしてください。 ワークロードでエンクレーブ対応操作を使用する場合は、すべてのデータベース レプリカがセキュア エンクレーブをサポートしている必要があります。
- カットオーバー完了前に、アプリケーション内のエンクレイブ、アテステーション、クエリエラーを監視してください。