OPA: เครื่องมือนโยบายวัตถุประสงค์ทั่วไปสำหรับคลาวด์เนทีฟ

ในขณะที่องค์กรของคุณใช้ระบบคลาวด์คุณอาจพบว่าพลวัตและขนาดของสแต็กแบบคลาวด์เนทีฟนั้นต้องการภูมิทัศน์ด้านความปลอดภัยและการปฏิบัติตามข้อกำหนดที่ซับซ้อนมากขึ้น ตัวอย่างเช่นด้วยแพลตฟอร์มการจัดเตรียมคอนเทนเนอร์เช่น Kubernetes ที่ได้รับแรงฉุดนักพัฒนาและทีมผู้พัฒนามีความรับผิดชอบใหม่ในด้านนโยบายเช่นการควบคุมการรับเข้าและพื้นที่ดั้งเดิมอื่น ๆ เช่นการคำนวณพื้นที่จัดเก็บและเครือข่าย ในขณะเดียวกันแต่ละแอปพลิเคชันไมโครบริการหรือโครงข่ายบริการต้องมีชุดนโยบายการอนุญาตของตัวเองซึ่งนักพัฒนากำลังใช้งานได้

ด้วยเหตุผลเหล่านี้ทำให้การล่าสัตว์ดำเนินไปด้วยวิธีที่ง่ายและประหยัดเวลามากขึ้นในการสร้างบังคับใช้และจัดการนโยบายในระบบคลาวด์ เข้าสู่ Open Policy Agent (OPA) OPA สร้างขึ้นเมื่อสี่ปีที่แล้วในฐานะเครื่องมือกำหนดนโยบายแบบโอเพนซอร์สที่ไม่เชื่อเรื่องพระเจ้าโดยไม่เชื่อเรื่องพระเจ้า OPA กำลังกลายเป็นมาตรฐานโดยพฤตินัยสำหรับนโยบายคลาวด์เนทีฟ ตามความเป็นจริง OPA ได้รับการว่าจ้างในการผลิตโดย บริษัท ต่างๆเช่น Netflix, Pinterest และ Goldman Sachs สำหรับกรณีการใช้งานเช่นการควบคุมการรับเข้า Kubernetes และการอนุญาต API ของไมโครเซอร์วิส OPA ยังขับเคลื่อนเครื่องมือบนระบบคลาวด์ที่คุณรู้จักและชื่นชอบอยู่แล้วรวมถึงชุด Atlassian และ Chef Automate

[นอกจากนี้ใน: ที่ซึ่งวิศวกรรมความน่าเชื่อถือของไซต์เป็นไปตามการพัฒนา]

OPA มอบภาษานโยบายที่เป็นหนึ่งเดียวให้แก่องค์กรบนระบบคลาวด์เพื่อให้การตัดสินใจในการให้สิทธิ์สามารถแสดงออกได้โดยทั่วไปทั้งในแอป API โครงสร้างพื้นฐานและอื่น ๆ โดยไม่ต้องกำหนดนโยบายฮาร์ดโค้ดตามภาษาและเครื่องมือต่างๆเหล่านั้นทีละภาษา . นอกจากนี้เนื่องจาก OPA มีจุดประสงค์ที่สร้างขึ้นเพื่อการอนุญาตจึงมีคอลเล็กชันการเพิ่มประสิทธิภาพการทำงานที่เพิ่มขึ้นเรื่อย ๆ เพื่อให้ผู้เขียนนโยบายสามารถใช้เวลาส่วนใหญ่ในการเขียนนโยบายที่ถูกต้องดูแลรักษาได้และปล่อยให้ประสิทธิภาพการทำงานแก่ OPA

นโยบายการอนุญาต OPA มีหลายกรณีการใช้งานในสแต็กตั้งแต่การวางราวกั้นรอบ ๆ การจัดระเบียบคอนเทนเนอร์ไปจนถึงการควบคุมการเข้าถึง SSH หรือการให้การอนุญาตตาข่ายบริการตามบริบท อย่างไรก็ตามมีกรณีการใช้งานยอดนิยมสามกรณีที่ให้แผ่นเปิดตัวที่ดีสำหรับผู้ใช้ OPA จำนวนมาก ได้แก่ การอนุญาตแอปพลิเคชันการควบคุมการรับเข้า Kubernetes และไมโครเซอร์วิส 

OPA สำหรับการอนุญาตแอปพลิเคชัน

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

