آموزش رمزگذاری فایلهای پشتیبان (Backup) در SQL Server
راهنمای جامع پیادهسازی رمزنگاری بکاپها در SQL Server با استفاده از Master Key و Certificate
مقدمه
امنیت اطلاعات در دنیای امروز یکی از مهمترین دغدغههای سازمانها محسوب میشود. یکی از جنبههای حیاتی امنیت دادهها، محافظت از فایلهای پشتیبان (Backup) بانکهای اطلاعاتی است. در این مقاله، به صورت گامبهگام و کاملاً عملی، فرآیند پیادهسازی رمزنگاری فایل های بکاپها با استفاده از SQL Server را در Master Key و Certificate آموزش خواهیم داد.
چرا رمزنگاری بکاپها ضروری است:
قبل از ورود به جزئیات فنی، بیایید به این سؤال پاسخ دهیم که چرا باید بکاپهای خود را رمزنگاری کنیم:
- حفاظت از دادههای حساس در برابر دسترسی غیرمجاز
- تطابق با الزامات قانونی مانند GDPR، HIPAA و استانداردهای بانکی
- امنیت در هنگام انتقال فایلهای بکاپ به مراکز دیگر
- جلوگیری از سوءاستفاده در صورت گم شدن یا سرقت فایل های بکاپ
پیشنیازها
- دسترسی به SQL Server از نسخه ۲۰۱۴ به بالا
- دسترسی سطح بالای ادمینی (sysadmin) روی سرورهای هدف
- مسیرهای ذخیرهسازی مشخص برای فایلهای کلید و گواهی
مرحله اول: ایجاد Master Key در سرورهای Primary
Master Key اولین لایه از سلسلهمراتب رمزنگاری در SQL Server است. این کلید برای محافظت از کلیدهای خصوصی و گواهیها استفاده میشود.
اسکریپت ایجاد Master Key:
USE MASTER ;
GO
-- بررسی وجود Master Key قبل از ایجاد
IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name LIKE '%Master%')
BEGIN
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = 'Password';
PRINT 'Master Key با موفقیت ایجاد شد.';
END
ELSE
BEGIN
PRINT 'Master Key از قبل وجود دارد.';
END
GO
نکته مهم : پسورد تعیین شده را در یک مکان امن نگهداری کنید .
مرحله دوم : ایجاد Certificate بر روی سرور :
پس از ایجاد Master Key ، برای رمزگذاری بر روی فایل های Backup نوبت به ایجاد Certificate در SQL Server می باشد
اسکریپت ایجاد Certificate:
USE MASTER ;
GO
-- در صورت وجود Certificate ابتدا آن را حذف میکنیم
-- IF EXISTS (SELECT * FROM sys.certificates WHERE name = 'smGK_BackupCertificate')
-- DROP CERTIFICATE smGK_BackupCertificate;
-- GO
-- ایجاد Certificate جدید
CREATE CERTIFICATE smGK_BackupCertificate
WITH SUBJECT = 'smGK_BackupCertificate',
EXPIRY_DATE = '2030-12-31'; -- تاریخ انقضای بلندمدت برای جلوگیری از مشکلات دورهای
GO
PRINT 'Certificate با نام smGK_BackupCertificate با موفقیت ایجاد شد.';
GO
توضیحات پارامترها:
- SUBJECT : یک توضیح درباره Certificate می باشد و می تواند شالم هر رشته متنی باشد .
- EXPIRY_DATE :تاریخ انقضا Certificate پیشنهاد می شود 5 سال در نظر گرفته شود .
مرحله سوم : بکاپ کیری از Certificate و Master Key
برای استفاده از Certificate بر روی دیگر سرورهاباید از آن Backup گیری کنید و آن را در یک مسیر امن نگهداری کنید .
اسکریپت بکاپگیری از Certificate:
USE MASTER;
GO
-- تعریف مسیرهای ذخیرهسازی
DECLARE @CertPath NVARCHAR(500) = N'E:\GKKeys\';
DECLARE @CertFile NVARCHAR(500) = @CertPath + N'SMGK_BACKUP_CERTIFICATE.cer';
DECLARE @KeyFile NVARCHAR(500) = @CertPath + N'SMGK_BACKUP_CERTIFICATE_PRIVATE_KEY.key';
DECLARE @KeyPassword NVARCHAR(100) = N'Password';
-- بررسی وجود پوشه مقصد (در محیط واقعی باید از قبل ایجاد شده باشد)
PRINT 'شروع فرآیند بکاپگیری از Certificate...';
BACKUP CERTIFICATE smGK_BackuCertificate
TO FILE = @CertFile
WITH PRIVATE KEY
(
FILE = @KeyFile,
ENCRYPTION BY PASSWORD = @KeyPassword
);
PRINT 'بکاپ Certificate با موفقیت ایجاد شد.';
PRINT 'مسیر فایل Certificate: ' + @CertFile;
PRINT 'مسیر فایل کلید خصوصی: ' + @KeyFile;
GO
توصیههای امنیتی مهم:
- مسیر E:\GKKeys\ باید از قبل ایجاد شده باشد
- دسترسی به این پوشه فقط برای ادمینهای سیستم مجاز باشد
- از فایلهای ایجاد شده، بکاپ جداگانه در محیطی امن تهیه کنید
- پسورد نیز باید در جای امن نگهداری شود
مرحله چهارم تکرار فرآیند روی تمام سرورها:
مراحل یک تا سه باید روی تمامی سرورهای دیگر که قرار است بکاپهای آنها رمزنگاری شود، اجرا گردد .
💬 نظرات (0)
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر میدهید!
📝 ثبت نظر جدید