กรอบการกำกับดูแล API เปลี่ยนหลักการกว้างๆ ให้เป็นการตัดสินใจที่ทีมสามารถทำซ้ำได้ มันระบุว่า API ใดอยู่ในขอบเขต ใครเป็นเจ้าของแต่ละการตัดสินใจ การควบคุมใดที่นำไปใช้ การควบคุมเหล่านั้นทำงานที่ใด หลักฐานใดที่ผลิตขึ้น และวิธีการอนุมัติข้อยกเว้น
รายละเอียดการดำเนินงานนั้นคือความแตกต่างระหว่างเอกสารการกำกับดูแลและระบบการกำกับดูแล
คู่มือนี้ให้กรอบการทำงานเชิงปฏิบัติสำหรับโปรแกรม API ขององค์กร ซึ่งประกอบด้วย:
- โมเดลการดำเนินงานเจ็ดชั้น;
- สิทธิ์ในการตัดสินใจแบบรวมศูนย์และแบบสหพันธ์;
- แผนผัง RACI สำหรับกิจกรรมการกำกับดูแลทั่วไป;
- ระดับความเสี่ยงสำหรับการใช้การควบคุมที่เหมาะสม;
- โหมดการควบคุมแบบแนะนำ, เตือน, บล็อก และทบทวน;
- เมทริกซ์การควบคุมการกำกับดูแล API ตัวอย่าง;
- โมเดลข้อยกเว้นและหลักฐาน;
- โมเดลวุฒิภาวะห้าระดับ;
- แผนงานการนำไปใช้ 12 สัปดาห์
หากคุณต้องการคำจำกัดความที่กว้างขึ้น, กรณีธุรกิจ, ตัวชี้วัด และหมวดหมู่เครื่องมือก่อนอื่น ให้เริ่มต้นด้วย API Governance คืออะไร? บทความนี้จะเริ่มต้นด้วยการนำไปใช้จริง
กรอบการกำกับดูแล API คืออะไร?
กรอบการกำกับดูแล API คือระบบปฏิบัติการที่องค์กรใช้ในการตัดสินใจและตรวจสอบการตัดสินใจที่เกี่ยวข้องกับ API มันเชื่อมโยงนโยบายและมาตรฐานเข้ากับเจ้าของ, การควบคุม, หลักฐาน, การวัดผล และข้อยกเว้นตลอดวงจรชีวิตของ API
กรอบการทำงานที่สมบูรณ์ควรตอบคำถามเจ็ดข้อ:
- ผลลัพธ์: เรากำลังพยายามปกป้องผลลัพธ์ทางธุรกิจ, ผู้บริโภค, ความปลอดภัย หรือการดำเนินงานใด?
- ขอบเขต: API, ทีม, สภาพแวดล้อม และขั้นตอนวงจรชีวิตใดบ้างที่ครอบคลุม?
- สิทธิ์ในการตัดสินใจ: ใครเป็นผู้กำหนดเกณฑ์มาตรฐาน, เป็นเจ้าของ API แต่ละตัว, อนุมัติข้อยกเว้น และแก้ไขข้อค้นพบ?
- ความเสี่ยง: API ใดต้องการการควบคุมที่เข้มงวดกว่า และเพราะเหตุใด?
- การควบคุม: ทีมต้องทำอะไร และการควบคุมควรรูปแบบการแนะนำ, เตือน, บล็อก หรือต้องมีการตรวจสอบ?
- หลักฐาน: องค์กรจะทราบได้อย่างไรว่าการควบคุมทำงาน?
- การปรับปรุง: การวัดผลใดที่แสดงว่าการกำกับดูแลช่วยลดความเสี่ยงโดยไม่ส่งผลกระทบต่อการส่งมอบ?
ไม่มีมาตรฐานการกำกับดูแล API สากลเดียวที่ทุกบริษัทสามารถคัดลอกได้โดยไม่เปลี่ยนแปลง กรอบการทำงานต้องสะท้อนสถาปัตยกรรม, ผู้บริโภค, ข้อมูล, โมเดลการปรับใช้, บริบทด้านกฎระเบียบ และความเสี่ยงที่องค์กรยอมรับได้ ข้อมูลอ้างอิงภายนอกสามารถให้ข้อมูลได้: OpenAPI Specification กำหนดรูปแบบสัญญา API ที่เครื่องอ่านได้; OWASP API Security Top 10 ให้ข้อมูลความเสี่ยงด้านความปลอดภัย; และ NIST Cybersecurity Framework ให้โมเดลที่กว้างขึ้นสำหรับการกำกับดูแล, บทบาท, นโยบาย, ความเสี่ยง และการกำกับดูแล ไม่มีแหล่งข้อมูลใดที่สามารถมาแทนที่การเป็นเจ้าของและการตัดสินใจเฉพาะขององค์กรได้
กรอบการกำกับดูแล API เจ็ดชั้น
ให้ถือว่ากรอบการทำงานนี้เป็นเจ็ดชั้นที่เชื่อมโยงกัน แทนที่จะเป็นเอกสารนโยบายที่ยาวเหยียด
| ชั้น | การตัดสินใจที่ต้องทำ | ผลลัพธ์ขั้นต่ำ |
|---|---|---|
| 1. ผลลัพธ์และขอบเขต | การกำกับดูแลมีอยู่เพื่ออะไร และครอบคลุมอะไรบ้าง? | คำชี้แจงผลลัพธ์, ขอบเขต, ข้อยกเว้น และวันที่ทบทวน |
| 2. โมเดลการดำเนินงาน | ใครเป็นเจ้าของมาตรฐาน, API, การควบคุม, หลักฐาน และข้อยกเว้น? | แผนที่สิทธิ์ในการตัดสินใจและ RACI |
| 3. พอร์ตโฟลิโอและความเสี่ยง | มี API อะไรบ้าง และแต่ละตัวต้องการการควบคุมมากน้อยเพียงใด? | รายการสินค้าคงคลัง, เจ้าของ, สถานะวงจรชีวิต และระดับความเสี่ยง |
| 4. ขอบเขตการควบคุม | ข้อกำหนดใดบ้างที่ใช้กับการออกแบบ, การเข้าถึง, ความปลอดภัย, การเปลี่ยนแปลง และการดำเนินงาน? | ไลบรารีการควบคุมที่มีเวอร์ชัน |
| 5. เวิร์กโฟลว์การส่งมอบ | การควบคุมควรแนะนำ, เตือน, บล็อก หรือต้องมีการตรวจสอบที่ใด? | โหมดการควบคุม, ตัวกระตุ้น และเส้นทางการแก้ไข |
| 6. หลักฐานและข้อยกเว้น | อะไรที่พิสูจน์ว่าการควบคุมทำงาน และการเบี่ยงเบนถูกกำกับดูแลอย่างไร? | บันทึกหลักฐาน, บันทึกข้อยกเว้น, เจ้าของ และวันหมดอายุ |
| 7. การวัดผลและการปรับปรุง | กรอบการทำงานช่วยปรับปรุงผลลัพธ์และประสบการณ์ของนักพัฒนาหรือไม่? | บัตรคะแนน, ความถี่ในการตรวจสอบ และรายการสิ่งที่ต้องปรับปรุง |
จุดอ่อนในชั้นใดชั้นหนึ่งจะบั่นทอนส่วนที่เหลือ มาตรฐานที่แม่นยำแต่ไม่มีเจ้าของจะกลายเป็นทางเลือก การตรวจสอบที่บล็อกโดยไม่มีกระบวนการยกเว้นจะสร้างทางแก้ปัญหาที่ซ่อนอยู่ เส้นทางการตรวจสอบที่ไม่มีข้อกำหนดระบุไว้จะบันทึกกิจกรรมแต่ไม่พิสูจน์ว่าความเสี่ยงที่ถูกต้องได้รับการจัดการ
1. กำหนดผลลัพธ์และขอบเขตก่อนเขียนนโยบาย
เริ่มต้นด้วยชุดผลลัพธ์เล็กๆ ที่ผู้บริหาร, ทีมแพลตฟอร์ม และทีมส่งมอบสามารถรับรู้ได้ ตัวอย่างเช่น:
- ผู้บริโภคสามารถค้นหา API ที่ถูกต้องและเจ้าของที่รับผิดชอบได้;
- สัญญาสาธารณะและพันธมิตรยังคงคาดการณ์ได้เมื่อมีการเปลี่ยนแปลง;
- API ที่มีความเสี่ยงสูงได้รับการตรวจสอบความปลอดภัยและข้อมูลส่วนบุคคลที่เหมาะสม;
- เอกสารประกอบมีรายละเอียดเพียงพอสำหรับการนำไปใช้และการทดสอบการผสานรวม;
- ข้อมูลประจำตัวที่ใช้ในการผลิตไม่ปรากฏเป็นข้อความธรรมดาในทรัพย์สิน API ที่ใช้ร่วมกัน;
- การเข้าถึงจะถูกลบออกเมื่อบุคคลออกจากงานหรือไม่ต้องการอีกต่อไป;
- การเลิกใช้ให้เส้นทางการโยกย้ายที่จัดทำเป็นเอกสารแก่ผู้บริโภค;
- ผู้ตรวจสอบสามารถสร้างการตัดสินใจที่สำคัญและการดำเนินการด้านการบริหารขึ้นใหม่ได้
หลีกเลี่ยงเป้าหมายที่ไม่ชัดเจน เช่น “API ทั้งหมดต้องเป็นไปตามข้อกำหนด” เป็นไปตามข้อกำหนดอะไร? สำหรับ API ใด? ณ จุดใด? และตามการตัดสินใจของใคร? ให้เขียนผลลัพธ์ที่สามารถวัดผลได้ แล้วระบุนโยบายและการควบคุมที่จำเป็นเพื่อสนับสนุนผลลัพธ์นั้น
กำหนดขอบเขตที่ชัดเจน
จัดทำเอกสารสิ่งที่กรอบการทำงานครอบคลุม:
- REST, GraphQL, gRPC, API ที่ขับเคลื่อนด้วยเหตุการณ์ หรือประเภทอินเทอร์เฟซอื่นๆ;
- API ภายใน, พันธมิตร, สาธารณะ และบุคคลที่สาม;
- การออกแบบ, การพัฒนา, การเผยแพร่, การดำเนินงาน, การเปลี่ยนแปลง, การเลิกใช้ และการยกเลิก;
- สัญญา API, เอกสารประกอบ, การทดสอบ, ที่เก็บข้อมูล, ข้อมูลประจำตัว และพื้นที่ทำงานร่วมกัน;
- เกตเวย์รันไทม์, ระบบระบุตัวตน, บันทึก, การสังเกตการณ์ และกระบวนการจัดการเหตุการณ์;
- เฉพาะ API ใหม่ หรือทั้ง API ใหม่และ API ที่มีอยู่
บันทึกข้อยกเว้นด้วย การเผยแพร่ครั้งแรกอาจครอบคลุม API REST ใหม่และการเปลี่ยนแปลงที่สำคัญของ API สาธารณะที่มีอยู่ ในขณะที่การแก้ไขระบบเก่าจะดำเนินการตามแผนตามความเสี่ยงที่แยกต่างหาก การยกเว้นที่ชัดเจนสามารถกำกับดูแลได้; การยกเว้นที่คาดการณ์ไว้จะกลายเป็นจุดบอด
2. เลือกโมเดลการดำเนินงานและกำหนดสิทธิ์ในการตัดสินใจ
การกำกับดูแลมักจะล้มเหลวที่จุดสุดขั้วอย่างใดอย่างหนึ่ง คณะกรรมการกลางอนุมัติทุกการตัดสินใจและกลายเป็นคอขวด หรือแต่ละทีมตีความนโยบายโดยอิสระ และองค์กรไม่มีเกณฑ์มาตรฐานที่สอดคล้องกัน
องค์กรขนาดใหญ่ส่วนใหญ่ต้องการโมเดลแบบสหพันธ์:
- แพลตฟอร์ม API กลางหรือกลุ่มที่ส่งเสริมการใช้งานเป็นเจ้าของเกณฑ์มาตรฐานขององค์กร, เทมเพลตที่ใช้ร่วมกัน, เครื่องมือทั่วไป และการรายงานโปรแกรม;
- ผู้ดูแลโดเมนแปลเกณฑ์มาตรฐานให้เป็นแนวทางเฉพาะโดเมนและช่วยให้ทีมนำไปใช้;
- เจ้าของผลิตภัณฑ์ API ยังคงรับผิดชอบต่อ API แต่ละตัวและผลลัพธ์ของผู้บริโภค;
- ผู้เชี่ยวชาญด้านความปลอดภัย, ความเป็นส่วนตัว, IAM, SRE และการปฏิบัติตามข้อกำหนดเป็นเจ้าของหรือตรวจสอบการควบคุมในโดเมนของตน;
- ทีมส่งมอบดำเนินการควบคุมและแก้ไขข้อค้นพบ;
- เจ้าของความเสี่ยงที่กำหนดไว้อนุมัติข้อยกเว้นที่มีกรอบเวลา
การรวมศูนย์ไม่ได้หมายความว่า “ทีมตัดสินใจทุกอย่าง” แต่หมายถึงอำนาจถูกกระจายออกไปพร้อมกับขอบเขตที่ชัดเจน, หลักฐาน และเส้นทางการยกระดับปัญหา
รวมศูนย์, สหพันธ์ หรือกระจายอำนาจ?
| โมเดล | ทำงานได้ดีที่สุดเมื่อ | ความเสี่ยงหลัก | หลักประกัน |
|---|---|---|---|
| รวมศูนย์ | พอร์ตโฟลิโอ API มีขนาดเล็ก, มีการควบคุมสูง หรือเริ่มต้นจากแนวปฏิบัติที่ไม่สอดคล้องกัน | คิวการตรวจสอบและการตัดสินใจที่ช้า | เป้าหมายระดับบริการ, รูปแบบที่นำกลับมาใช้ใหม่ได้ และเกณฑ์การมอบหมาย |
| สหพันธ์ | หลายโดเมนใช้เกณฑ์มาตรฐานขององค์กรร่วมกัน แต่ต้องการความเชี่ยวชาญและอิสระในท้องถิ่น | การตีความที่ไม่สอดคล้องกันระหว่างโดเมน | เกณฑ์มาตรฐานที่มีเวอร์ชัน, ชุมชนผู้ดูแล, หลักฐานทั่วไป และการปรับเทียบเป็นระยะ |
| กระจายอำนาจ | ทีมมีความเป็นอิสระ และ API มีผู้บริโภคหรือความเสี่ยงที่ใช้ร่วมกันจำกัด | API ซ้ำซ้อน, มาตรฐานไม่เข้ากัน และการเปิดเผยที่ไม่สามารถมองเห็นได้ | การควบคุมขั้นต่ำขององค์กรสำหรับสินค้าคงคลัง, ความปลอดภัย และความเป็นเจ้าของ |
การควบคุมจากส่วนกลางอาจเข้มงวดกว่าสำหรับการตัดสินใจที่มีความเสี่ยงสูง ในขณะที่การเลือกการออกแบบตามปกติยังคงเป็นแบบบริการตนเอง โมเดลการดำเนินงานควรแตกต่างกันไปตามความเสี่ยง ไม่ใช่อุดมการณ์
แผนผัง RACI การกำกับดูแล API ที่ใช้งานได้จริง
ใช้บทบาทแทนชื่อบุคคล เพื่อให้โมเดลยังคงอยู่แม้จะมีการเปลี่ยนแปลงองค์กร
| กิจกรรม | ผู้รับผิดชอบหลัก | ผู้ปฏิบัติงาน | ผู้ให้คำปรึกษา | ผู้รับข้อมูล |
|---|---|---|---|---|
| กำหนดผลลัพธ์การกำกับดูแล API ขององค์กรและความเสี่ยงที่ยอมรับได้ | ผู้บริหารระดับสูง | หัวหน้าการกำกับดูแล/โปรแกรม API | ความปลอดภัย, สถาปัตยกรรม, กฎหมาย/ความเป็นส่วนตัว, ผู้นำโดเมน | ทีม API |
| ดูแลเกณฑ์มาตรฐานการควบคุมขององค์กร | หัวหน้าแพลตฟอร์มหรือสถาปัตยกรรม API | ทีมส่งเสริมการใช้งาน API | ความปลอดภัย, IAM, SRE, ผู้ดูแลโดเมน | ทีมผลิตภัณฑ์และการส่งมอบ |
| ดูแลมาตรฐานโดเมนและรูปแบบที่นำกลับมาใช้ใหม่ได้ | หัวหน้าสถาปัตยกรรมโดเมน | ผู้ดูแล API โดเมน | ทีมส่งเสริมส่วนกลาง, ความปลอดภัย, ตัวแทนการส่งมอบ | ทีมโดเมน |
| อัปเดตข้อมูลเจ้าของ, ผู้บริโภค, ระดับ และสถานะวงจรชีวิตของ API | ผู้นำโดเมน/ผลิตภัณฑ์ | เจ้าของผลิตภัณฑ์ API | หัวหน้าทางเทคนิค, ทีมแพลตฟอร์ม | ผู้บริโภค |
| นำการออกแบบ, เอกสาร, การทดสอบ และการควบคุมการเผยแพร่ไปใช้ | เจ้าของผลิตภัณฑ์ API | ทีมส่งมอบ | ผู้ดูแล API, QA, ความปลอดภัยตามที่ต้องการ | หัวหน้าแพลตฟอร์ม/โปรแกรม |
| ดำเนินการควบคุมการยืนยันตัวตน, การรับส่งข้อมูล, การบันทึก และการสังเกตการณ์ในขณะรันไทม์ | หัวหน้าฝ่ายปฏิบัติการบริการ/แพลตฟอร์ม | ทีมบริการ, SRE, เกตเวย์ หรือทีมความปลอดภัย | เจ้าของ API, ความปลอดภัย | โปรแกรมการกำกับดูแล |
| จัดเตรียม, ตรวจสอบ และลบการเข้าถึงพื้นที่ทำงานของผู้ดูแลระบบ | เจ้าของ IAM | ผู้ดูแล IAM/IT และพื้นที่ทำงาน | เจ้าของทีม, ความปลอดภัย | โปรแกรมการกำกับดูแล |
| อนุมัติข้อยกเว้นที่มีความเสี่ยงสูง | เจ้าของความเสี่ยงที่ได้รับมอบหมาย | เจ้าของ API เตรียมคำขอ | เจ้าของควบคุม, ความปลอดภัย/ความเป็นส่วนตัว, สถาปัตยกรรม | หัวหน้าโปรแกรมและผู้บริโภคที่ได้รับผลกระทบ |
| ตรวจสอบตัวชี้วัดและปรับปรุงกรอบการทำงาน | หัวหน้าการกำกับดูแล/โปรแกรม API | เจ้าของฝ่ายส่งเสริมและข้อมูล | ผู้ดูแลโดเมน, ตัวแทนนักพัฒนา, เจ้าของความเสี่ยง | ผู้บริหารระดับสูง |
ตำแหน่งที่แน่นอนอาจแตกต่างกันไป แต่ทุกกิจกรรมต้องการบทบาทผู้รับผิดชอบหลักเพียงหนึ่งเดียว เจ้าของที่รับผิดชอบหลักหลายคนมักจะหมายถึงไม่มีใครสามารถตัดสินใจขั้นสุดท้ายได้
3. ทำรายการ API และกำหนดระดับความเสี่ยง
คุณไม่สามารถนำกรอบการทำงานไปใช้กับพอร์ตโฟลิโอที่ไม่รู้จักได้ อย่างน้อยที่สุด ให้บันทึก:
- ชื่อ API และตัวระบุที่เสถียร;
- เจ้าของธุรกิจหรือผลิตภัณฑ์ที่รับผิดชอบ;
- เจ้าของทางเทคนิคและผู้ติดต่อฝ่ายสนับสนุน;
- โดเมนและผู้บริโภค;
- ประเภทอินเทอร์เฟซและแหล่งที่มาของความจริง;
- การเปิดเผย: ภายใน, พันธมิตร หรือสาธารณะ;
- การจัดประเภทข้อมูล;
- ความสำคัญทางธุรกิจ;
- สถานะวงจรชีวิตและวันที่ทบทวน;
- เจ้าของฝ่ายปรับใช้และรันไทม์;
- การพึ่งพาและผู้บริโภคที่รู้จัก;
- ระดับความเสี่ยงและเหตุผล
เชื่อมโยงรายการนี้เข้ากับ แค็ตตาล็อก API และกระบวนการ วงจรชีวิต API ของคุณ ตารางสเปรดชีตสามารถเริ่มต้นงานได้ แต่ข้อมูลความเป็นเจ้าของและวงจรชีวิตควรอยู่ ณ ที่ที่ทีมสามารถอัปเดตให้เป็นปัจจุบันได้ในที่สุด
ตัวอย่างโมเดลสามระดับ
| ระดับ | ตัวชี้วัดทั่วไป | ตัวอย่างการจัดการควบคุม |
|---|---|---|
| ระดับ 1: วิกฤตหรือความเสี่ยงสูง | การเปิดเผยต่อสาธารณะหรือพันธมิตร; ข้อมูลที่มีการควบคุมหรือข้อมูลอ่อนไหวสูง; ผลกระทบทางการเงินหรือความปลอดภัย; ฐานผู้บริโภคขนาดใหญ่; การพึ่งพาทางธุรกิจที่สำคัญ | เจ้าของอย่างเป็นทางการและการตรวจสอบสถาปัตยกรรม/ความปลอดภัย, หลักฐานการเผยแพร่ที่เข้มงวดขึ้น, การทดสอบความเข้ากันได้และการเลิกใช้, เป้าหมายการแก้ไขที่สั้นลง, การตรวจสอบการเข้าถึงเป็นระยะ, หลักฐานการทำงาน |
| ระดับ 2: มีนัยสำคัญ | การใช้งานภายในหรือพันธมิตรที่จำกัด; เวิร์กโฟลว์ทางธุรกิจที่สำคัญ; ข้อมูลที่มีความอ่อนไหวปานกลาง; ทีมที่พึ่งพาหลายทีม | เกณฑ์มาตรฐานขององค์กร, การตรวจสอบการออกแบบ/เอกสารประกอบโดยอัตโนมัติหรือโดยผู้ใช้, การทดสอบที่จำเป็น, เจ้าของที่ระบุชื่อ, การตรวจสอบการเปลี่ยนแปลงสำหรับการอัปเดตที่มีนัยสำคัญ, การตรวจสอบการเข้าถึงตามกำหนดเวลา |
| ระดับ 3: ความเสี่ยงต่ำหรือทดลอง | ต้นแบบชั่วคราว; การใช้งานภายในที่มีความอ่อนไหวต่ำ; ผู้บริโภคและผลกระทบจำกัด | เกณฑ์มาตรฐานแบบเบา, เจ้าของและวันหมดอายุ, กฎข้อมูลประจำตัวและการเข้าถึงขั้นต่ำ, เกณฑ์การเลื่อนระดับที่ชัดเจนก่อนการใช้งานในวงกว้าง |
อย่ากำหนดระดับจากแค่การเปิดเผยเพียงอย่างเดียว API ส่วนตัวที่ประมวลผลข้อมูลพนักงานที่อ่อนไหวสูงอาจต้องการการควบคุมมากกว่า API สาธารณะแบบอ่านอย่างเดียวทั่วไป ใช้ปัจจัยหลายประการและบันทึกเหตุผล เพื่อให้สองทีมที่ประเมิน API ที่คล้ายกันได้ข้อสรุปที่คล้ายกัน
4. สร้างไลบรารีการควบคุมที่มีเวอร์ชัน
นโยบายระบุผลลัพธ์ที่ต้องการ มาตรฐานกำหนดวิธีการทำงานที่ได้รับการอนุมัติ การควบคุมป้องกัน ตรวจจับ หรือบันทึกความเบี่ยงเบน หลักฐานแสดงสิ่งที่เกิดขึ้น ให้เชื่อมโยงสิ่งประดิษฐ์เหล่านี้เข้าด้วยกัน
ตัวอย่างเช่น:
- นโยบาย: ทรัพย์สิน API ที่ใช้ร่วมกันจะต้องไม่มีข้อมูลประจำตัวที่ใช้ในการผลิตแบบข้อความธรรมดา
- มาตรฐาน: ค่าการยืนยันตัวตนที่ละเอียดอ่อนใช้ตัวแปรเฉพาะที่ได้รับอนุมัติหรือการอ้างอิง Vault
- การควบคุมเชิงป้องกัน: นโยบายข้อมูลประจำตัวจะบล็อกการบันทึกค่าข้อความธรรมดาที่ไม่ได้รับการสนับสนุน
- การควบคุมเชิงตรวจจับ: เครื่องสแกนระบุข้อมูลลับที่เป็นไปได้ในทรัพย์สินที่สนับสนุน
- กระบวนการแก้ไข: ทีมลบค่า, เพิกถอนหรือหมุนเวียนในระบบที่ออกให้, ตรวจสอบการเปิดเผย และบันทึกการแก้ไข
- หลักฐาน: ผลลัพธ์นโยบาย, สิ่งที่เครื่องสแกนพบ, ตั๋วการหมุนเวียนภายนอก และบันทึกการปิด
โดเมนการควบคุมหลัก
| โดเมน | คำถามที่ไลบรารีการควบคุมควรตอบ |
|---|---|
| ความเป็นเจ้าของและโมเดลการดำเนินงาน | มีการระบุชื่อเจ้าของที่รับผิดชอบหรือไม่? ใครอนุมัติมาตรฐานและข้อยกเว้น? |
| พอร์ตโฟลิโอและวงจรชีวิต | API ได้รับการจัดทำรายการ, จัดประเภท, ทบทวน, เลิกใช้ และยกเลิกอย่างตั้งใจหรือไม่? |
| การออกแบบและสัญญา | มีสัญญาที่เครื่องอ่านได้หรือไม่? มีการจัดการการตั้งชื่อ, ข้อผิดพลาด, การแบ่งหน้า, ความเข้ากันได้ และ Schema ที่นำกลับมาใช้ใหม่ได้หรือไม่? |
| เอกสารและการค้นหา | ผู้บริโภคสามารถค้นหา API และเข้าใจการยืนยันตัวตน, พารามิเตอร์, ข้อจำกัด, การตอบกลับ, ข้อผิดพลาด, ตัวอย่าง และสถานะการเปลี่ยนแปลงได้หรือไม่? |
| การทดสอบและการเผยแพร่ | การตรวจสอบสัญญา, ฟังก์ชันการทำงาน, ความปลอดภัย, ประสิทธิภาพ และความเข้ากันได้ใดบ้างที่จำเป็นก่อนการเผยแพร่? |
| การระบุตัวตนและการเข้าถึงของผู้ดูแลระบบ | ใครสามารถเข้าร่วม, บริหาร, แก้ไข, เผยแพร่, ส่งออก หรือดูทรัพย์สิน API ได้บ้าง? การเข้าถึงได้รับการตรวจสอบและลบออกอย่างไร? |
| ข้อมูลประจำตัวและข้อมูลที่ละเอียดอ่อน | ข้อมูลลับสามารถจัดเก็บได้ที่ใด? มีการอ้างอิง, ตรวจจับ, หมุนเวียน และลบออกอย่างไรหลังจากถูกเปิดเผย? |
| การควบคุมแหล่งที่มาและห่วงโซ่อุปทาน | ที่เก็บข้อมูล, สาขา, การตรวจสอบ, การพึ่งพา และโฟลว์สิ่งประดิษฐ์ใดบ้างที่ได้รับการอนุมัติ? |
| การป้องกันและการดำเนินงานในขณะรันไทม์ | เกตเวย์, การอนุญาต, ภัยคุกคาม, การบันทึก, การตรวจสอบ, ความยืดหยุ่น และการควบคุมเหตุการณ์ใดบ้างที่ใช้หลังจากการปรับใช้? |
| หลักฐานและข้อยกเว้น | บันทึกใดบ้างที่พิสูจน์การทำงาน, เก็บรักษาไว้นานเท่าใด และใครสามารถอนุมัติการเบี่ยงเบนได้? |
แนวทางการออกแบบ API ควรกำหนดให้เฉพาะเจาะจงพอที่จะทดสอบได้ ตัวอย่างสาธารณะ เช่น คู่มือการออกแบบ API ของ Google และ แนวทางปฏิบัติ API REST ของ Microsoft แสดงให้เห็นว่าองค์กรต่างๆ เปลี่ยนความชอบทั่วไปให้เป็นข้อตกลงที่เป็นรูปธรรมได้อย่างไร นำกฎที่เหมาะสมกับผู้บริโภคและสถาปัตยกรรมของคุณมาใช้เท่านั้น และระบุเจ้าของ, เวอร์ชัน, วันที่บังคับใช้, ตัวอย่าง และเส้นทางการโยกย้ายสำหรับทุกกฎ
5. เลือกโหมดการควบคุมที่เหมาะสม: แนะนำ, เตือน, บล็อก หรือทบทวน
ไม่ใช่ทุกข้อกำหนดควรเป็นด่านที่เข้มงวด เลือกโหมดตามความเสี่ยง, การกำหนด, วุฒิภาวะ และต้นทุนของผลบวกปลอม
| โหมด | สิ่งที่ทำ | เหมาะสมที่สุดสำหรับ | ควรหลีกเลี่ยงเมื่อ |
|---|---|---|---|
| แนะนำ | ให้เทมเพลต, ตัวอย่าง, ส่วนประกอบที่นำกลับมาใช้ใหม่ได้ และคำแนะนำแบบอินไลน์ | มาตรฐานใหม่, การเลือกการออกแบบที่ซับซ้อน และการเปิดใช้งานบริการตนเอง | ความเสี่ยงต้องการการป้องกันหรือหลักฐานที่เชื่อถือได้ |
| เตือน | รายงานความเบี่ยงเบนที่อาจเกิดขึ้น แต่ยังคงอนุญาตให้เวิร์กโฟลว์ดำเนินต่อไป | ช่วงเวลาการนำไปใช้, ปัญหาที่มีความเสี่ยงต่ำ และการตรวจสอบที่มีความคลุมเครือบางประการ | ทีมสามารถเพิกเฉยต่อความเสี่ยงที่มีนัยสำคัญได้ไม่จำกัด |
| บล็อก | ป้องกันการบันทึก, การรวม, การเผยแพร่ หรือการปรับใช้ จนกว่าปัญหาจะได้รับการแก้ไขหรือข้อยกเว้นจะได้รับการอนุมัติ | ข้อกำหนดที่สามารถระบุได้, มีความมั่นใจสูง และมีเส้นทางการแก้ไขที่รวดเร็ว | กฎนั้นเป็นอัตวิสัย, ไม่เสถียร หรือมีแนวโน้มที่จะก่อให้เกิดผลบวกปลอมที่สร้างความเสียหาย |
| ทบทวน | ส่งการตัดสินใจไปยังบุคคลที่มีคุณสมบัติเหมาะสม | การแลกเปลี่ยนทางสถาปัตยกรรม, บริบทความเป็นส่วนตัว, ข้อยกเว้นที่มีความเสี่ยงสูง และการเปลี่ยนแปลงที่ต้องการการพิจารณาจากผู้บริโภค | การเปลี่ยนแปลงตามปกติทุกครั้งต้องใช้ผู้ตรวจสอบคนเดิมที่หายาก |
การนำไปใช้ที่มีประสิทธิภาพมักจะเริ่มต้นจากการแนะนำ ไปสู่การเตือน และจากนั้นจึงบล็อกหลังจากที่ทีมมีตัวอย่าง, เครื่องมือ และอัตราผลบวกปลอมที่วัดได้ การตัดสินใจบางอย่างควรคงอยู่ในขั้นตอนการทบทวนเสมอ เนื่องจากบริบทมีความสำคัญ
ก่อนที่จะบล็อก ให้ยืนยันว่า:
- กฎมีเจ้าของที่ระบุชื่อและเหตุผลที่จัดทำเป็นเอกสาร;
- การตรวจสอบสามารถระบุได้อย่างเพียงพอสำหรับความเสี่ยงที่ตั้งใจไว้;
- ทีมได้รับคำอธิบายที่ชัดเจนและตัวอย่างที่สอดคล้อง;
- การแก้ไขมีอยู่ในเวิร์กโฟลว์ปกติ;
- มีเส้นทางข้อยกเว้นและมีเป้าหมายการตอบสนอง;
- องค์กรสามารถวัดผลบวกปลอม, การข้าม และผลกระทบต่อการส่งมอบได้
6. สร้างเมทริกซ์การควบคุมการกำกับดูแล API
เมทริกซ์การควบคุมคือบันทึกการทำงานของกรอบการทำงาน ควรมีรายละเอียดเพียงพอสำหรับการนำไปใช้ แต่ก็กระชับพอที่จะทบทวนได้
อย่างน้อยที่สุด ให้รวมถึง:
- รหัสควบคุมและโดเมน;
- วัตถุประสงค์และข้อกำหนด;
- ขอบเขตและระดับความเสี่ยงที่เกี่ยวข้อง;
- ตัวกระตุ้นวงจรชีวิต;
- โหมด: แนะนำ, เตือน, บล็อก หรือทบทวน;
- บทบาทผู้รับผิดชอบหลักและผู้ปฏิบัติงาน;
- ระบบการนำไปใช้;
- หลักฐานและระบบบันทึก;
- ความถี่ในการทบทวนหรือดำเนินการ;
- เป้าหมายการแก้ไข;
- ผู้อนุมัติข้อยกเว้นและกฎการหมดอายุ;
- สถานะและวันที่ทบทวนครั้งล่าสุด
ตัวอย่างเมทริกซ์การควบคุมการกำกับดูแล API
ตัวอย่างนี้เป็นจุดเริ่มต้น ไม่ใช่รายการตรวจสอบการปฏิบัติตามข้อกำหนดสากล
| ID | วัตถุประสงค์การควบคุม | ใช้กับ | โหมด | ผู้รับผิดชอบหลัก | หลักฐานตัวอย่าง | ความถี่หรือตัวกระตุ้น |
|---|---|---|---|---|---|---|
| GOV-01 | API ทุกตัวที่อยู่ภายใต้การกำกับดูแลมีเจ้าของที่รับผิดชอบ, ระดับความเสี่ยง, แหล่งที่มาของความจริง และสถานะวงจรชีวิต | API ที่อยู่ภายใต้การกำกับดูแลทั้งหมด | ทบทวน | ผู้นำโดเมน/ผลิตภัณฑ์ | บันทึกแค็ตตาล็อกและประวัติการทบทวน | เมื่อสร้าง; รายไตรมาส |
| DES-01 | API ที่ใช้ในการผลิตใช้สัญญาที่เครื่องอ่านได้ที่ได้รับการอนุมัติเมื่อมีผลบังคับใช้ | API ที่ใช้ในการผลิตทั้งหมด | บล็อกหรือทบทวน | เจ้าของผลิตภัณฑ์ API | OpenAPI ที่มีเวอร์ชันหรือสัญญาที่ได้รับการอนุมัติอื่นๆ | เมื่อสร้างและการเปลี่ยนแปลงที่สำคัญ |
| DES-02 | สัญญาเป็นไปตามมาตรฐานการออกแบบและข้อผิดพลาดที่เกี่ยวข้อง | ระดับ 1–2; ระดับ 3 ที่เลือกไว้ | เตือน, จากนั้นบล็อกสำหรับกฎที่สามารถระบุได้ | หัวหน้าสถาปัตยกรรม API | ผลลัพธ์ Lint/ตรวจสอบและข้อยกเว้นที่ได้รับอนุมัติ | เมื่อมีการเปลี่ยนแปลงสัญญา |
| DOC-01 | ปลายทางเอกสารวัตถุประสงค์, การยืนยันตัวตน, พารามิเตอร์, ข้อจำกัด, การตอบกลับ, ข้อผิดพลาด และตัวอย่างที่เป็นตัวแทน | API ทั้งหมดที่หันหน้าเข้าหาผู้บริโภค | เตือนหรือทบทวน | เจ้าของผลิตภัณฑ์ API | รายการตรวจสอบเอกสารประกอบหรือรายงานความสมบูรณ์ | ก่อนการเผยแพร่ |
| CHG-01 | การเปลี่ยนแปลงที่มีผลกระทบและการเลิกใช้เป็นไปตามกระบวนการแจ้งเตือนผู้บริโภคและการโยกย้ายที่ได้รับอนุมัติ | API สาธารณะ, พันธมิตร และ API ภายในที่นำกลับมาใช้ใหม่ในวงกว้าง | บล็อกพร้อมทบทวน | เจ้าของผลิตภัณฑ์ API | ผลลัพธ์ความเข้ากันได้, การอนุมัติ, ประกาศ และแผนการโยกย้าย | เมื่อมีการเปลี่ยนแปลงที่สำคัญ |
| TST-01 | สัญญาที่จำเป็นและการทดสอบฟังก์ชันการทำงานผ่านก่อนการเผยแพร่ | API ที่ใช้ในการผลิตทั้งหมด | บล็อก | หัวหน้าวิศวกรรม | รายงานการทดสอบที่เชื่อมโยงกับการเผยแพร่ | ทุกการเผยแพร่ |
| IAM-01 | สิทธิ์ในพื้นที่ทำงานสะท้อนหลักการสิทธิ์ขั้นต่ำสุดและความรับผิดชอบในงานปัจจุบัน | พื้นที่ทำงาน API ทั้งหมด | ทบทวน | เจ้าของทีม/พื้นที่ทำงาน | การมอบหมายบทบาทและบันทึกการทบทวนการเข้าถึง | รายไตรมาสและเมื่อมีการเปลี่ยนแปลงบทบาท |
| IAM-02 | การเข้าถึงพื้นที่ทำงานของผู้ดูแลระบบจะถูกลบออกทันทีหลังจากเหตุการณ์การเลิกจ้าง | พื้นที่ทำงาน API ทั้งหมด | การดำเนินการอัตโนมัติพร้อมทบทวน | เจ้าของ IAM | เหตุการณ์การยกเลิกการจัดสรรและผลลัพธ์การกระทบยอด | เมื่อเกิดเหตุการณ์; การกระทบยอดรายเดือน |
| SEC-01 | ค่าการยืนยันตัวตนที่ละเอียดอ่อนใช้การอ้างอิงที่ได้รับอนุมัติ แทนที่จะเป็นข้อความธรรมดาที่ใช้ร่วมกัน | ทรัพย์สิน API ที่ใช้ร่วมกันทั้งหมด | บล็อก | เจ้าของความปลอดภัย/แพลตฟอร์ม | ผลลัพธ์นโยบายหรือบันทึกการกำหนดค่า | เมื่อบันทึกหรือเปลี่ยนแปลง |
| SEC-02 | ข้อมูลประจำตัวที่สงสัยว่าถูกเปิดเผยจะถูกคัดแยก, ลบออก, เพิกถอนหรือหมุนเวียนภายนอก และปิดด้วยเหตุผล | ทรัพย์สินที่สนับสนุนทั้งหมด | ตรวจจับพร้อมทบทวน | เจ้าของทีม | ข้อค้นพบ, การลบแหล่งที่มา, ตั๋วการหมุนเวียนภายนอก และการปิด | เมื่อตรวจพบ; การทบทวนอายุรายสัปดาห์ |
| SRC-01 | สัญญาที่อยู่ภายใต้การกำกับดูแลใช้ที่เก็บข้อมูล, สิทธิ์, สาขา และเส้นทางการทบทวนที่ได้รับอนุมัติ | ระดับ 1–2 | บล็อกในการควบคุมแหล่งที่มา | เจ้าของแพลตฟอร์ม/การควบคุมแหล่งที่มา | การตั้งค่าที่เก็บข้อมูลและประวัติคำขอดึงข้อมูล | เมื่อเปลี่ยนแปลง; การทบทวนรายไตรมาส |
| AUD-01 | การดำเนินการบริหารที่เกี่ยวข้องกับความปลอดภัยจะถูกรวบรวมและทบทวนตามแผนหลักฐาน |