OPA ใช้ภาษาประกาศนโยบายที่สร้างขึ้นโดยเฉพาะซึ่งทำให้การพัฒนานโยบายการอนุญาตเป็นเรื่องง่าย ตัวอย่างเช่นคุณสามารถสร้างและบังคับใช้นโยบายได้อย่างตรงไปตรงมาเช่น“ คุณไม่สามารถอ่าน PII ได้หากคุณเป็นผู้รับเหมา” หรือ“ เจนสามารถเข้าถึงบัญชีนี้ได้” แต่นั่นเป็นเพียงจุดเริ่มต้น เนื่องจาก OPA ตระหนักถึงบริบทคุณจึงสามารถสร้างนโยบายที่พิจารณาทุกสิ่งบนโลกได้เช่น“ การซื้อขายหุ้นที่ร้องขอในชั่วโมงสุดท้ายของวันซื้อขายซึ่งจะส่งผลให้มีธุรกรรมมากกว่าล้านดอลลาร์สามารถดำเนินการได้ใน บริการเฉพาะในเนมสเปซที่กำหนด”

แน่นอนหลายองค์กรได้รับการอนุญาตตามความต้องการแล้ว อย่างไรก็ตามหากคุณหวังว่าจะแยกย่อยแอปพลิเคชันของคุณและปรับขนาดไมโครเซอร์วิสในระบบคลาวด์ในขณะที่ยังคงรักษาประสิทธิภาพไว้สำหรับนักพัฒนาคุณจำเป็นต้องมีระบบการอนุญาตแบบกระจาย สำหรับหลาย ๆ คน OPA คือชิ้นส่วนปริศนาที่ขาดหายไป

OPA สำหรับ Kubernetes การควบคุมการรับเข้า

ผู้ใช้หลายคนยังใช้ OPA เพื่อสร้างรั้วกั้นสำหรับ Kubernetes Kubernetes เองกลายเป็นกระแสหลักและมีความสำคัญต่อภารกิจและองค์กรต่างๆกำลังมองหาวิธีกำหนดและติดตั้งระบบป้องกันความปลอดภัยเพื่อช่วยลดความเสี่ยงด้านความปลอดภัยและการปฏิบัติตามกฎระเบียบ การใช้ OPA ผู้ดูแลระบบสามารถกำหนดนโยบายที่ชัดเจนเพื่อให้นักพัฒนาสามารถเร่งการผลิตไปป์ไลน์และนำบริการใหม่ ๆ ออกสู่ตลาดได้อย่างรวดเร็วโดยไม่ต้องกังวลเกี่ยวกับความเสี่ยงด้านการปฏิบัติงานความปลอดภัยหรือการปฏิบัติตามกฎระเบียบ

สามารถใช้ OPA เพื่อสร้างนโยบายที่ปฏิเสธทางเข้าใด ๆ ที่ใช้ชื่อโฮสต์เดียวกันหรือที่ต้องการให้อิมเมจคอนเทนเนอร์ทั้งหมดมาจากรีจิสตรีที่เชื่อถือได้หรือเพื่อให้แน่ใจว่าที่เก็บข้อมูลทั้งหมดถูกทำเครื่องหมายด้วยบิตเข้ารหัสเสมอหรือทุกแอปเปิดเผย ในอินเทอร์เน็ตใช้ชื่อโดเมนที่ได้รับอนุมัติ - เพื่ออ้างอิงเพียงบางตัวอย่าง

เนื่องจาก OPA ผสานรวมโดยตรงกับเซิร์ฟเวอร์ Kubernetes API จึงสามารถปฏิเสธทรัพยากรใด ๆ ที่นโยบายไม่อนุญาตทั้งในการประมวลผลเครือข่ายพื้นที่เก็บข้อมูลและอื่น ๆ เป็นประโยชน์อย่างยิ่งต่อนักพัฒนาคุณสามารถเปิดเผยนโยบายเหล่านี้ก่อนหน้านี้ในวงจรการพัฒนาเช่นใน CI / CD ไปป์ไลน์เพื่อให้นักพัฒนาได้รับข้อเสนอแนะล่วงหน้าและแก้ไขปัญหาก่อนรันไทม์ ยิ่งไปกว่านั้นคุณสามารถตรวจสอบความถูกต้องของนโยบายของคุณนอกวงเพื่อให้แน่ใจว่านโยบายเหล่านั้นบรรลุผลตามที่ตั้งใจไว้และไม่ก่อให้เกิดปัญหาโดยไม่ได้ตั้งใจ

OPA สำหรับไมโครเซอร์วิส

