−25%

Windows-ის წლიურ გადახდაზე, 31 ოქტომბრამდე. ტარიფებზე

EQVPS
დაწყება

კონტეინერი თუ microVM: იზოლაციის 4 დონის შედარება, ქვეპროცესიდან სრულ ვირტუალურ მანქანამდე

Oct 10, 2026 · 5 წთ კითხვა · EQVPS Team

„გაუშვი sandbox-ში“ ერთ ინსტრუქციად ჟღერს. პრაქტიკაში ხალხი ამით ოთხი გავრცელებული საზღვრიდან ერთ-ერთს გულისხმობს და ისინი ძალიან განსხვავებულ რამეებს აჩერებს. არასწორის არჩევა ან დაუცველს გტოვებთ, ან ყოველ გაშვებას საჭიროზე ნელს და ძვირს ხდის.

ეს შედარება ვარაუდობს, რომ კოდი ნამდვილად არასანდოა: დაწერილი ენობრივი მოდელის მიერ, წარდგენილი მომხმარებლის მიერ ან მოსული pull request-ით ვინმესგან, ვისაც არ იცნობთ. კოდს, რომელიც თავად დაწერეთ, სხვა საჭიროებები აქვს.

რა შეიძლება აირიოს

საზღვრების შედარებამდე სასარგებლოა დავასახელოთ, რისთვის არსებობს ისინი. არასანდო კოდს შეუძლია:

  1. წაიკითხოს ის, რაც არ უნდა: გარემოს ცვლადები, SSH გასაღებები, ფაილები თქვენს სახლის საქაღალდეში, ღრუბლის მეტამონაცემების endpoint-ები.
  2. ამოწუროს რესურსები: უსასრულო ციკლი, fork მანქანის გაჩერებამდე, დისკის შევსება.
  3. ბოროტად გამოიყენოს ქსელი: სხვა ჰოსტების სკანირება, სპამის გაგზავნა, კრიპტოვალუტის მაინინგი, თქვენი შიდა სერვისების გამოძახება.
  4. დამკვიდრდეს: დააყენოს cron job ან სერვისი, რომელიც ამოცანას გადაურჩება.
  5. გაიქცეს: ქვედა ფენის ხარვეზით კოდი თავად ჰოსტზე გაუშვას.

ქვემოთ თითოეული დონე ამათგან ზოგს უმკლავდება და ზოგს — არა.

დონე 1: პროცესი

უმარტივესი sandbox შვილობილი პროცესია: subprocess.run ტაიმაუტით, შესაძლოა ცალკე მომხმარებლით, და თუ საფუძვლიანი ხართ, რესურსების ლიმიტებითა და seccomp ფილტრით.

აჩერებს: უკონტროლო დროს (ტაიმაუტი), რესურსების ამოწურვის ნაწილს (ლიმიტები), ზოგიერთ საშიშ სისტემურ გამოძახებას (seccomp). არ აჩერებს: ყველაფრის წაკითხვას, რისი წაკითხვაც ამ მომხმარებელს შეუძლია, ქსელზე წვდომას, დამკვიდრებას ყველგან, სადაც მომხმარებელს ჩაწერა შეუძლია, და ბირთვის ნებისმიერ ხარვეზს. ტიპური ჩავარდნა: კოდი კითხულობს ფაილს, რომლის წაკითხვადობაც დაგავიწყდათ, ან „შეზღუდული“ ენის ინტერპრეტატორს გასაქცევი ხვრელი აღმოაჩნდება. ისტორია სავსეა ენის შიგნით აგებული sandbox-ებით, რომლებმაც ვერ გაუძლეს.

ჩართვის დრო პრაქტიკულად ნულია. კარგია თქვენ მიერ დაწერილი კოდისთვის; საზღვარი არ არის კოდისთვის, რომელიც თქვენ არ დაგიწერიათ.

დონე 2: კონტეინერი

კონტეინერში namespaces კოდს ფაილების, პროცესებისა და ქსელის საკუთარ ხედს აძლევს; cgroups ზღუდავს CPU-სა და მეხსიერებას; მოხსნილი capabilities და seccomp ავიწროებს იმას, რისი მოთხოვნაც ბირთვისგან შეუძლია.

აჩერებს: ჰოსტის ფაილების წაკითხვას (თუ არ არის მიმაგრებული), სხვა პროცესების ხილვას, რესურსების შეუზღუდავ გამოყენებას და დამკვიდრების პრობლემის დიდ ნაწილს, თუ კონტეინერი შემდეგ იყრება. არ აჩერებს: ხარვეზს ჰოსტის საერთო ბირთვში. მანქანაზე ყველა კონტეინერი ერთსა და იმავე ბირთვს ესაუბრება, ამიტომ ბირთვის მიღწევადი სისუსტე გასასვლელია. ტიპური ჩავარდნა: კონფიგურაცია და არა ეგზოტიკური ექსპლოიტები. privileged კონტეინერი, container runtime-ის სოკეტი შიგნით მიმაგრებული, ჰოსტის ქსელი ჩართული „მხოლოდ დებაგისთვის“. თითოეული ჩუმად აშორებს საზღვარს.

