การควบคุมการเข้าถึงและ audit log
การควบคุมการเข้าถึง
audit log
RBAC
สิทธิ์ขั้นต่ำ
บทความนี้สำหรับใคร
สำหรับผู้รับผิดชอบการออกแบบและดูแลว่าใครเข้าถึงอะไรได้บ้างใน environment production ของแอปที่เชื่อมต่อ
สำหรับผู้รับผิดชอบการออกแบบและดูแลว่าใครเข้าถึงอะไรได้บ้างใน environment production ของแอปที่เชื่อมต่อ
สามมุมมอง
- ใครเข้าถึงได้ (มนุษย์ / service account)
- อะไรที่เข้าถึงได้ (ข้อมูล / ฟังก์ชัน / environment)
- บันทึกว่าใครทำอะไรเมื่อไหร่ (audit log)
หลักสิทธิ์ขั้นต่ำ
สิทธิ์ทุกอย่างให้เริ่มจากเท่าที่จำเป็นน้อยที่สุดแล้วค่อยขยายตามความจำเป็น การให้「กว้างไว้ก่อนเผื่อไว้」คือต้นตอของอุบัติเหตุ
| เป้าหมาย | สิทธิ์ที่แนะนำ |
|---|---|
| เว็บเซิร์ฟเวอร์ production | อ่าน secret ของ production เท่านั้น |
| DB เซิร์ฟเวอร์ production | ผู้ใช้แอปเข้าถึงเฉพาะ schema ที่จำกัดเท่านั้น |
| batch worker | อ่าน + เขียนแบบจำกัด |
| ผู้รับผิดชอบการดำเนินงาน | ห้ามเข้าถึง DB production โดยตรง ผ่านเครื่องมือการดำเนินงานเท่านั้น |
| นักพัฒนา | ไม่มีสิทธิ์เข้า production เข้าได้แค่ development และ staging |
RBAC (การควบคุมการเข้าถึงตามบทบาท)
การให้สิทธิ์แก่บทบาทแทนที่จะให้แก่ตัวบุคคล แล้วจึงมอบบทบาทให้แต่ละบุคคล เป็นวิธีที่จัดการได้ง่ายกว่า
ตัวอย่างบทบาท: ・Admin … ทุกสิทธิ์ (จำนวนน้อยมาก) ・Operator … อ่านเขียนผ่านเครื่องมือ production ・Support … อ่านข้อมูลลูกค้าได้อย่างเดียว ・Developer … development และ staging เท่านั้น ・Auditor … อ่าน audit log ได้อย่างเดียว
การเข้าถึง secret และโทเคน
- client secret ของ ReceiptRoller → เฉพาะ service account ของ production เท่านั้น
- access token ของลูกค้า → เฉพาะผู้ใช้ที่แอปทำงาน ซ่อนจากมนุษย์
- Webhook secret → เฉพาะเซิร์ฟเวอร์ผู้รับเท่านั้น
Audit log
การบันทึกว่าใครทำอะไรเป็นสิ่งจำเป็นสำหรับการตรวจจับการทุจริต การสอบสวนอุบัติเหตุ และการปฏิบัติตามข้อกำหนดด้าน compliance
event ที่ควรบันทึก
- การล็อกอิน / ล็อกเอาต์เข้า environment production
- การดึง secret และโทเคน
- การเข้าดูข้อมูลลูกค้า (โดยเฉพาะการดึงจำนวนมาก)
- การลบข้อมูลและการ export
- การเปลี่ยนแปลงการตั้งค่าแอป
- การมอบและเพิกถอนสิทธิ์
รายการที่ควรมีในแต่ละ record
- timestamp (UTC)
- ผู้กระทำ (user_id / service_account_id)
- action (
read,write,deleteเป็นต้น) - เป้าหมาย (resource_type + resource_id)
- ผลลัพธ์ (success / failure)
- client IP และ User-Agent
- request ID ที่เกี่ยวข้อง
การจัดเก็บ
- storage เฉพาะสำหรับ audit log (เขียนได้อย่างเดียว แก้ไขไม่ได้)
- อย่างน้อย 1 ปี (บางอุตสาหกรรมอาจ 3–7 ปี)
- เก็บแยกต่างหากจาก log ของแอป
รีวิวตามระยะ
- รายไตรมาส: ทำ inventory สิทธิ์ที่ให้ไป และเพิกถอนสิทธิ์ที่ไม่จำเป็น
- รายเดือน: ตรวจสอบรูปแบบผิดปกติใน audit log
- เมื่อลาออก: ปิดใช้งานบัญชีทันที และหมุนเวียน secret ที่เกี่ยวข้อง
- รายปี: ทบทวนนโยบายการควบคุมการเข้าถึงทั้งหมด
การยืนยันตัวตนแบบหลายปัจจัย (MFA)
ผู้ใช้ทุกรายที่เข้าถึง environment production ได้ควรบังคับใช้ MFA เราแนะนำ TOTP (Google Authenticator เป็นต้น) หรือ FIDO2 มากกว่า SMS
คู่มือที่เกี่ยวข้อง
วันที่เผยแพร่: 2569-04-27
วันที่อัปเดต: 2569-07-05
หมวดหมู่
แท็ก
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (8)
api (7)
oauth (5)
getting-started (4)
การลงทะเบียนแอป (4)
การแก้ปัญหา (4)