ฐานข้อมูล 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 ยังสามารถใช้เพื่อใช้แนวคิดการรักษาความปลอดภัยตามป้ายชื่อแบบกําหนดเองได้

Digram ที่แสดงวิธีการรักษาความปลอดภัยระดับแถว 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 แบบไดนามิก

แผนภาพที่แสดงว่า Always Encrypted ถูกออกแบบมาเพื่อปกป้องข้อมูลที่ละเอียดอ่อนที่จัดเก็บไว้ในคอลัมน์ฐานข้อมูลที่ระบุ

การมาสก์ข้อมูลแบบไดนามิกจํากัดการเปิดเผยข้อมูลที่ละเอียดอ่อนโดยการซ่อนไว้กับผู้ใช้ที่ไม่มีสิทธิ์ การมาสก์ข้อมูลแบบไดนามิกจะค้นพบข้อมูลที่อาจมีความละเอียดอ่อนโดยอัตโนมัติในฐานข้อมูล Azure SQL และอินสแตนซ์ที่จัดการแล้วของ SQL และให้คําแนะนําที่สามารถดําเนินการได้เพื่อซ่อนเขตข้อมูลเหล่านี้โดยมีผลกระทบต่อเลเยอร์ของแอปพลิเคชันน้อยที่สุด ซึ่งทํางานโดยการกําจัดข้อมูลที่สําคัญในชุดผลลัพธ์ของคิวรีเหนือเขตข้อมูลฐานข้อมูลที่กําหนด ในขณะที่ข้อมูลในฐานข้อมูลไม่เปลี่ยนแปลง

การจัดการความปลอดภัย

การประเมินช่องโหว่

การประเมินช่องโหว่เป็นเรื่องง่ายในการกําหนดค่าบริการที่สามารถค้นหา ติดตาม และช่วยแก้ไขช่องโหว่ที่อาจเกิดขึ้นของฐานข้อมูลโดยมีเป้าหมายเพื่อปรับปรุงความปลอดภัยโดยรวมของฐานข้อมูลเชิงรุก การประเมินช่องโหว่ (VA) เป็นส่วนหนึ่งของ Microsoft Defender สําหรับข้อเสนอ SQL ซึ่งเป็นแพคเกจแบบรวมสําหรับความสามารถในการรักษาความปลอดภัย SQL ขั้นสูง การประเมินช่องโหว่สามารถเข้าถึงและจัดการได้ผ่าน Microsoft Defender ส่วนกลางสําหรับพอร์ทัล SQL

การค้นหาข้อมูลและการจัดประเภท

การค้นหาข้อมูลและการจําแนกประเภท (ขณะนี้อยู่ในตัวอย่าง) มีความสามารถพื้นฐานที่สร้างขึ้นในฐานข้อมูล Azure SQL และ SQL Managed Instance สําหรับการค้นหา การจัดประเภท และการติดป้ายชื่อข้อมูลที่สําคัญในฐานข้อมูลของคุณ การค้นหาและการจัดประเภทข้อมูลที่สําคัญสูงสุดของคุณ (ธุรกิจ/การเงิน การดูแลสุขภาพ ข้อมูลส่วนบุคคล ฯลฯ) สามารถมีบทบาทสําคัญในสถานะการปกป้องข้อมูลขององค์กรของคุณ ซึ่งสามารถทําหน้าที่เป็นโครงสร้างพื้นฐานสําหรับ:

  • สถานการณ์ด้านความปลอดภัยต่าง ๆ เช่น การตรวจสอบ (การตรวจสอบ) และการแจ้งเตือนเกี่ยวกับการเข้าถึงข้อมูลที่ละเอียดอ่อนผิดปกติ
  • การควบคุมการเข้าถึงและการเสริมสร้างความปลอดภัยให้กับฐานข้อมูลที่ประกอบด้วยข้อมูลที่ละเอียดอ่อนสูง
  • การช่วยเหลือตามมาตรฐานความเป็นส่วนตัวของข้อมูลและข้อกําหนดด้านการปฏิบัติตามข้อบังคับ