DuoKey SQL EKM を実行し、最初のデータベースを暗号化する
このクイックスタートガイドでは、DuoKey EKM を使用して最初の SQL Server データベースを暗号化する手順を説明します。完了すると、次のものが得られます:
DuoKey プラットフォームで構成された SQL EKM アプリ
SQL Server にインストールされた暗号化プロバイダー
DuoKey 認証で構成された SQL Server
TDE で暗号化されたテストデータベース
DuoKey クラウドプラットフォームに移動し、資格情報でサインインします。
Apps → Create New APP → DuoKey for SQL を選択 → Install Now をクリックします
セットアップファイルをダウンロードし、次の情報を安全に記録します:
ダウンロードしたセットアップ ZIP ファイルを一時的な場所に展開します。
setup.exe を右クリック → Run as Administrator
これらの DLL ファイルが C:\Windows\System32 に存在することを確認します:
DuoKeyCryptoProvider.dlllibcurl.dllzlib1.dllfmt.dll-- Verify DLL is accessible by SQL Server
EXEC xp_fileexist 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GOSQL Server Management Studio (SSMS) を開き、インスタンスに接続して、次の構成スクリプトを実行します。すべてのプレースホルダーを実際の値に置き換えてください。
-- =============================================
-- DuoKey SQL EKM Configuration Script
-- Replace <placeholders> with your values
-- =============================================
-- Step 1: Enable EKM
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
-- Step 2: Create Cryptographic Provider
CREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Windows\System32\DuoKeyCryptoProvider.dll';
GO
-- Step 3: Create Credentials
-- Format: client_secret<!COCKPITPW!>password<!COCKPITPW!>CockpitIntrospectPwd
CREATE CREDENTIAL DuoKeyCredential
WITH IDENTITY = '<your_client_id>',
SECRET = '<your_client_secret><!COCKPITPW!><your_password><!COCKPITPW!>CockpitIntrospectPwd'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Step 4: Map Credential to Login
ALTER LOGIN [sa]
ADD CREDENTIAL DuoKeyCredential;
GO
-- Step 5: Create Asymmetric Key
USE master;
GO
CREATE ASYMMETRIC KEY SQL_EKM_Key
FROM PROVIDER DuoKeyProvider
WITH ALGORITHM = RSA_2048,
PROVIDER_KEY_NAME = 'SQL_EKM_Key',
CREATION_DISPOSITION = CREATE_NEW;
GO
-- Step 6: Create Key Credentials
CREATE CREDENTIAL SQL_EKM_Key_Cred
WITH IDENTITY = '<your_client_id>',
SECRET = '<your_client_secret><!COCKPITPW!><your_password><!COCKPITPW!>CockpitIntrospectPwd'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Step 7: Create Key Login
CREATE LOGIN SQL_EKM_Key_Login
FROM ASYMMETRIC KEY SQL_EKM_Key;
GO
ALTER LOGIN SQL_EKM_Key_Login
ADD CREDENTIAL SQL_EKM_Key_Cred;
GO
PRINT 'Configuration complete. Enable Encrypt operation in DuoKey Cockpit.';
GOフェーズ 4 に進む前に、DuoKey で Encrypt 操作を有効にする必要があります:
SQL_EKM_Key を検索しますそれでは、テストデータベースを作成し、DuoKey EKM を使用した TDE で暗号化しましょう。
-- Create test database
CREATE DATABASE TestEncryptedDB;
GO
-- Create Database Encryption Key
USE TestEncryptedDB;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY SQL_EKM_Key;
GO
-- Enable encryption
ALTER DATABASE TestEncryptedDB
SET ENCRYPTION ON;
GO
-- Verify encryption status
SELECT
DB_NAME(database_id) AS [Database],
CASE encryption_state
WHEN 0 THEN 'No encryption key'
WHEN 1 THEN 'Unencrypted'
WHEN 2 THEN 'Encryption in progress'
WHEN 3 THEN 'Encrypted'
WHEN 4 THEN 'Key change in progress'
WHEN 5 THEN 'Decryption in progress'
END AS [Status],
percent_complete AS [Progress %]
FROM sys.dm_database_encryption_keys
WHERE DB_NAME(database_id) = 'TestEncryptedDB';
GO3 は、データベースが完全に暗号化されていることを意味します。状態 2 は暗号化がまだ進行中であることを意味します。続行する前に完了するまで待ってください。これらのクエリを実行して、セットアップ全体が正しく機能していることを確認します:
-- 1. EKM Provider Status
SELECT name, guid, version
FROM sys.cryptographic_providers;
GO
-- 2. Credentials Created
SELECT name, credential_identity, create_date
FROM sys.credentials
WHERE name LIKE '%DuoKey%' OR name LIKE '%EKM%';
GO
-- 3. Asymmetric Keys
SELECT name, algorithm_desc, key_length, thumbprint
FROM sys.asymmetric_keys;
GO
-- 4. Encrypted Databases
SELECT
d.name AS DatabaseName,
d.is_encrypted,
dek.encryption_state
FROM sys.databases d
LEFT JOIN sys.dm_database_encryption_keys dek
ON d.database_id = dek.database_id
WHERE d.is_encrypted = 1;
GO| 問題 | 原因 | 解決策 |
|---|---|---|
| EKM が有効になっていない | SQL Server のエディションまたは構成 | エディションを確認し、sp_configure コマンドを実行します |
| プロバイダーを作成できない | DLL が見つからない | System32 に DuoKeyCryptoProvider.dll があることを確認します |
| 資格情報フォーマットエラー | SECRET フォーマットが無効 | <!COCKPITPW!> 区切り文字を確認します |
| キーの作成に失敗する | Encrypt が有効になっていない | DuoKey Cockpit で Encrypt 操作を有効にします |
| 接続タイムアウト | ネットワークの問題 | DuoKey プラットフォームへの HTTPS 443 アクセスを確認します |
おめでとうございます。DuoKey SQL EKM を正常にセットアップし、最初のデータベースを暗号化しました。次に確認する内容は次のとおりです: