0Pricing
Cyber Security Academy · บทเรียน

การควบคุมการเข้าถึงและการเข้ารหัส

ปกป้องข้อมูลขณะจัดเก็บ

การควบคุมการเข้าถึงและการเข้ารหัส เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

การปกป้องข้อมูลขณะจัดเก็บ

ฐานข้อมูลเก็บข้อมูลสำคัญที่สุดไว้ ดังนั้นการควบคุมสองอย่างที่สำคัญที่สุดคือ การควบคุมการเข้าถึง (ใครสามารถเข้าถึงข้อมูลได้) และการเข้ารหัส (ทำให้ข้อมูลไร้ประโยชน์หากถูกขโมย)

เมื่อใช้ร่วมกัน ทั้งสองอย่างจะปกป้องข้อมูลทั้งขณะระบบทำงาน และกรณีที่ดิสก์หรือข้อมูลสำรองถูกนำออกไป

การยืนยันตัวตนกับการอนุญาตสิทธิ์

ควรแยกแนวคิดทั้งสองออกจากกัน:

  • การยืนยันตัวตนพิสูจน์ว่าคุณเป็นใคร (การเข้าสู่ระบบ ใบรับรอง โทเค็น IAM)
  • การอนุญาตสิทธิ์กำหนดว่าคุณทำอะไรได้บ้างหลังจากยืนยันตัวตนแล้ว

การรักษาความปลอดภัยฐานข้อมูลที่รัดกุมต้องมีทั้งสองอย่าง ได้แก่ ตัวตนที่ผ่านการตรวจสอบและสิทธิ์ที่กำหนดไว้อย่างจำกัด

หลักการให้สิทธิ์เท่าที่จำเป็น

ให้สิทธิ์แก่แต่ละบัญชีเฉพาะที่จำเป็นต้องใช้เท่านั้น และไม่ให้มากกว่านั้น บริการสร้างรายงานควรมีสิทธิ์อ่านอย่างเดียว ส่วนแอปที่เขียนข้อมูลไม่ควรสามารถใช้ DROP กับตารางได้

CREATE ROLE report_reader;
GRANT SELECT ON sales.* TO report_reader;
GRANT report_reader TO 'analytics_svc'@'%';

การควบคุมการเข้าถึงตามบทบาท

RBAC จัดกลุ่มสิทธิ์เป็นบทบาทและกำหนดบทบาทให้ผู้ใช้ วิธีนี้รองรับการขยายระบบได้ดีกว่าการให้สิทธิ์แก่ผู้ใช้ทีละคน และทำให้การตรวจสอบชัดเจน

  • กำหนดบทบาท: read_only, app_writer, dba
  • กำหนดผู้ใช้ให้กับบทบาท
  • ตรวจสอบการเป็นสมาชิกบทบาทเป็นประจำ

การรักษาความปลอดภัยระดับแถวและคอลัมน์

การควบคุมแบบละเอียดจะจำกัดการเข้าถึงภายในตาราง

  • ระดับคอลัมน์: ซ่อนคอลัมน์เงินเดือนหรือ SSN จากบางบทบาท
  • การรักษาความปลอดภัยระดับแถว (RLS): ผู้เช่าแต่ละรายจะเห็นเฉพาะแถวของตนเอง
-- PostgreSQL row-level security
ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON orders
  USING (tenant_id = current_setting('app.tenant')::int);

การเข้ารหัสขณะจัดเก็บ

การเข้ารหัสขณะจัดเก็บช่วยปกป้องข้อมูลบนดิสก์ หากมีผู้ขโมยไดรฟ์หรือไฟล์ข้อมูลสำรอง เนื้อหาจะไม่สามารถอ่านได้หากไม่มีคีย์

ตัวเลือกต่าง ๆ ได้แก่ การเข้ารหัสทั้งดิสก์ การเข้ารหัสระบบไฟล์ และการเข้ารหัสข้อมูลแบบโปร่งใส (TDE)ที่มีอยู่ในฐานข้อมูล

การเข้ารหัสข้อมูลแบบโปร่งใส

TDE จะเข้ารหัสไฟล์ฐานข้อมูลโดยอัตโนมัติ แอปพลิเคชันไม่ต้องเปลี่ยนแปลงใด ๆ เนื่องจากกลไกฐานข้อมูลจะเข้ารหัสเมื่อเขียนและถอดรหัสเมื่ออ่าน วิธีนี้ป้องกันไฟล์ที่ถูกขโมยได้ แต่ไม่ป้องกันผู้โจมตีที่มีเซสชันฐานข้อมูลที่ถูกต้องอยู่แล้ว

