ฐานข้อมูล Azure SQL และความปลอดภัยของอินสแตนซ์ที่จัดการแล้วของ SQL
หน่วยนี้สรุปพื้นฐานของการรักษาความปลอดภัยระดับข้อมูลของแอปพลิเคชันโดยใช้ Azure SQL Database, อินสแตนซ์ที่จัดการแล้วของ Azure SQL และ Azure Synapse Analytics กลยุทธ์ความปลอดภัยที่อธิบายไว้ใช้วิธีการป้องกันเชิงลึกแบบชั้นและการย้ายจากภายนอกตามที่แสดงในภาพด้านล่าง
ความปลอดภัยเครือข่าย
ฐานข้อมูล Microsoft Azure SQL, อินสแตนซ์ที่จัดการแล้วของ Azure SQL และ Azure Synapse Analytics มีบริการฐานข้อมูลเชิงสัมพันธ์สําหรับแอปพลิเคชันระบบคลาวด์และองค์กร เพื่อช่วยป้องกันข้อมูลลูกค้า ไฟร์วอลล์ป้องกันการเข้าถึงเครือข่ายไปยังเซิร์ฟเวอร์จนกว่าการเข้าถึงจะได้รับสิทธิ์อย่างชัดเจนตามที่อยู่ IP หรือปริมาณการใช้งานเครือข่ายเสมือนของ Azure
กฎไฟร์วอลล์
กฎไฟร์วอลล์จะให้สิทธิ์เข้าถึงฐานข้อมูลตามที่อยู่ IP ต้นทางของแต่ละคําขอ
กฎไฟร์วอลล์เครือข่ายเสมือน
จุดบริการเครือข่ายเสมือนขยายการเชื่อมต่อเครือข่ายเสมือนของคุณผ่านแกนหลังของ Azure และเปิดใช้งานฐานข้อมูล SQL Azure เพื่อระบุเครือข่ายย่อยเครือข่ายเสมือนที่การรับส่งข้อมูลมาจาก เพื่ออนุญาตให้ปริมาณการใช้งานเข้าถึงฐานข้อมูล Azure SQL ให้ใช้แท็กบริการ SQL เพื่ออนุญาตการรับส่งข้อมูลขาออกผ่านกลุ่มรักษาความปลอดภัยเครือข่าย
กฎเครือข่ายเสมือนเปิดใช้งานฐานข้อมูล SQL Azure เพื่อยอมรับเฉพาะการสื่อสารที่ส่งจากเครือข่ายย่อยที่เลือกภายในเครือข่ายเสมือน
การจัดการการเข้าถึง
สําคัญ
การจัดการฐานข้อมูลและเซิร์ฟเวอร์ภายใน Azure จะถูกควบคุมโดยการกําหนดบทบาทโดยบัญชีผู้ใช้พอร์ทัลของคุณ
ตรวจ สอบ
การรับรองความถูกต้องคือกระบวนการพิสูจน์ว่าผู้ใช้เป็นผู้ที่พวกเขาอ้างสิทธิ์ SQL Database และ SQL Managed Instance รองรับการรับรองความถูกต้อง SQL และการรับรองความถูกต้องด้วย Microsoft Entra ID อินสแตนซ์ที่จัดการ SQL สนับสนุนการรับรองความถูกต้องของ Windows สําหรับ Microsoft Entra หลัก
การรับรองความถูกต้อง SQL:
การรับรองความถูกต้อง SQL อ้างอิงถึงการรับรองความถูกต้องของผู้ใช้เมื่อเชื่อมต่อกับฐานข้อมูล Azure SQL หรืออินสแตนซ์ที่จัดการแล้วของ Azure SQL โดยใช้ชื่อผู้ใช้และรหัสผ่าน ต้องระบุผู้ดูแลเซิร์ฟเวอร์ เข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่าน ด้วยข้อมูลประจําตัวเหล่านี้ ผู้ดูแลเซิร์ฟเวอร์ สามารถรับรองความถูกต้องไปยังฐานข้อมูลใด ๆ บนเซิร์ฟเวอร์หรืออินสแตนซ์นั้นในฐานะเจ้าของฐานข้อมูล หลังจากนั้น ผู้ดูแลระบบเซิร์ฟเวอร์สามารถสร้างการเข้าสู่ระบบ SQL และผู้ใช้เพิ่มเติม ซึ่งช่วยให้ผู้ใช้สามารถเชื่อมต่อโดยใช้ชื่อผู้ใช้และรหัสผ่านได้
การรับรองความถูกต้องของ Microsoft Entra:
การรับรองความถูกต้องของ Microsoft Entra เป็นกลไกในการเชื่อมต่อกับ Azure SQL Database, อินสแตนซ์ที่จัดการแล้วของ Azure SQL และ Azure Synapse Analytics โดยใช้ข้อมูลประจําตัวใน Microsoft Entra ID การรับรองความถูกต้องของ Microsoft Entra ช่วยให้ผู้ดูแลระบบสามารถจัดการข้อมูลประจําตัวและสิทธิ์ของผู้ใช้ฐานข้อมูลพร้อมกับบริการ Azure อื่น ๆ ในตําแหน่งที่ตั้งส่วนกลางหนึ่งแห่งจากส่วนกลางได้ การดําเนินการนี้จะลดการจัดเก็บรหัสผ่านและเปิดใช้งานนโยบายการหมุนรหัสผ่านแบบรวมศูนย์
ต้องสร้างผู้ดูแลเซิร์ฟเวอร์ที่เรียกว่า ผู้ดูแลระบบ Microsoft Entra เพื่อใช้การรับรองความถูกต้อง Microsoft Entra กับฐานข้อมูล SQL สําหรับข้อมูลเพิ่มเติม ดูการเชื่อมต่อกับฐานข้อมูล SQL ด้วยการรับรองความถูกต้องของ Microsoft Entra การรับรองความถูกต้องของ Microsoft Entra สนับสนุนทั้งบัญชีที่มีการจัดการและบัญชีผู้ใช้ภายนอก บัญชีภายนอกสนับสนุนผู้ใช้ Windows และกลุ่มสําหรับโดเมนลูกค้าที่ติดต่อกับภายนอกด้วย ID Microsoft Entra
Microsoft Entra สนับสนุนตัวเลือกการรับรองความถูกต้องที่แตกต่างกันหลายตัวเลือก รวมถึงการรับรองความถูกต้องแบบหลายปัจจัย การรับรองความถูกต้องแบบรวมของ Windows และ การเข้าถึงตามเงื่อนไข
การรับรองความถูกต้องของ Windows สําหรับ Microsoft Entra หลัก:
การรับรองความถูกต้อง Kerberos สําหรับ Microsoft Entra หลักเปิดใช้งานการรับรองความถูกต้องของ Windows สําหรับอินสแตนซ์ที่จัดการแล้วของ Azure SQL การรับรองความถูกต้องของ Windows สําหรับอินสแตนซ์ที่มีการจัดการ ช่วยให้ลูกค้าสามารถย้ายบริการที่มีอยู่ไปยังคลาวด์ ขณะที่ยังคงรักษาประสบการณ์ของผู้ใช้ที่ราบรื่น และมอบพื้นฐานสําหรับการปรับปรุงโครงสร้างพื้นฐานให้ทันสมัย
เมื่อต้องการเปิดใช้งานการรับรองความถูกต้องของ Windows สําหรับ Microsoft Entra หลัก คุณจะเปลี่ยนผู้เช่า Microsoft Entra ของคุณเป็น realm ของ Kerberos อิสระ และสร้างความน่าเชื่อถือที่เข้ามาในโดเมนลูกค้า
สําคัญ
การจัดการฐานข้อมูลและเซิร์ฟเวอร์ภายใน Azure จะถูกควบคุมโดยการกําหนดบทบาทโดยบัญชีผู้ใช้พอร์ทัลของคุณ
การอนุญาต
การรับรองความถูกต้องอ้างอิงถึงการควบคุมการเข้าถึงบนทรัพยากรและคําสั่งภายในฐานข้อมูล ซึ่งทําได้โดยการกําหนดสิทธิ์ให้กับผู้ใช้ภายในฐานข้อมูลในฐานข้อมูล Azure SQL หรืออินสแตนซ์ที่จัดการแล้วของ Azure SQL สิทธิ์จะได้รับการจัดการโดยการเพิ่มบัญชีผู้ใช้ลงในบทบาทฐานข้อมูล และกําหนดสิทธิ์ระดับฐานข้อมูลให้กับบทบาทเหล่านั้น อีกวิธีหนึ่งคือผู้ใช้รายบุคคลยังสามารถได้รับสิทธิ์ระดับออบเจ็กต์บางอย่างได้
แนวทางปฏิบัติที่ดีที่สุด คือสร้างบทบาทแบบกําหนดเองเมื่อจําเป็น เพิ่มผู้ใช้ไปยังบทบาทที่มีสิทธิ์การใช้งานน้อยที่สุดที่จําเป็นสําหรับการทํางานของตน อย่ากําหนดสิทธิ์ให้ผู้ใช้โดยตรง บัญชีผู้ดูแลเซิร์ฟเวอร์เป็นสมาชิกของบทบาท db_owner ที่มีอยู่ภายใน ซึ่งมีสิทธิ์ที่ครอบคลุม และควรมอบให้กับผู้ใช้ที่มีหน้าที่ดูแลระบบเพียงเล็กน้อยเท่านั้น เพื่อจํากัดขอบเขตของสิ่งที่ผู้ใช้สามารถทําได้ สามารถใช้ EXECUTE AS เพื่อระบุบริบทการดําเนินการของโมดูลที่เรียกว่า
การรักษาความปลอดภัยระดับแถว
Row-Level Security ช่วยให้ลูกค้าสามารถควบคุมการเข้าถึงแถวในตารางฐานข้อมูลโดยยึดตามลักษณะของผู้ใช้ที่ดําเนินการคิวรี (ตัวอย่างเช่น การเป็นสมาชิกของกลุ่มหรือบริบทการดําเนินการ) Row-Level Security ยังสามารถใช้เพื่อใช้แนวคิดการรักษาความปลอดภัยตามป้ายชื่อแบบกําหนดเองได้
การป้องกันภัยคุกคาม
ฐานข้อมูล SQL และ SQL Managed Instance รักษาความปลอดภัยข้อมูลลูกค้าโดยการตรวจสอบและความสามารถในการตรวจจับภัยคุกคาม
การตรวจสอบ SQL ในบันทึกการตรวจสอบ Azure และฮับเหตุการณ์
ฐานข้อมูล SQL และการตรวจสอบอินสแตนซ์ที่จัดการแล้วของ SQL จะติดตามกิจกรรมฐานข้อมูลและช่วยรักษาการปฏิบัติตามมาตรฐานความปลอดภัยโดยการบันทึกเหตุการณ์ฐานข้อมูลไปยังบันทึกการตรวจสอบในบัญชีที่เก็บข้อมูล Azure ที่ลูกค้าเป็นเจ้าของ การตรวจสอบช่วยให้ผู้ใช้สามารถตรวจสอบกิจกรรมฐานข้อมูลที่ดําเนินอยู่ รวมทั้งวิเคราะห์และตรวจสอบกิจกรรมในอดีตเพื่อระบุภัยคุกคามที่อาจเกิดขึ้น หรือการละเมิดการละเมิดความปลอดภัยและการละเมิดที่สงสัย
การป้องกันภัยคุกคามขั้นสูง
การป้องกันภัยคุกคามขั้นสูงกําลังวิเคราะห์บันทึกของคุณเพื่อตรวจหาพฤติกรรมผิดปกติและความพยายามที่เป็นอันตรายเพื่อเข้าถึงหรือใช้ประโยชน์จากฐานข้อมูล การแจ้งเตือนจะถูกสร้างขึ้นสําหรับกิจกรรมที่น่าสงสัยเช่นการฉีด SQL การแทรกซึมของข้อมูลที่อาจเกิดขึ้นและการโจมตีด้วยพลังเดรัจฉานหรือสําหรับความผิดปกติในรูปแบบการเข้าถึงเพื่อจับการเลื่อนระดับสิทธิ์และการใช้ข้อมูลประจําตัวที่ถูกละเมิด การแจ้งเตือนจะถูกดูจาก Microsoft Defender for Cloud ซึ่งมีรายละเอียดของกิจกรรมที่น่าสงสัยและคําแนะนําสําหรับการตรวจสอบเพิ่มเติมพร้อมกับการดําเนินการเพื่อลดภัยคุกคาม สามารถเปิดใช้งานการป้องกันภัยคุกคามขั้นสูงต่อเซิร์ฟเวอร์โดยมีค่าธรรมเนียมเพิ่มเติม
แผนภาพ
การปกป้องข้อมูลและการเข้ารหัส
Transport Layer Security (การเข้ารหัสภายในระบบส่งผ่าน)
ฐานข้อมูล SQL, อินสแตนซ์ที่จัดการโดย SQL และ Azure Synapse Analytics จะรักษาความปลอดภัยของข้อมูลลูกค้าโดยการเข้ารหัสข้อมูลที่มีการเคลื่อนไหวด้วย Transport Layer Security (TLS)
SQL Database, SQL Managed Instance และ Azure Synapse Analytics บังคับใช้การเข้ารหัส (SSL/TLS) ตลอดเวลาสําหรับการเชื่อมต่อทั้งหมด ซึ่งทําให้แน่ใจว่าข้อมูลทั้งหมดถูกเข้ารหัส "ในการส่งผ่าน" ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์โดยไม่คํานึงถึงการตั้งค่าของ Encrypt หรือ TrustServerCertificate ในสตริงการเชื่อมต่อ
แนวทางปฏิบัติที่ดีที่สุดคือ แนะนําว่าในสตริงการเชื่อมต่อที่แอปพลิเคชันใช้ คุณต้องระบุการเชื่อมต่อที่เข้ารหัสลับและ ไม่ เชื่อถือใบรับรองเซิร์ฟเวอร์ สิ่งนี้ทําให้แอปพลิเคชันของคุณตรวจสอบใบรับรองเซิร์ฟเวอร์และป้องกันไม่ให้แอปพลิเคชันของคุณเสี่ยงต่อมนุษย์ในการโจมตีประเภทกลาง
ตัวอย่างเช่น เมื่อใช้ไดรเวอร์ ADO.NET สามารถทําได้ผ่าน Encrypt=True และ TrustServerCertificate=False ถ้าคุณได้รับสตริงการเชื่อมต่อของคุณจากพอร์ทัล Azure จะมีการตั้งค่าที่ถูกต้อง
สําคัญ
โปรดทราบว่าโปรแกรมควบคุมที่ไม่ใช่ของ Microsoft บางตัวอาจไม่ใช้ TLS ตามค่าเริ่มต้นหรือขึ้นอยู่กับ TLS รุ่นเก่ากว่า (<1.2) เพื่อให้ทํางานได้ ในกรณีนี้ เซิร์ฟเวอร์ยังคงอนุญาตให้คุณเชื่อมต่อกับฐานข้อมูลของคุณได้ อย่างไรก็ตาม เราขอแนะนําให้คุณประเมินความเสี่ยงด้านความปลอดภัยของการอนุญาตให้โปรแกรมควบคุมและแอปพลิเคชันดังกล่าวเชื่อมต่อกับฐานข้อมูล SQL โดยเฉพาะอย่างยิ่งถ้าคุณจัดเก็บข้อมูลที่สําคัญ
การเข้ารหัสข้อมูลแบบโปร่งใส (การเข้ารหัสลับที่พัก)
การเข้ารหัสข้อมูลโปร่งใส (TDE) สําหรับ SQL Database, SQL Managed Instance และ Azure Synapse Analytics เพิ่มเลเยอร์ของความปลอดภัยเพื่อช่วยปกป้องข้อมูลที่เหลือจากการเข้าถึงข้อมูลดิบหรือการสํารองข้อมูลโดยไม่ได้รับอนุญาตหรือออฟไลน์ สถานการณ์ทั่วไปรวมถึงการโจรกรรมข้อมูลหรือการกําจัดฮาร์ดแวร์หรือสื่อที่ไม่ปลอดภัย เช่น ดิสก์ไดรฟ์และเทปสํารองข้อมูล TDE เข้ารหัสลับฐานข้อมูลทั้งหมดโดยใช้อัลกอริทึมการเข้ารหัสลับ AES ซึ่งไม่จําเป็นต้องให้นักพัฒนาแอปพลิเคชันทําการเปลี่ยนแปลงใดๆ กับแอปพลิเคชันที่มีอยู่
ใน Azure ฐานข้อมูลที่สร้างขึ้นใหม่ทั้งหมดจะถูกเข้ารหัสลับตามค่าเริ่มต้น และคีย์การเข้ารหัสลับฐานข้อมูลได้รับการป้องกันโดยใบรับรองเซิร์ฟเวอร์ที่มีอยู่ภายใน การบํารุงรักษาใบรับรองและการหมุนได้รับการจัดการโดยบริการและไม่จําเป็นต้องมีข้อมูลป้อนเข้าจากผู้ใช้ ลูกค้าที่ต้องการควบคุมคีย์การเข้ารหัสลับสามารถจัดการคีย์ใน Azure Key Vault ได้
การจัดการคีย์ด้วย Azure Key Vault
นําคีย์ของคุณเอง (BYOK) รองรับ Transparent Data Encryption (TDE) ให้ลูกค้ารับความเป็นเจ้าของการจัดการคีย์และการหมุนโดยใช้ Azure Key Vault ระบบการจัดการคีย์ภายนอกบนคลาวด์ของ Azure ถ้าการเข้าถึง Key Vault ของฐานข้อมูลถูกยกเลิก คุณจะไม่สามารถถอดรหัสและอ่านฐานข้อมูลลงในหน่วยความจําได้ Azure Key Vault ให้บริการแพลตฟอร์มการจัดการคีย์ส่วนกลาง ใช้ประโยชน์จากโมดูลความปลอดภัยของฮาร์ดแวร์ (HSMs) ที่ตรวจสอบอย่างเข้มงวด และช่วยให้สามารถแยกหน้าที่ระหว่างการจัดการคีย์และข้อมูลเพื่อช่วยปฏิบัติตามข้อกําหนดด้านความปลอดภัยได้
Always Encrypted (การเข้ารหัสขณะใช้งาน)
Always Encrypted เป็นคุณลักษณะที่ออกแบบมาเพื่อปกป้องข้อมูลที่สําคัญที่จัดเก็บในคอลัมน์ฐานข้อมูลเฉพาะจากการเข้าถึง (ตัวอย่างเช่น หมายเลขบัตรเครดิต หมายเลขประจําตัวแห่งชาติ/ภูมิภาค หรือข้อมูลที่จําเป็นต้องทราบพื้นฐาน) ซึ่งรวมถึงผู้ดูแลระบบฐานข้อมูลหรือผู้ใช้ที่มีสิทธิ์พิเศษอื่น ๆ ที่ได้รับอนุญาตให้เข้าถึงฐานข้อมูลเพื่อทํางานด้านการจัดการ แต่ไม่จําเป็นต้องมีธุรกิจเพื่อเข้าถึงข้อมูลเฉพาะในคอลัมน์ที่เข้ารหัสลับ ข้อมูลถูกเข้ารหัสลับเสมอ ซึ่งหมายความว่าข้อมูลที่เข้ารหัสลับจะถูกถอดรหัสลับสําหรับการประมวลผลโดยแอปพลิเคชันไคลเอ็นต์ที่มีสิทธิ์เข้าถึงคีย์การเข้ารหัสลับเท่านั้น คีย์การเข้ารหัสลับจะไม่ถูกเปิดเผยกับ SQL Database หรือ SQL Managed Instance และสามารถจัดเก็บได้ใน Windows Certificate Store หรือใน Azure Key Vault
Data Masking แบบไดนามิก
การมาสก์ข้อมูลแบบไดนามิกจํากัดการเปิดเผยข้อมูลที่ละเอียดอ่อนโดยการซ่อนไว้กับผู้ใช้ที่ไม่มีสิทธิ์ การมาสก์ข้อมูลแบบไดนามิกจะค้นพบข้อมูลที่อาจมีความละเอียดอ่อนโดยอัตโนมัติในฐานข้อมูล Azure SQL และอินสแตนซ์ที่จัดการแล้วของ SQL และให้คําแนะนําที่สามารถดําเนินการได้เพื่อซ่อนเขตข้อมูลเหล่านี้โดยมีผลกระทบต่อเลเยอร์ของแอปพลิเคชันน้อยที่สุด ซึ่งทํางานโดยการกําจัดข้อมูลที่สําคัญในชุดผลลัพธ์ของคิวรีเหนือเขตข้อมูลฐานข้อมูลที่กําหนด ในขณะที่ข้อมูลในฐานข้อมูลไม่เปลี่ยนแปลง
การจัดการความปลอดภัย
การประเมินช่องโหว่
การประเมินช่องโหว่เป็นเรื่องง่ายในการกําหนดค่าบริการที่สามารถค้นหา ติดตาม และช่วยแก้ไขช่องโหว่ที่อาจเกิดขึ้นของฐานข้อมูลโดยมีเป้าหมายเพื่อปรับปรุงความปลอดภัยโดยรวมของฐานข้อมูลเชิงรุก การประเมินช่องโหว่ (VA) เป็นส่วนหนึ่งของ Microsoft Defender สําหรับข้อเสนอ SQL ซึ่งเป็นแพคเกจแบบรวมสําหรับความสามารถในการรักษาความปลอดภัย SQL ขั้นสูง การประเมินช่องโหว่สามารถเข้าถึงและจัดการได้ผ่าน Microsoft Defender ส่วนกลางสําหรับพอร์ทัล SQL
การค้นหาข้อมูลและการจัดประเภท
การค้นหาข้อมูลและการจําแนกประเภท (ขณะนี้อยู่ในตัวอย่าง) มีความสามารถพื้นฐานที่สร้างขึ้นในฐานข้อมูล Azure SQL และ SQL Managed Instance สําหรับการค้นหา การจัดประเภท และการติดป้ายชื่อข้อมูลที่สําคัญในฐานข้อมูลของคุณ การค้นหาและการจัดประเภทข้อมูลที่สําคัญสูงสุดของคุณ (ธุรกิจ/การเงิน การดูแลสุขภาพ ข้อมูลส่วนบุคคล ฯลฯ) สามารถมีบทบาทสําคัญในสถานะการปกป้องข้อมูลขององค์กรของคุณ ซึ่งสามารถทําหน้าที่เป็นโครงสร้างพื้นฐานสําหรับ:
- สถานการณ์ด้านความปลอดภัยต่าง ๆ เช่น การตรวจสอบ (การตรวจสอบ) และการแจ้งเตือนเกี่ยวกับการเข้าถึงข้อมูลที่ละเอียดอ่อนผิดปกติ
- การควบคุมการเข้าถึงและการเสริมสร้างความปลอดภัยให้กับฐานข้อมูลที่ประกอบด้วยข้อมูลที่ละเอียดอ่อนสูง
- การช่วยเหลือตามมาตรฐานความเป็นส่วนตัวของข้อมูลและข้อกําหนดด้านการปฏิบัติตามข้อบังคับ