บทนำ
"บล็อกนี้สาธิตขั้นตอนโดยละเอียดที่จำเป็นในการตั้งค่า Transparent Data Encryption กับ AlwaysOn Availability Group"
บทนำ
SQL Server มอบ Transparent Data Encryption (TDE) สำหรับเข้ารหัสไฟล์ทางกายภาพเพื่อปกป้องข้อมูลละเอียดอ่อนของลูกค้า ถูกนำเสนอพร้อมกับ SQL Server 2008 เป็นฟีเจอร์ Enterprise Edition
TDE พร้อมใช้งานกับ SQL Server Editions ต่อไปนี้:
• SQL Server 2008, 2008 R2, 2012, 2014, 2016, 2017 (Evaluation, Developer, Enterprise)
จาก SQL version 2019, TDE พร้อมใช้งานบน editions ส่วนใหญ่ที่มีอยู่
• SQL Server 2019 - Standard, Evaluation, Developer, Enterprise
มาสำรวจวิธี Configure TDE กับ AlwaysOn Availability Group ในสถานการณ์ต่อไปนี้
- เพิ่ม TDE encrypted database เข้า AG group
- ตั้งค่า TDE ให้กับ database ที่มีอยู่ใน AG group แล้ว
- หมุนเวียน Expired Certificate
สถานการณ์: เพิ่ม TDE encrypted database เข้า AG group
เราใช้ two-node AG เพื่อตั้งค่า TDE และกระบวนการต่อไปนี้อธิบายขั้นตอนโดยละเอียด ปฏิบัติตาม secondary steps บน secondary replicas ทุกตัว (หากคุณมีมากกว่า 1 secondary)
• Primary Replica: node1
• Secondary Replica: node2
• AG Group: TDE_AG
Tip: แนะนำให้รัน DBCC CHECKDB เพื่อให้แน่ใจว่าฐานข้อมูลไม่มีข้อผิดพลาด และสำรอง full backup ล่าสุดของฐานข้อมูลก่อน implement TDE
ขั้นตอนที่ 1: Primary Instance - สร้าง Master Key
หากคุณเข้ารหัส TDE ครั้งแรก ควรไม่มี master key และคุณสามารถใช้ SQL ต่อไปนี้ซึ่งจะไม่ให้ result set
ตอนนี้ สร้าง master key ใน master database โดยใช้ strong passwords
Validate the master key:
สำรอง Master Key ไปยังที่ปลอดภัยเป็น best practice Password สำหรับ backup อาจแตกต่างจาก Master Key password
ขั้นตอนที่ 2: Primary Instance - สร้าง Certificate
สร้าง certificate เพื่อรักษาความปลอดภัย database encryption keys วันที่หมดอายุ default ของ certificate คือ 1 ปี Tip: เป็น best practice ที่จะตั้ง expiry date ไว้ 5 ปี เพราะไม่ดีที่จะหมดอายุในหนึ่งปี
Validate โดยใช้ TSQL ด้านล่างเพื่อยืนยันว่า certificate ถูกสร้างแล้ว
ขั้นตอนที่ 3: Primary Instance - การสร้าง Database Encryption Key (DEK)
สร้าง DEK ซึ่งเป็น symmetric key เพื่อเข้ารหัสเนื้อหาฐานข้อมูลจริง และคุณสามารถสร้างได้โดยใช้ AES algorithms ที่มีอยู่
ขั้นตอนที่ 4: Primary Instance - สำรอง Certificate
สำรอง certificate และ private key เป็น best practice ด้วยสิ่งนี้ คุณสามารถ restore database backup files หรือ attach database data files ไปยัง SQL Server instance อื่นได้
ขั้นตอนที่ 5: Secondary Instance - สร้าง Master Key
คุณควรสร้าง database master key บน secondary replicas ทั้งหมด หากไม่มี คล้ายกับขั้นตอนที่ 1 ใน primary instance Master key ถูกสร้างบนทั้งสอง instances ในขั้นตอนที่ 1 แล้ว
ขั้นตอนที่ 6: Secondary Instance - สร้าง Secondary Certificate
คัดลอก certificate จาก primary replica ไปยัง secondary replicas ทั้งหมด และสร้าง certificate บน secondary replica โดยใช้ primary replica certificate
คุณต้องระบุ decryption password ที่ใช้ก่อนหน้านี้ในการเข้ารหัส backup บน primary replica
ขั้นตอนที่ 7: Primary Instance - เปิดใช้งาน TDE Encryption
สอบถามคำสั่งต่อไปนี้เป็นขั้นตอนสุดท้ายเพื่อเปิดใช้งาน TDE ในฐานข้อมูลที่ต้องการ
ตอนนี้ มาติดตามความคืบหน้าของกระบวนการเข้ารหัส และให้แน่ใจว่า state เป็น 3 ซึ่งอธิบายว่า encryption เสร็จสมบูรณ์
คิวรีต่อไปนี้แสดงรายการ databases ที่มี TDE enabled
ผลลัพธ์ข้างต้นแสดงว่า TDE เปิดใช้งานบน TDE_DB database และ encryption state 3 หมายความว่าฐานข้อมูลถูกเข้ารหัสสมบูรณ์ โดย default tempdb จะถูกเข้ารหัสโดยอัตโนมัติเมื่อเราเข้ารหัสด้วย TDE บน user database ใดๆ
ขั้นตอนที่ 8: เพิ่มฐานข้อมูลเข้า Availability Group
มาเพิ่ม encrypted database เข้า AG group
Note: การเพิ่ม TDE encrypted database เข้า Availability Group ไม่รองรับ GUI options ใน SSMS
คุณต้องใช้ TSQL เพื่อเพิ่มฐานข้อมูลเข้า AG group บน Primary Replica ให้สำรอง full backup, transaction log backup สำหรับ database TDE_Test database และคัดลอก คุณต้อง restore ด้วย NORECOVERY บน secondary
เมื่อ backup และ restore เสร็จสิ้น ให้รันคำสั่งต่อไปนี้เพื่อเพิ่มฐานข้อมูลเข้า Availability Group
ขั้นตอนที่ 9: AG health Validation
ตอนนี้ validate AG health check status ผ่าน dashboard และ manual failover test เพื่อให้แน่ใจว่าฐานข้อมูลของเรา ที่มี TDE enabled ทำงานได้ดี
สถานการณ์: ตั้งค่า TDE ให้กับฐานข้อมูลที่มีอยู่ใน AG group แล้ว
ปฏิบัติตามขั้นตอน (ซึ่งผมได้อภิปรายในสถานการณ์แรก) เพื่อเปิดใช้งาน TDE เมื่อฐานข้อมูลถูกเพิ่มเข้า AG group แล้ว
Step 1: Primary Instance - สร้าง Master Key
Step 2: Primary Instance - สร้าง Certificate
Step 3: Primary Instance - สร้าง Database Encryption Key (DEK)
Step 4: Primary Instance - สำรอง Certificate
Step 5: Secondary Instance - สร้าง Master Key
Step 6: Secondary Instance - สร้าง Secondary Certificate
Step 7: Primary Instance - เปิดใช้งาน TDE Encryption
Step 9: AG health Validation
เนื่องจากผมได้สร้าง master key และ certificate บนทั้งสอง replicas ในสถานการณ์ก่อนหน้าแล้ว เราสามารถข้ามขั้นตอน 1,2,4,5,6,7 ได้ คุณเพียงต้องสร้าง DEK และเปิดใช้งาน TDE จากขั้นตอน 3 และ 7
• Primary replica: node1
• Secondary replica: node2
• AG Group:TDE_AG
• AG database : Test_tde
• TDE Certificate : TDE_AG2021
ขั้นตอนที่ 3 และ 7 – บน Primary Instance
ติดตามความคืบหน้าของกระบวนการเข้ารหัส และให้แน่ใจว่า state เป็น 3 ซึ่งอธิบายว่า encryption เสร็จสมบูรณ์
ตรวจสอบ TDE enabled database ด้วยคิวรีต่อไปนี้
Validate AG health check และทำ failover test เพื่อให้แน่ใจว่าทุกอย่างทำงานได้ดี
สถานการณ์: หมุนเวียน Expired Certificate
เมื่อคุณสังเกตว่า TDE certificate ใกล้หมดอายุ คุณต้องหมุนเวียน certificate เป็น best practice แม้ว่า expired certificate จะไม่ก่อให้เกิดปัญหาใดๆ กับ Database regular operations
คุณสามารถตรวจสอบ expiring date สำหรับ TDE certificates ของเรา และปฏิบัติตามขั้นตอนที่อธิบายเพื่อหมุนเวียน SQL TDE certificates
Step 1: Primary Instance - สร้าง New Certificate
Step 2: Primary Instance - สำรอง Certificate
Step 3: Secondary Instance - สร้าง Secondary Certificate
Step 4: Primary Instance - หมุนเวียน SQL TDE certificate
Validate the Expiry date สำหรับ Test_tde database:
Step 5: AG health Validation:
เก็บ expired TDE certificates ไว้สักพัก เพื่อ restore older backup ใดๆ New certificate จะถูกใช้ فقطเมื่อคุณ restore databases ที่ถูก backup ตั้งแต่ key rotation
สรุป
SQL Server มอบ Transparent Data Encryption (TDE) สำหรับเข้ารหัสไฟล์ทางกายภาพเพื่อปกป้องข้อมูลลับของลูกค้า ในบล็อกนี้ ผมได้อธิบายสถานการณ์ต่างๆ ในการตั้งค่า TDE สำหรับ AlwaysOn availability group databases
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มสนทนากับเราได้