ในที่สุด OPA ก็ได้รับความนิยมอย่างมากในการช่วยองค์กรควบคุมไมโครเซอร์วิสและสถาปัตยกรรมตาข่ายบริการ ด้วย OPA คุณสามารถสร้างและบังคับใช้นโยบายการอนุญาตโดยตรงสำหรับไมโครเซอร์วิส (โดยทั่วไปจะเป็นรถข้างเคียง) สร้างนโยบายบริการต่อบริการภายในโครงข่ายบริการหรือสร้างนโยบายที่ จำกัด การเคลื่อนไหวด้านข้างภายในตาข่ายบริการจากมุมมองด้านความปลอดภัย สถาปัตยกรรม.

การสร้างนโยบายที่เป็นหนึ่งเดียวสำหรับสถาปัตยกรรมแบบคลาวด์

โดยทั่วไปเป้าหมายโดยรวมเมื่อใช้ OPA คือการสร้างแนวทางที่เป็นหนึ่งเดียวในการสร้างนโยบายข้ามกลุ่มคลาวด์เนทีฟของคุณดังนั้นคุณจึงไม่จำเป็นต้องจัดการนโยบายอย่างต่อเนื่องในหลาย ๆ สถานที่โดยใช้ภาษาและแนวทางที่แตกต่างกันผ่านโฆษณา - การผสมผสานระหว่างความรู้เกี่ยวกับชนเผ่าวิกิและ PDF หรือความสับสนของเครื่องมือที่ไม่ตรงกัน

[นอกจากนี้ใน: 7 แนวทางปฏิบัติที่ดีที่สุดสำหรับทีม Agile ระยะไกล]

นอกเหนือจากการลดความซับซ้อนของการพัฒนาและการเร่งการจัดส่งแล้วนี่เป็นข่าวใหญ่สำหรับความปลอดภัยเช่นกันเนื่องจาก OPA ลดจำนวนเครื่องมือที่คุณต้องตรวจสอบเช่นคุณสงสัยว่ามีการพยายามเข้าถึงโดยไม่ได้รับอนุญาตหรือไม่ ในทำนองเดียวกันจากทั้งการปฏิบัติงานและมุมมองด้านการปฏิบัติตามกฎระเบียบ OPA ช่วยให้ดึงและวิเคราะห์ข้อมูลในสภาพแวดล้อมที่แตกต่างกันได้ง่ายขึ้นช่วยให้คุณระบุปัญหาได้อย่างรวดเร็วและแก้ไขได้เร็วขึ้น

นักพัฒนากำลังมองหาวิธีที่ง่ายและมีประสิทธิภาพมากขึ้นในการสร้างและจัดการการควบคุมตามนโยบายสำหรับสภาพแวดล้อมระบบคลาวด์ สำหรับหลาย ๆ คนวิธีแก้ปัญหานั้นคือ OPA หากคุณพบว่าตัวเองสัมผัสนโยบายการอนุญาตในหลายที่หลายภาษาหรือในหลายทีม OPA สามารถช่วยขจัดความซ้ำซ้อนและการส่งมอบที่รวดเร็วให้กับคุณได้เช่นเดียวกับที่มีให้

Tim Hinrichs เป็นผู้ร่วมก่อตั้งโครงการ Open Policy Agent และ CTO ของ Styra ก่อนหน้านั้นเขาได้ร่วมก่อตั้งโครงการ OpenStack Congress และเป็นวิศวกรซอฟต์แวร์ที่ VMware Tim ใช้เวลา 18 ปีที่ผ่านมาในการพัฒนาภาษาที่เปิดเผยสำหรับโดเมนต่างๆเช่นการประมวลผลแบบคลาวด์เครือข่ายที่กำหนดโดยซอฟต์แวร์การจัดการการกำหนดค่าความปลอดภัยของเว็บและการควบคุมการเข้าถึง เขาได้รับปริญญาเอก สาขาวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยสแตนฟอร์ดในปี 2551

-

New Tech Forum เป็นสถานที่สำหรับสำรวจและพูดคุยเกี่ยวกับเทคโนโลยีสำหรับองค์กรที่เกิดขึ้นใหม่ในเชิงลึกและเชิงกว้างที่ไม่เคยมีมาก่อน การเลือกเป็นเรื่องส่วนตัวขึ้นอยู่กับการเลือกใช้เทคโนโลยีที่เราเชื่อว่ามีความสำคัญและเป็นที่สนใจของผู้อ่านมากที่สุด ไม่ยอมรับหลักประกันทางการตลาดสำหรับการตีพิมพ์และขอสงวนสิทธิ์ในการแก้ไขเนื้อหาที่มีส่วนร่วมทั้งหมด ส่งคำถามทั้งหมดไปที่ [email protected]