จะห้ามการเข้าถึง internals ของคอนเทนเนอร์ Docker ได้อย่างไร?


14

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

เป็นไปได้หรือไม่ที่จะห้ามการเข้าถึงที่เก็บของภายใน? เป็นไปได้หรือไม่ที่จะตรวจสอบความสมบูรณ์ของภาพที่ทำจากตู้คอนเทนเนอร์?


2
ถ้าคุณจัดการโฮสต์นักเทียบท่าฉันเชื่อว่าคุณทำไม่ได้ คุณต้องการแก้ไขปัญหาอะไรโดยการป้องกันการเข้าถึงนี้
Tensibai

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

คำตอบ:


11

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

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

คุณอาจมีตัวเลือกให้แอปของคุณเป็นซอฟต์แวร์ในฐานะบริการ (SaaS) ที่ทำงานบนโครงสร้างพื้นฐานคลาวด์ทั้งนี้ขึ้นอยู่กับสถานการณ์ของคุณ

หากลูกค้าของคุณต้องการให้คอนเทนเนอร์ของคุณทำงานบนโครงสร้างพื้นฐานของพวกเขาและปฏิเสธที่จะปฏิบัติตามข้อ จำกัด ในการแก้ไขคุณอาจไม่ต้องการสนับสนุนการใช้งานซอฟต์แวร์ของพวกเขา


6

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

  • ทำให้งงงวยซอฟต์แวร์ของคุณ (ruby, python และอื่น ๆ )
  • สร้างภาพของคุณจากภาพฐานที่ไม่มีเปลือกหอยและไบนารีอื่น ๆ ที่ผู้ใช้สามารถใช้เพื่อแก้ไขภาพ

แน่นอนว่าพวกเขาสามารถส่งออกคอนเทนเนอร์และบรรจุหีบห่อใหม่ได้เสมอ แต่นั่นเป็นมาตรการที่รุนแรง ...


ทำไม Ruby และ Python ถึงได้รับเป็นตัวอย่างสำหรับรหัสทำให้งงงวย? รหัสในภาษาเหล่านั้นมักจะถูกเก็บไว้เป็นไฟล์ต้นฉบับข้อความที่ชัดเจนในการดำเนินการระบบปฏิบัติการ มันจะไม่เป็นที่ต้องการที่จะใช้ภาษาที่รวบรวมเช่น C ++, C #, Java หรือหนึ่งซึ่งสามารถเป็น "minified" เช่น JS?
AjaxLeung

5

คุณสามารถลบผู้ใช้จากกลุ่มนักเทียบท่าและสร้าง sudos สำหรับและdocker startdocker stop


3
เป็นไปได้ / มีผลบังคับใช้หากคุณเป็นเจ้าของเซิร์ฟเวอร์เหล่านั้น ...
Dan Cornilescu

5

หากลูกค้าของคุณพร้อมที่จะลงทุนเงินคุณควรไปกับ Docker enterprise edition ในหาง EE คุณมีเครื่องมือที่เป็นUCPUCP(Universal Control Plane) โดย UCP คุณสามารถสร้างบทบาทและสิทธิ์การเข้าถึงและ จำกัด ผู้ใช้ให้เปลี่ยน / แก้ไขคอนเทนเนอร์

หากคุณต้องการทดสอบ UCP มากกว่า DDC (ศูนย์ข้อมูลนักเทียบท่า) ที่มีใบอนุญาตทดลองใช้งานหนึ่งเดือนซึ่งจะช่วยให้คุณสามารถอธิบายรายละเอียดต่าง ๆ ได้ตามความต้องการของคุณ

หวังว่านี่จะช่วยได้!

ขอขอบคุณ!


1
ในฐานะที่เป็นวิธีแก้ปัญหาเกี่ยวกับกลุ่มนักเทียบท่ามันใช้งานได้ถ้าคุณจัดการระบบโฮสต์นักเทียบท่าเท่านั้น OP จะฟังดูคล้ายกับการกระจายภาพ ...
Tensibai

2

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


2
สิ่งนี้จะป้องกันการเข้าถึงคอนเทนเนอร์อย่างไร ลองอธิบายว่าข้อเสนอของคุณจะแก้ปัญหา OP ได้อย่างไร
Michael Le Barbier Grünewald
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.