改善: Azure VM 上の SQL Server でのデータベースのバックアップと復元操作と AKV を使用した EKM に対する Microsoft Entra マネージド ID のサポート
現象
バックアップを実行するか、データベース操作を Azure Storage に復元した場合、またはマネージド ID を持つサーバー レベルの資格情報を使用して Azure Key Vault (AKV) で Extensible Key Management (EKM) を使用すると、SQL Server インスタンスの応答が停止する可能性があります。 この操作は SQL Server 2022 ではサポートされていませんが、現在の T-SQL 構文ではサポートされています。
解決方法
この問題は、Azure 仮想マシン (VM) 上の SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 2022 の累積的な更新プログラム 17
SQL Server 2022 CU17 以降のバージョンでは、Azure Windows 上の SQL Server を使用した Microsoft Entra マネージド ID 認証では、Azure Storage および AKV を使用した EKM に対するデータベースのバックアップと復元の操作に対してサーバー レベルの credential がサポートされています。
Azure Windows VM 上の SQL Server のバックアップ操作または復元データベース操作のマネージド ID サポートを有効にするには、次の手順が必要です。
- Azure Windows VM 上の SQL Server のプライマリ マネージド ID を割り当てます。
- BLOB コンテナーで Azure Storage を作成または使用します。
- プライマリ マネージド ID にロールベースのアクセス制御 (RBAC) ロールを割り当てて、Azure Storage にアクセスします。
- 資格情報名として Azure Storage URL を使用して、
WITH IDENTITY = 'Managed Identity'
句で T-SQL コマンドCREATE CREDENTIAL
を実行します。 - Azure Storage URL を使用して T-SQL コマンド
BACKUP DATABASE
またはRESTORE DATABASE
を実行します。
-- Create credential with managed identity and credential name set to
-- URL= https://<storageaccountname>.blob.core.windows.net/<container>
CREATE CREDENTIAL [https://<storageaccountname>.blob.core.windows.net/<container>]
WITH IDENTITY = 'Managed Identity'
-- Backup the database mydb to URL
BACKUP DATABASE mydb
TO URL = 'https://<storageaccount>.blob.core.windows.net/<container>/mydb.bak'
-- Restore the database mydb1 from URL
RESTORE DATABASE mydb1
FROM URL ='https://<storageaccount>.blob.core.windows.net/<container>/mydb.bak'
詳細については、「 マネージド ID を使用した URL へのバックアップと復元を参照してください。
Azure Windows VM 上の SQL Server 用 AKV を使用して EKM のマネージド ID サポートを有効にするには、次の手順が必要です。
- Azure Windows VM 上の SQL Server のプライマリ マネージド ID を割り当てます。
- キー コンテナーを作成または使用します。
- AKV にアクセスするために、プライマリ マネージド ID のロールベースのアクセス制御 (RBAC) ロールを割り当てます。
- 最新のSQL Server コネクタ for Microsoft Azure Key Vault (1.0.5.0 (2024 年 11 月) 以降) をダウンロードします。 マネージド ID をサポートするには、最新バージョンの SQL Server コネクタが必要です。
- AKV パスを資格情報名として使用して、
WITH IDENTITY = 'Managed Identity'
句を使用して T-SQL コマンドCREATE CREDENTIAL
を実行します。
-- Create credential with managed identity and the credential name for the AKV called 'contoso'
-- with the AKV path = 'contoso.vault.azure.net'
CREATE CREDENTIAL [contoso.vault.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
- AKV を使用して EKM の残りの T-SQL セットアップを実行します。
詳細については、「 Azure Key Vault を使用した拡張キー管理の管理 ID サポートを参照してください。
Note
- トレース フラグ 4675 は既定で無効になっており、サーバー レベルの資格情報のトラブルシューティングを行うことができ、SQL Server インスタンスに割り当てられているプライマリ マネージド ID を確認するために使用できます。
- マネージド ID のサポートでは、この機能は Azure SQL Managed Instance 用に既に存在するため、T-SQL 構文やシステム ビューの変更は導入されていません。
- オンプレミスの SQL Server のサーバー レベルの資格情報では、マネージド ID はサポートされていません。 Azure Storage または AKV を使用した EKM へのバックアップまたは復元で誤って使用された場合は、"プライマリ マネージド ID がサーバーに設定されていません。" というエラー メッセージが表示されます。パブリック ドキュメントを参照します。
SQL Server の累積的な更新プログラムについて
SQL Server の各新しい累積的な更新プログラムには、以前のビルドにあったすべての修正プログラムとセキュリティ修正プログラムが含まれています。 SQL Server のバージョンに合わせて最新のビルドをインストールすることをお勧めします。
SQL Server 2022 の最新の累積的な更新プログラム
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。