適用対象: Azure VM 上の SQL Server(Windows のみ)
この記事では、 Azure Virtual Machines (VM) 上の SQL Server 上の Azure Key Vault (AKV) で拡張キー管理 (EKM) のマネージド ID を使用する方法について説明します。
概要
SQL Server 2022 Cumulative Update 17 (CU17) 以降では、Azure VM 上の SQL Server 上の AKV およびマネージド ハードウェア セキュリティ モジュール (HSM) を使用した EKM でマネージド ID がサポートされます。 マネージド ID は、パスワードやシークレットを使用せずに、異なる Azure サービスが Azure VM リソース上の SQL Server を認証できるようにするための推奨される認証方法です。 マネージド ID の詳細については、「 マネージド ID の種類」を参照してください。
注
マネージド ID は、Azure VM 上の SQL Server でのみサポートされ、オンプレミスの SQL Server ではサポートされません。
オンプレミスの SQL Server 用 AKV を使用して EKM を設定する方法については、 Azure Key Vault を使用した SQL Server TDE 拡張キー管理の設定に関するページを参照してください。
[前提条件]
- SQL Server 2022 CU17 以降が SQL IaaS Agent 拡張機能に登録されている Azure VM 上の SQL Server。
- EKM のマネージド ID を使用する SQL Server インスタンスは、拡張機能に登録されているインスタンスかどうかに関係なく、 Microsoft Entra 認証を使用して構成する必要があります。
- キー コンテナーに作成された Azure Key Vault とキー。 詳細については、「 キー コンテナーの作成」を参照してください。
注
Azure Key Vault と Azure Key Vault Managed HSM のみがサポートされています。 Azure Cloud HSM はサポートされていません。
- AKV を使用した EKM では、マネージド ID がサポートされています。 Azure VM 上の SQL Server のプライマリ マネージド ID には、次のものが必要です。
- ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID で割り当てられる。 詳細については、「 Azure 仮想マシン (VM) でマネージド ID を構成する」 および「 Microsoft Entra 認証を有効にする」を参照してください。
プライマリ マネージド ID にキー コンテナーが割り当てられている場合、Azure ロールベースのアクセス制御を使用しているか、または コンテナー アクセス ポリシー を使用している場合はキーのラップ解除 およびラップのアクセス許可 を持つ必要があります。
- Microsoft ダウンロード センターから最新バージョンの SQL Server コネクタをダウンロードします。
EKM プロバイダーのレジストリ キーを追加する
マネージド ID を使用して資格情報を作成する前に、レジストリ キーを追加して、EKM プロバイダーがマネージド ID を使用できるようにする必要があります。 この手順は、コンピューター管理者が実行する必要があります。 詳細な手順については、「 手順 4: EKM プロバイダーをサポートするためのレジストリ キーを追加する」を参照してください。
マネージド ID を使用してサーバー資格情報を作成する
次の例は、AKV で使用するマネージド ID の資格情報を作成する方法を示しています。
CREATE CREDENTIAL [<akv-name>.vault.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;
sys.credentialsクエリを実行して、AKV 名を確認できます。
SELECT name, credential_identity
FROM sys.credentials;
WITH IDENTITY = 'Managed Identity' 句には、Azure VM 上の SQL Server に割り当てられたプライマリ マネージド ID が必要です。
AKV を使用した EKM の設定の詳細については、「 Azure Key Vault を使用した SQL Server TDE 拡張キー管理の設定」を参照してください。
マネージド ハードウェア セキュリティ モジュール (HSM) で使用する資格情報を作成する
Azure Key Vault マネージド ハードウェア セキュリティ モジュール (HSM) で使用する資格情報を作成するには、次の構文を使用します。
CREATE CREDENTIAL [<akv-name>.managedhsm.azure.net]
WITH IDENTITY = 'Managed Identity'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;
AKV を使用した EKM の設定の詳細については、「 Azure Key Vault を使用した SQL Server TDE 拡張キー管理の設定」を参照してください。
マネージド ID を使用するように既存の EKM 構成をアップグレードする T-SQL コマンド
現在の構成でシークレットを使用して AKV で EKM を使用している場合は、既存の資格情報を削除し、マネージド ID を使用して新しい資格情報を作成する必要があります。 次の T-SQL コマンドは、マネージド ID を使用するように既存の EKM 構成をアップグレードする方法を示しています。
マネージド ID を使用して資格情報を作成します。
CREATE CREDENTIAL [<akv-name>.vault.azure.net] WITH IDENTITY = 'Managed Identity' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;SQL Server 管理ドメイン ログインに関連付けられているシークレットを使用する資格情報がある場合は、既存の資格情報を削除します。
ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL [<existing-credential-name>];新しい資格情報を SQL Server 管理ドメイン ログインに関連付けます。
ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL [<akv-name>.vault.azure.net];
次のクエリを使用して、暗号化されたデータベース ビューを確認してデータベースの暗号化を確認できます。
SELECT *
FROM sys.dm_database_encryption_keys
WHERE database_id = db_id('<your-database-name>');
AKV を使用した EKM の設定の詳細については、「 Azure Key Vault を使用した SQL Server TDE 拡張キー管理の設定」を参照してください。
エラー メッセージ
トレース フラグ 4675 を使用して、マネージド ID で作成された資格情報を確認できます。 トレース フラグ 4675 が有効になっていない状態で CREATE CREDENTIAL ステートメントが実行された場合、プライマリ マネージド ID がサーバーに設定されていない場合、エラー メッセージは発行されません。 このシナリオをトラブルシューティングするには、トレース フラグが有効になったら、資格情報を削除して再作成する必要があります。
プライマリ マネージド ID が割り当てられていない
プライマリ マネージド ID が Azure VM 上の SQL Server に割り当てられていない場合、バックアップ操作と復元操作は失敗し、マネージド ID が選択されていないことを示すエラー メッセージが表示されます。
Msg 37563, Level 16, State 2, Line 14
The primary managed identity is not selected for this server. Enable the primary managed identity for Microsoft Entra authentication for this server. For more information see (https://aka.ms/sql-server-managed-identity-doc).`
SQL Server コネクタのバージョンでは、AKV を使用した EKM のマネージド ID はサポートされていません
以前のバージョンの SQL Server コネクタが使用されている場合、マネージド ID を持つサーバー資格情報を使用して T-SQL CREATE ASYMMETRIC KEY ステートメントを実行すると、次のエラーが発生します。
Msg 37576, Level 16, State 2, Line 60
The current SQL Server Connector version for Microsoft Azure Key Vault does not support the managed identity (see https://aka.ms/sql-server-managed-identity-doc). Upgrade the SQL Server Connector to its latest version
制限事項
- サーバー レベルのマネージド ID は、オンプレミスの SQL Server ではなく、Azure VM 上の SQL Server でのみサポートされます。 Linux では、サーバー レベルのマネージド ID はサポートされていません。
- AKV を使用した EKM のマネージド ID のサポート と、マネージド ID を使用した URL へのバックアップと復元 は、Azure VM 上の SQL Server のマネージド ID をサポートする唯一の Azure サービスです。
- AKV での EKM のマネージド ID のサポートには、最新の SQL Server コネクタ バージョンが必要です。 Microsoft ダウンロード センターから最新バージョンをダウンロードしてインストールしてください。
- Microsoft Entra 認証は、Azure VM 上の SQL Server に対して 1 つのプライマリ マネージド ID でのみ有効にすることができます。 プライマリ マネージド ID は、VM 上のすべての SQL Server インスタンスに使用されます。