تكوين SQL Server
تكوين SQL Server
إعداد Microsoft SQL Server لاستخدام مزوّد DuoKey EKM لـ TDE
نظرة عامة
يشرح هذا الدليل كيفية تكوين Microsoft SQL Server لاستخدام مزوّد DuoKey EKM لتشفير البيانات الشفاف (TDE). يتكوّن التكوين من جزأين: إعداد لمرة واحدة لملف اتصال المزوّد على المضيف، وخطوات SQL التي تمكّن EKM وتسجّل المزوّد وتنشئ بيانات اعتماد وتفتح المفتاح الرئيسي.
ملف تكوين المزوّد
قبل تشغيل أي SQL، أكمِل ملف config.toml الذي نشرته إلى C:\ProgramData\DKE\EKM\ أثناء التثبيت. يحمل هذا الملف إعدادات الاتصال التي يستخدمها المزوّد للوصول إلى منصة DuoKey.
# DuoKey endpoint
server_url = "https://<cockpit-host>"
# Tenant and application identifiers from your SQL EKM App
tenant_id = "<tenant-id>"
app_id = "<app-id>"
# Agent key used by the provider to authenticate (single value)
agent_key = "<agent-key>"
# Optional: mutual TLS
# client_cert_path = "C:\\ProgramData\\DKE\\EKM\\client.pem"
# client_key_path = "C:\\ProgramData\\DKE\\EKM\\client.key"إلى جانب config.toml، يحتفظ المزوّد بملف keystore.json في المجلد نفسه. يربط هذا الملف المفتاح غير المتماثل في SQL بمفتاح DuoKey بحيث تُعاد فتح قواعد البيانات المحمية بـ TDE تلقائيًا بعد إعادة تشغيل خدمة SQL Server. لا تحذفه بينما تكون قواعد البيانات مشفّرة.
المتطلبات المسبقة
- تطبيق SQL EKM مُنشأ في منصة DuoKey
- مكتبة مزوّد EKM وملف config.toml منشوران على المضيف
- مفتاح الوكيل (agent key) من تطبيق SQL EKM
- تثبيت SQL Server Management Studio (SSMS)
- امتيازات Sysadmin على SQL Server
خطوات التكوين
تمكين دعم مزوّد EKM
أولًا، فعّل إدارة المفاتيح القابلة للتوسيع في SQL Server. افتح SSMS ونفّذ:
-- Enable advanced options
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GOهذه الخطوة مطلوبة مرة واحدة فقط لكل مثيل SQL Server.
إنشاء المزوّد التشفيري
سجّل مكتبة مزوّد DuoKey EKM من المجلد الذي نشرتها فيه.
CREATE CRYPTOGRAPHIC PROVIDER DkeEkm
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GOيجب أن تكون المكتبة موقّعة رقميًا بسلسلة موثوقة على هذا الجهاز. إن لم يكن التوقيع موثوقًا، يفشل هذا الأمر ولن يحمّل SQL Server المزوّد. راجع دليل التثبيت للتحقّق من التوقيع.
إنشاء بيانات اعتماد المزوّد
أنشئ بيانات اعتماد تحمل مفتاح الوكيل الذي يستخدمه المزوّد للمصادقة مع DuoKey.
CREATE CREDENTIAL DkeEkmCredential
WITH IDENTITY = 'DuoKey EKM',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DkeEkm;
GO| المعامل | الوصف |
|---|---|
IDENTITY | تسمية نصية حرة لبيانات الاعتماد. لا يُتحقّق منها مقابل المنصة. |
SECRET | قيمة مفتاح الوكيل الوحيدة من تطبيق SQL EKM الخاص بك. |
إن SECRET قيمة واحدة — مفتاح الوكيل. لا يوجد معرّف عميل أو سر عميل أو كلمة مرور لدمجها، ولا تنسيق فاصل لاتباعه.
ربط بيانات الاعتماد بتسجيل دخول
اربط بيانات الاعتماد بتسجيل الدخول الذي سيدير قواعد البيانات المشفّرة.
ALTER LOGIN [sa]
ADD CREDENTIAL DkeEkmCredential;
GOاستخدم تسجيل الدخول الذي يدير TDE، وهو عادةً حساب sysadmin.
فتح المفتاح الرئيسي لـ TDE
يوجد المفتاح الرئيسي لـ TDE في DuoKey. تفتح مرجعًا إليه من SQL Server بدلًا من توليد مفتاح جديد محليًا.
فتح المفتاح غير المتماثل الموجود
USE master;
CREATE ASYMMETRIC KEY TDE_Master
FROM PROVIDER DkeEkm
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GO| المعامل | الوصف |
|---|---|
PROVIDER_KEY_NAME | اسم المفتاح في منصة DuoKey. |
CREATION_DISPOSITION | يشير OPEN_EXISTING إلى المفتاح المُوفَّر مسبقًا في DuoKey. |
استخدم CREATION_DISPOSITION = OPEN_EXISTING ولا تحدّد WITH ALGORITHM. يُوفَّر المفتاح الرئيسي في DuoKey؛ ولا يفتح SQL Server سوى مقبض إليه.
إنشاء تسجيل دخول من المفتاح غير المتماثل
أنشئ تسجيل دخول مدعومًا بالمفتاح الرئيسي واربط به بيانات اعتماد المزوّد. هذا هو تسجيل دخول المحرّك الذي يستخدمه TDE للوصول إلى المفتاح.
USE master;
CREATE LOGIN TDE_Master_Login
FROM ASYMMETRIC KEY TDE_Master;
GO
ALTER LOGIN TDE_Master_Login
ADD CREDENTIAL DkeEkmCredential;
GOالتحقق
تحقق من تكوينك باستخدام هذه الاستعلامات.
SELECT
name,
guid,
is_enabled
FROM sys.cryptographic_providers;
GOSELECT
name,
credential_identity
FROM sys.credentials
WHERE name = 'DkeEkmCredential';
GOUSE master;
SELECT
ak.name AS KeyName,
ak.algorithm_desc,
cp.name AS ProviderName,
cp.is_enabled
FROM sys.asymmetric_keys ak
INNER JOIN sys.cryptographic_providers cp
ON ak.cryptographic_provider_guid = cp.guid
WHERE ak.name = 'TDE_Master';
GOإذا أعاد الربط صفًا مع تمكين المزوّد، فقد فتح SQL Server المفتاح الرئيسي بنجاح عبر DuoKey وأنت جاهز لتمكين TDE على قاعدة بيانات.
أفضل الممارسات
الأمان
- قصر الوصول إلى بيانات اعتماد EKM على مسؤولي sysadmin
- احمِ config.toml بأذونات مجلد مشدّدة
- فعّل تدقيق SQL Server
- خطط لتدوير منتظم لمفتاح الوكيل
الأداء
- تأكد من استقرار الشبكة مع DuoKey
- راقب زمن استجابة عمليات المفاتيح
- أبقِ ساعة المضيف متزامنة
الصيانة
- وثّق كل التكوين
- اختبر التعافي من الكوارث بانتظام
- حافظ على keystore.json بينما تكون قواعد البيانات مشفّرة