ჩართვის დრო მილიწამებია. არსებობს გამაგრებული ვარიანტებიც, მათ შორის მომხმარებლის სივრცის ბირთვები, რომლებიც სისტემურ გამოძახებებს ჰოსტამდე მიღწევამდე წყვეტენ, სიჩქარისა და თავსებადობის გარკვეულ ფასად. იმ ადამიანების კოდისთვის, რომლებსაც ენდობით, კარგად კონფიგურირებული კონტეინერი გონივრული ნაგულისხმევი არჩევანია.

დონე 3: microVM

microVM ჰიპერვიზორის ქვეშ საკუთარ ბირთვს უშვებს, როგორც სრული ვირტუალური მანქანა, მაგრამ ემულირებული აპარატურის თითქმის მთლიანად მოშორებით. Firecracker ყველაზე ცნობილი მაგალითია.

აჩერებს: ყველაფერს, რასაც კონტეინერი აჩერებს, პლუს საერთო ბირთვის პრობლემას. ჰოსტამდე მისაღწევად კოდმა უნდა გატეხოს ჰიპერვიზორი ან რამდენიმე ვირტუალური მოწყობილობიდან ერთ-ერთი, რაც ბირთვის სისტემური გამოძახებების ინტერფეისზე გაცილებით მცირე ზედაპირია. არ აჩერებს: იმის ბოროტად გამოყენებას, რასაც თავად გადასცემთ. ღია გამავალი ტრაფიკი მაინც შეიძლება ბოროტად გამოიყენონ; საიდუმლოებები, რომლებსაც შიგნით შეიტანთ, მაინც შეიძლება გაჟონოს. ტიპური ჩავარდნა: პოლიტიკა და არა იზოლაცია. ვიღაც პროდაქშენის ტოკენს გადასცემს, „რომ ტესტებმა იმუშაოს“, ან გამავალ ტრაფიკს შეუზღუდავს ტოვებს დატვირთვაზე, რომელსაც ის არ სჭირდება.

ჩართვის დრო წამის ნაწილიდან დაახლოებით ერთ წამამდეა, რამდენიმე მეგაბაიტი ზედნადებით. ეს საკმარისად სწრაფია, რომ ყოველი ამოცანისთვის ერთი შექმნათ და შემდეგ წაშალოთ, რაც დამკვიდრების პრობლემასაც წყვეტს: დასაბრუნებელი აღარაფერი რჩება.

დონე 4: სრული ვირტუალური მანქანა

ჩვეულებრივ ვირტუალურ მანქანას, ანუ VPS-ს, იგივე ტიპის საზღვარი აქვს, რაც microVM-ს: აპარატურული ვირტუალიზაცია და ჰიპერვიზორი. განსხვავება მის გარშემო ყველაფერშია: სრული მოწყობილობების მოდელი, მთელი ოპერაციული სისტემა, საჯარო IP, თუ გსურთ, და სასიცოცხლო ციკლი, რომელიც დღეებით ან თვეებით იზომება.

აჩერებს: პრობლემების იმავე კლასებს, რასაც microVM, ოდნავ დიდი შეტევის ზედაპირით, რადგან მეტი აპარატურა ემულირდება. არ აჩერებს: საკუთარი ქსელური იდენტობის ბოროტად გამოყენებას. საჯარო IP-ის მქონე ვირტუალური მანქანა, რომელიც მავნე კოდს უშვებს, საკუთარ IP-ს შავ სიაში აყენებს, რაც მნიშვნელოვანია, თუ იმავე IP-დან თქვენი ფოსტაც იგზავნება. (თუ ეს უკვე მოხდა, იხილეთ რა უნდა გააკეთოთ, როცა თქვენი IP შავ სიაშია.) ტიპური ჩავარდნა: ის ზედმეტად დიდხანს ცოცხლობს. ერთი ექსპერიმენტისთვის შექმნილი ვირტუალური მანქანა აგროვებს ავტორიზაციის მონაცემებსა და მდგომარეობას და ნელ-ნელა იქცევა იმ სანდო მანქანად, რომელიც უნდა დაეცვა.

ჩართვის დრო ათეულობით წამიდან წუთებამდეა, ბილინგი კი ჩვეულებრივ თვიურია. ეს სწორი ფორმაა ხანგრძლივი სერვისისთვის, რომელსაც შემომავალი პორტები სჭირდება, და არასწორი ფორმა 20-წამიანი კოდის გაშვებისთვის.

შედარება

პროცესიკონტეინერიmicroVMსრული ვირტუალური მანქანა
საკუთარი ბირთვიარაარაკიკი
მთავარი საზღვარიმომხმარებლის უფლებებიnamespaces + საერთო ბირთვიჰიპერვიზორი, პაწაწინა მოწყობილობების მოდელიჰიპერვიზორი, სრული მოწყობილობების მოდელი
ჩართვის დრო~0ms~0.1–1 წმ10 წმ – წუთები
ზედნადებიარ არისმცირერამდენიმე MiBათეულობით–ასეულობით MiB
ყოველი ამოცანის შემდეგ გადაყრამარტივიმარტივიმარტივინელი, ძვირი
შემომავალი პორტები / საჯარო IPჰოსტისჰოსტისჩვეულებრივ არ არისკი

