"Blog này trình bày chi tiết các bước thiết lập Transparent Data Encryption với AlwaysOn Availability Group."
Giới thiệu
SQL Server cung cấp Transparent Data Encryption (TDE) để mã hóa File vật lý nhằm bảo vệ dữ liệu nhạy cảm của khách hàng. Được giới thiệu từ SQL Server 2008 như tính năng Enterprise Edition.
TDE có sẵn với các SQL Server Editions sau:
- SQL Server 2008, 2008 R2, 2012, 2014, 2016, 2017 (Evaluation, Developer, Enterprise)
TỪ SQL VERSION 2019, TDE CÓ SẴN TRÊN ĐA PHẦN CÁC EDITIONS.
- SQL Server 2019 - Standard, Evaluation, Developer, Enterprise
Các trường hợp cấu hình TDE với AlwaysOn Availability Group:
- Thêm Database đã mã hóa TDE vào AG Group.
- Cấu hình TDE cho Database đã tồn tại trong AG Group.
- Xoay vòng Certificate hết hạn (Rotating Expired Certificate)
Trường hợp: Thêm TDE Encrypted Database vào AG Group.
Sử dụng 2-Node AG để thiết lập TDE, quy trình sau giải thích chi tiết. Làm theo Secondary Steps trên mỗi Secondary Replica (nếu có nhiều hơn 1 Secondary).
- Primary Replica: Node1
- Secondary Replica: Node2
- AG Group: TDE_AG
Mẹo: Luôn khuyến nghị chạy DBCC CHECKDB đảm bảo Database không lỗi và lấy Full Backup mới nhất trước khi implement TDE.
Bước 1: Primary Instance - Tạo Master Key
Nếu lần đầu mã hóa TDE, không có Master Key, dùng SQL sau sẽ không trả về kết quả.
Tạo Master Key trong Master Database dùng mật khẩu mạnh.
Xác thực Master Key:
Backup Master Key đến vị trí an toàn như Best Practice. Mật khẩu Backup có thể khác Master Key Password.
Bước 2: Primary Instance - Tạo Certificate
Tạo Certificate bảo vệ Database Encryption Keys. Default Expiry Date của Certificate là 1 Năm. Mẹo: Best Practice đặt Expiry Date 5 Năm vì không tốt nếu hết hạn sau 1 Năm.
Xác thực bằng TSQL dưới để xác nhận Certificate đã tạo.
Bước 3: Primary Instance - Tạo Database Encryption Key (DEK)
Tạo DEK là Symmetric Key mã hóa nội dung Database thực tế, dùng các thuật toán AES có sẵn.
Bước 4: Primary Instance - Backup Certificate
Backup Certificate và Private Key như Best Practice. Với này, bạn có thể Restore Database Backup Files hoặc Attach Database Data Files tới SQL Server Instance khác.
Bước 5: Secondary Instance - Tạo Master Key
Nên tạo Database Master Key trên tất cả Secondary Replicas nếu chưa có, giống Bước 1 Primary Instance. Master Key đã tạo trên cả 2 Instance ở Bước 1.
Bước 6: Secondary Instance - Tạo Secondary Certificate
Copy Certificate từ Primary Replica sang tất cả Secondary Replicas và tạo Certificate trên Secondary Replica dùng Primary Replica Certificate.
Cần chỉ định Decryption Password dùng trước để Encrypt Backup trên Primary Replica.
Bước 7: Primary Instance - Kích hoạt TDE Encryption
Truy vấn lệnh sau như bước cuối để bật TDE cho Database cần thiết.
Giám sát tiến trình mã hóa và đảm bảo State = 3 nghĩa là Encryption Completed.
Truy vấn sau liệt kê Database đã bật TDE.
Kết quả trên cho thấy TDE đã bật trên Database TDE_DB, Encryption State 3 nghĩa là Database đã được mã hóa hoàn toàn. Mặc định TempDB sẽ tự động mã hóa khi bật TDE trên bất kỳ User Database nào.
Bước 8: Thêm Database vào Availability Group
Thêm Database đã mã hóa vào AG Group.
Lưu ý: Thêm TDE Encrypted Database vào Availability Group không hỗ trợ GUI Options trong SSMS.
Cần dùng TSQL để thêm Database vào AG Group. Trên Primary Replica, lấy Full Backup, Transaction Log Backup cho Database TDE_Test, copy sang. Restore với NORECOVERY trên Secondary.
Sau khi Backup/Restore xong, chạy lệnh sau để thêm Database vào AG Group.
Bước 9: Xác thực sức khỏe AG
Validate AG Health Check Status qua Dashboard và thủ công Failover Test để đảm bảo Database với TDE enabled hoạt động tốt.
Trường hợp: Cấu hình TDE cho Database đã tồn tại trong AG Group.
Làm theo các bước (đã thảo luận ở Trường hợp 1) để bật TDE khi Database đã thêm vào AG Group.
- Bước 1: Primary Instance - Tạo Master Key
- Bước 2: Primary Instance - Tạo Certificate
- Bước 3: Primary Instance - Tạo DEK
- Bước 4: Primary Instance - Backup Certificate
- Bước 5: Secondary Instance - Tạo Master Key
- Bước 6: Secondary Instance - Tạo Secondary Certificate
- Bước 7: Primary Instance - Kích hoạt TDE Encryption
- Bước 9: AG Health Validation
Vì đã tạo Master Key và Certificate trên cả 2 Replicas ở Trường hợp trước, có thể bỏ qua Bước 1,2,4,5,6,7. Chỉ cần tạo DEK và bật TDE từ Bước 3 và 7.
- Primary Replica: Node1
- Secondary Replica: Node2
- AG Group: TDE_AG
- AG Database: TEST_TDE
- TDE Certificate: TDE_AG2021
Bước 3 và 7 – Trên Primary Instance
Giám sát tiến trình mã hóa, đảm bảo State = 3 (Encryption Completed).
Kiểm tra TDE Enabled Database bằng truy vấn sau.
Validate AG Health Check và Failover Test để đảm bảo mọi thứ hoạt động tốt.
Trường hợp: Xoay vòng Certificate hết hạn (Rotating Expired Certificate)
Khi nhận thấy TDE Certificate sắp hết hạn, cần xoay vòng Certificate như Best Practice dù Certificate hết hạn không gây vấn đề cho Operation Database thường ngày.
Kiểm tra Expiry Date cho TDE Certificates và làm theo bước xoay vòng SQL TDE Certificates:
- Bước 1: Primary Instance - Tạo Certificate mới
- Bước 2: Primary Instance - Backup Certificate
- Bước 3: Secondary Instance - Tạo Secondary Certificate
- Bước 4: Primary Instance - Xoay vòng SQL TDE Certificate
Xác thực Expiry Date cho Database TEST_TDE:
- Bước 5: AG Health Validation:
Lưu Certificate TDE hết hạn một thời gian để Restore Backup cũ nếu cần. Certificate mới chỉ dùng khi Restore Database được Backup sau khi xoay vòng Key.
Kết luận
SQL Server cung cấp Transparent Data Encryption (TDE) để mã hóa File vật lý bảo vệ thông tin mật của khách hàng. Trong bài viết, tôi mô tả các kịch bản cấu hình TDE cho AlwaysOn Availability Group Databases.
Sử dụng tab Feedback để bình luận hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.