-- SQL Server example concept
CREATE DATABASE ENCRYPTION KEY
  WITH ALGORITHM = AES_256
  ENCRYPTION BY SERVER CERTIFICATE tde_cert;
ALTER DATABASE appdb SET ENCRYPTION ON;

การเข้ารหัสระดับคอลัมน์

สำหรับช่องข้อมูลที่มีความอ่อนไหวเป็นพิเศษ เช่น หมายเลขบัตรและข้อมูลสุขภาพ ควรเข้ารหัสแต่ละคอลัมน์ ข้อมูลแบบข้อความธรรมดาจะไม่ถูกเก็บอยู่ในฐานข้อมูล แม้แต่สำหรับ DBA

ข้อแลกเปลี่ยนคือ คอลัมน์ที่เข้ารหัสจะสร้างดัชนีและค้นหาได้ยาก จึงควรใช้วิธีนี้อย่างเลือกสรร

การเข้ารหัสขณะรับส่งข้อมูล

ข้อมูลยังต้องได้รับการปกป้องขณะส่งผ่านเครือข่ายด้วย ให้บังคับใช้ TLS กับการเชื่อมต่อระหว่างไคลเอ็นต์กับฐานข้อมูลทั้งหมด เพื่อไม่ให้ข้อมูลประจำตัวและชุดผลลัพธ์ถูกดักอ่าน

-- PostgreSQL: force SSL in pg_hba.conf
hostssl  appdb  webapp  0.0.0.0/0  scram-sha-256
-- reject non-TLS:
hostnossl appdb all 0.0.0.0/0 reject

การจัดการคีย์

ความแข็งแกร่งของการเข้ารหัสขึ้นอยู่กับการจัดการคีย์ด้วย ห้ามเก็บคีย์ไว้ใกล้กับข้อมูลที่คีย์นั้นใช้ปกป้อง

  • ใช้บริการจัดการคีย์ (KMS) หรือ HSM
  • เปลี่ยนคีย์ตามกำหนดเวลา
  • แยกหน้าที่กัน: DBA ไม่ควรเป็นผู้ถือคีย์หลักด้วย

นำทุกอย่างมาประกอบกัน

รูปแบบการป้องกันข้อมูลขณะจัดเก็บแบบหลายชั้น:

  • ยืนยันตัวตนของทุกการเชื่อมต่อ (TLS และข้อมูลประจำตัวที่รัดกุม)
  • อนุญาตสิทธิ์ผ่าน RBAC และการให้สิทธิ์เท่าที่จำเป็น
  • ใช้การรักษาความปลอดภัยระดับแถวและคอลัมน์สำหรับความต้องการแบบละเอียด
  • เข้ารหัสข้อมูลขณะจัดเก็บ (TDE) และเข้ารหัสคอลัมน์ที่มีความอ่อนไหวโดยเฉพาะ
  • จัดการคีย์ใน KMS ซึ่งแยกออกจากฐานข้อมูล

ตรวจสอบความเข้าใจ

ลองวิเคราะห์ว่าการควบคุมแต่ละอย่างป้องกันภัยคุกคามใด

ทบทวน

การปกป้องข้อมูลขณะจัดเก็บทำได้โดยผสานการควบคุมการเข้าถึงเข้ากับการเข้ารหัส:

  • แยกความแตกต่างระหว่างการยืนยันตัวตนกับการอนุญาตสิทธิ์
  • ใช้การให้สิทธิ์เท่าที่จำเป็นและ RBAC รวมถึงการรักษาความปลอดภัยระดับแถวและคอลัมน์เมื่อจำเป็น
  • เข้ารหัสข้อมูลขณะจัดเก็บ (TDE และระดับคอลัมน์) และขณะรับส่งข้อมูล (TLS)
  • จัดการคีย์แยกต่างหากใน KMS และเปลี่ยนคีย์เป็นระยะ

คำถามที่พบบ่อย

บทเรียน “การควบคุมการเข้าถึงและการเข้ารหัส” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การควบคุมการเข้าถึงและการเข้ารหัส” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การควบคุมการเข้าถึงและการเข้ารหัส”

ปกป้องข้อมูลขณะจัดเก็บ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การควบคุมการเข้าถึงและการเข้ารหัส” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การป้องกัน SQL Injection
  2. การควบคุมการเข้าถึงและการเข้ารหัส
  3. การตรวจสอบและการเฝ้าติดตาม
  4. ความปลอดภัยของการสำรองและกู้คืนข้อมูล
← กลับไปที่ Cyber Security Academy