არჩევანი

  • კოდი, რომელიც თქვენ ან თქვენმა გუნდმა დაწერა: პროცესი ან კონტეინერი საკმარისია.
  • CI თქვენი საკუთარი ბრენჩებისთვის: კონტეინერი თქვენს runner-ზე.
  • აგენტის მიერ გენერირებული კოდი, მომხმარებლების წარდგენილი მასალა, გარე pull request-ები: microVM ყოველ ამოცანაზე, შემდეგ წაშლილი.
  • არასანდო სერვისი, რომელმაც უნდა მიიღოს კავშირები ან კვირობით იმუშაოს: ცალკე ვირტუალური მანქანა საკუთარი IP-ით, შორს ყველაფრისგან, რაც თქვენს ავტორიზაციის მონაცემებს ინახავს ან თქვენს ფოსტას აგზავნის.

რაც არ უნდა აირჩიოთ, ზემოდან ორი წესი მოქმედებს: შიგნით არაფერი ჩადოთ, რასაც კოდის ავტორს არ გადასცემდით, და შეგნებულად გადაწყვიტეთ, რისი უფლება აქვს ქსელს.

სად არის ჩვენი პროდუქტები

მე-3 დონისთვის ჩვენ ვთავაზობთ კოდის sandbox-ებს: Firecracker microVM-ებს, რომლებიც დაახლოებით ერთ წამში ირთვება, გამავალი ინტერნეტით, შემომავალი პორტების გარეშე და წამობრივი ბილინგით. ისინი ზუსტად ზემოთ მესამე პუნქტზეა გათვლილი; MCP-ის დამცავი მექანიზმების გვერდი ხსნის, როგორ შეზღუდოთ, რისი გაკეთება შეუძლია აგენტს მათთან. მე-4 დონისთვის VPS, როგორიცაა AI agent ტარიფი, მთელ მანქანას გაძლევთ თვეობით. sandbox AI აგენტებისთვის მაგალითები microVM-ის შაბლონს თავიდან ბოლომდე აჩვენებს, ხოლო რა სჭირდებათ AI აგენტებს ინფრასტრუქტურისგან იზოლაციას რამდენიმე მოთხოვნიდან ერთ-ერთად განიხილავს.

ხდკ

საკმარისია კონტეინერი AI-ის მიერ გენერირებული კოდის გასაშვებად?

თქვენი გუნდის კოდისთვის, ჩვეულებრივ, კი. კოდისთვის, რომელიც არავის გადაუხედავს — აგენტის შედეგი, მომხმარებლების წარდგენილი მასალა, გარე pull request-ები — კონტეინერის საერთო ბირთვი სუსტი წერტილია. microVM ან ვირტუალური მანქანა ამ კოდსა და ჰოსტს შორის ჰიპერვიზორს აყენებს.

რა განსხვავებაა microVM-სა და ჩვეულებრივ ვირტუალურ მანქანას შორის იზოლაციის თვალსაზრისით?

საზღვარი ერთი ტიპისაა: აპარატურული ვირტუალიზაცია და ჰიპერვიზორი. microVM გაცილებით ნაკლებ ვირტუალურ მოწყობილობას ააშკარავებს, ამიტომ ზედაპირი უფრო მცირეა, და ათეულობით წამის ნაცვლად დაახლოებით ერთ წამში ირთვება. სრული ვირტუალური მანქანა უკეთესია ხანგრძლივი სერვისებისთვის, რომლებსაც საჯარო IP, მეტი მოწყობილობა ან მთელი ოპერაციული სისტემა სჭირდება.

უშლის იზოლაცია ხელს კოდს, მოიპაროს ჩემი API გასაღებები?

მხოლოდ მაშინ, თუ გასაღებები შიგნით არ არის. იზოლაცია ჰოსტს იცავს კოდისგან; ის არ იცავს საიდუმლოებებს, რომლებიც განზრახ გადაეცით. არასანდო კოდს არაფერი მისცეთ, რაც არ უნდა ჰქონდეს.

ქსელზე წვდომა?

ის ისევე მნიშვნელოვანია, როგორც გამოთვლითი საზღვარი. გადაწყვიტეთ, სჭირდება თუ არა კოდს საერთოდ გამავალი ინტერნეტი, და დარწმუნდით, რომ გარედან მასთან ვერაფერი დაუკავშირდება. იდეალურად იზოლირებული მანქანაც კი შეიძლება გამოიყენონ სკანირებისთვის, სპამისთვის ან მაინინგისთვის, თუ მისი ტრაფიკი შეუზღუდავია.

კომენტარები

ჯერ არ არის კომენტარები. იყავით პირველი.

დატოვეთ კომენტარი

კომენტარები მოდერირდება გამოჩენამდე.