0004 — CBotBuilder beží na webovom hostiteľovi v sandboxovanom kontajneri
Kontext
Budovanie cBotu používateľa znamená spustenie nedôveryhodného MSBuild — ľubovoľný kód v čase zostavenia (ciele, generátory zdrojov, skripty obnovenia). Potrebuje zástrčku Docker na spustenie SDK kontajnera. Uzly spúšťajú obchodné kontajnery a nemali by ani vlastniť oprávnenia k budovaniu.
Rozhodnutie
CBotBuilder beží na webovom hostiteľovi (ktorý už má zásuvku Docker), vo vnútri vyhoditeľného SDK
kontajnera s:
- adresárom
/workviazaným na bind (iba vstupy/výstupy budovania, nie hostiteľský súborový systém); - zdieľaným zväzkom
app-nuget-cachepre výkon obnovenia; - bez prístupu k sieťovému hostiteľovi okrem toho, čo obnovenie potrebuje.
Takže nedôveryhodné MSBuild nemôže dosiahnuť hostiteľský súborový systém alebo sieť. Kontajnery spustenia/backtestingu na
rozdiel od toho bežia na uzloch vybratých NodeScheduler.
Dôsledky
- Oprávnenie na budovanie (zásuvka Docker) je obmedzené na webový hostiteľ; uzly iba spúšťajú povolené obchodné obrázky.
- Každé budovanie je izolované v jednorazovom kontajneri — škodlivé budovanie nemôže pretrvávať alebo uniknúť.
- Webový hostiteľ musí mať k dispozícii zásuvku Docker; toto je požiadavka na nasadenie, nie voliteľné.