Indeks dnevnikaDockup / bilješka s terena
Note / production-guardrails-for-ai-agents

Zaštitne mjere za AI agente u produkciji koje doista funkcioniraju

Zaštitne mjere za AI agente u produkciji koje obuhvaćaju tajne, potvrde, audit logove, ograničeni pristup, strukturirane pogreške i sigurne autonomne tijekove implementacije.

Zaštitne mjere za AI agente u produkciji moraju izdržati više od pristojno sročenog prompta. Autonomni coding agent može pogrešno protumačiti cilj, ponoviti operaciju, otkriti vjerodajnicu u svom objašnjenju ili nastaviti nakon nejasnog odgovora. Sigurnost u produkciji zato mora biti ugrađena u izvršno sučelje, model autorizacije i audit trag — a ne samo u upute.

Dockup kombinira smjernice za ponašanje u svom Claude Code i Codex skillu s enforcementom na razini CLI-ja: tajne se maskiraju, destruktivne operacije zahtijevaju --yes, neuspjesi vraćaju stabilne kodove, deployi mogu čekati terminalno stanje, a mutacije se pojavljuju u audit logu.

Zašto se zaštitne mjere moraju provoditi ispod razine prompta?

Prompt je korisna policy smjernica, ali nije sigurnosna granica. Kontekst agenta može biti skraćen, upute mogu biti proturječne, a model može odabrati pogrešno tumačenje. Temeljni alat trebao bi otežati ili onemogućiti nesigurno ponašanje.

Razmotrimo zahtjev za brisanje. Slabiji dizajn izlaže naredbu koja odmah briše i oslanja se na to da će se agent sjetiti zatražiti potvrdu. Snažniji dizajn odbija operaciju dok nije prisutan zaseban flag za potvrdu.

Dockup koristi snažniji obrazac:

dockup up production/api --prune --json

Bez eksplicitne potvrde destruktivno čišćenje se odbija, a JSON uključuje code:"needs_confirm". Ništa se ne uklanja. Agent taj rezultat mora proslijediti čovjeku, primiti odobrenje i zatim namjerno ponovno pokrenuti naredbu:

dockup up production/api --prune --yes --json

To je defense in depth. Dockup skill govori agentu da se zaustavi, dok CLI sprječava slučajno izvršavanje čak i ako je uputa propuštena.

Kako maskiranje tajni štiti autonomne agente?

Agenti često uključuju izlaz naredbi u svoje razmišljanje ili završni odgovor. Ako operacija čitanja vrati produkcijski token, tajna se može proširiti u povijest razgovora, logove, telemetriju, snimke zaslona ili kopirane bilješke o incidentu.

Sigurno konfiguracijsko sučelje odvaja metapodatke tajni od njihovih vrijednosti. Dockup vraća ključeve varijabli okruženja i oznaku isSecret, dok su pohranjene vrijednosti tajni null ili maskirane.

dockup env list -s production/api --json

Agent može postaviti tajnu, a da je poslije ne može dohvatiti:

dockup env set API_KEY="$API_KEY" \
  --secret \
  -s production/api \
  --json

Maskiranje tajni ne uklanja potrebu za pažljivim rukovanjem procesom. Izvorna vrijednost i dalje postoji u shell okruženju tijekom operacije postavljanja. Izbjegavajte set -x, nemojte ispisivati varijablu i nemojte izrađivati nizove naredbi koje se bilježe u verbose logovima.

Lozinke baza podataka, API ključeve, tokene registryja, SSH vjerodajnice i Windows RDP vjerodajnice treba tretirati kao izlaze za jednokratnu upotrebu ili kao ograničene izlaze. Agent bi ih trebao pohraniti u odobreni secret manager ili ih izravno proslijediti sljedećem procesu, bez ponavljanja u tekstu.

Širi pristup na razini aplikacije obrađen je u članku sigurnosne najbolje prakse.

Kako bi trebalo funkcionirati odobravanje destruktivnih radnji?

Ne zaslužuje svaka mutacija isti postupak potvrde. Koristan model autonomije razdvaja operacije prema mogućnosti poništavanja i opsegu posljedica:

RazinaPrimjerZadano ponašanje agenta
Samo za čitanjeIzlistavanje servisa, čitanje statusa, pregled logovaIzvrši i sažmi
Reverzibilni upisPostavljanje varijable, pokretanje deployaIzvrši unutar odobrenog opsega
Operativni oporavakPonovno pokretanje, ponovna implementacija starijeg deployaIzvrši ako runbook to dopušta; prijavi dokaze
DestruktivnoUništavanje servisa, brisanje baze podataka, napuštanje projektaZaustavi se i zatraži eksplicitno odobrenje
Široko destruktivnoPrimjena --prune, prijenos vlasništvaZatraži potvrdu čovjeka specifičnu za cilj

Eksplicitno odobrenje trebalo bi uključivati točan cilj i posljedicu. „Da, nastavi” slabije je od „Obriši staging/old-api i povezane resurse servisa.” Agent ne bi smio ponovno upotrijebiti odobrenje dano za drugu naredbu ili drugi cilj.

Dockup config as code prema zadanim je postavkama aditivan. dockup up neće ukloniti varijable okruženja ni domene koje nisu prisutne u manifestu. Brisanje zahtijeva eksplicitni flag --prune:

dockup plan production/api --json
dockup up production/api --prune --json

Plan je samo za čitanje i najprije ga treba pregledati. Čak i uz --prune, tajne, servisi, baze podataka i volumeni zaštićeni su od ovog puta čišćenja manifesta. Cijeli tijek rada pogledajte u članku dockup.yaml config as code.

Kako strukturirane pogreške ograničavaju autonomiju?

Agentu je potreban konačan skup sigurnih grana. Poruke slobodnog formata korisne su ljudima, ali stabilni kodovi pogrešaka čine prvi odgovor determinističkim.

KodIspravan odgovor
not_logged_inZaustavi se i pribavi valjanu vjerodajnicu
not_linkedRazriješi cilj ili ga eksplicitno proslijedi
no_targetPokreni otkrivanje servisa; nikad ne izmišljaj slug
needs_confirmZatraži odobrenje čovjeka
deploy_trigger_failedPrijavi zašto operacija nije mogla započeti
deploy_failedPregledaj build logove
deploy_timeoutPrijavi da stanje nije terminalno i da postoji neizvjesnost

Deploy bi trebao koristiti čekanje na terminalno stanje:

dockup deploy production/api --wait --json

Zadano vremensko ograničenje iznosi 900 sekundi. Izlazni kod 0 potvrđuje da je deploy dosegnuo stanje uspjeha. Izlaz koji nije nula sprječava agenta da nastavi s promjenama domene, migracijama ili objavama kao da je produkcija spremna.

Ovaj je dizajn detaljnije obrađen u članku AI agent CLI design. Načelo je jednostavno: alat mora nejasan rezultat učiniti eksplicitnim.

Što bi audit log trebao bilježiti?

Autonomija bez atribucije predstavlja operativni dug. Produkcijski audit trag trebao bi odgovoriti na pitanja tko je djelovao, koje je sučelje upotrijebio, koji se cilj promijenio, je li riječ o čitanju ili upisu, kada se to dogodilo i je li operacija bila uspješna.

Dockup bilježi radnje iz CLI-ja, UI-ja i API-ja. Operateri mogu pregledati nedavne mutacije:

dockup audit --writes --json
dockup audit --number 30 --json
dockup audit --search domains --json

Vlastito izvješće agenta trebalo bi nadopuniti zapis platforme. Uključite:

  1. Razriješeni cilj project/service.
  2. Kategoriju naredbe, bez vrijednosti tajni.
  3. ID-ove deploya ili resursa koje je vratila platforma.
  4. Izlazni kod i strukturirani status.
  5. Dokaze prikupljene nakon mutacije.
  6. Svako odobrenje primljeno za destruktivni rad.
  7. Preostalu neizvjesnost ili daljnje korake.

Audit logovi nisu namijenjeni samo naknadnom traženju krivca za incident. Omogućuju drugom agentu ili ljudskom operateru rekonstrukciju stanja bez ponavljanja rizičnih naredbi.

Kako timovi mogu sigurno povećati autonomiju agenta?

Započnite s pristupom za čitanje i jednim servisom niskog rizika. Proširujte ovlasti tek kada agent pokaže ispravno otkrivanje cilja, dobru higijenu tajni, grananje pri neuspjehu i kvalitetno izvještavanje.

Praktičan razvojni put izgleda ovako:

Faza 1: Promatranje

Dopustite izlistavanje servisa, status, povijest deploya, build logove, runtime logove, uptime, korištenje resursa i čitanje rezultata sigurnosnog skeniranja. Usporedite sažetak agenta sa sirovim JSON-om.

Faza 2: Deploy unutar fiksnog cilja

Dopustite deploy jednog servisa uz --wait. Zahtijevajte health check i strukturirano izvješće o završetku. Nemojte dodijeliti ovlasti za brisanje ni upravljanje timom.

Faza 3: Upravljanje reverzibilnom konfiguracijom

Dopustite ažuriranje nesigurnih i tajnih varijabli, konfiguraciju health checka i postavljanje prilagođene domene u okviru pregledanog runbooka. Nakon promjena okruženja zahtijevajte ponovni deploy.

Faza 4: Provođenje radnji oporavka

Dopustite ponovno pokretanje ili rollback samo kada agent odabere točan, poznat ID deploya i sačuva dokaze o neuspjehu.

Faza 5: Destruktivni rad uz obavezno odobrenje

Destruktivne flagove zadržite iza eksplicitnog odobrenja čovjeka, čak i kada ih vjerodajnica tehnički dopušta. Gdje god je moguće, koristite ograničene API ključeve i redovito pregledavajte audit trag.

Instalacija agenta skill učvršćuje ova ponašanja:

npm install -g dockup-cli
dockup skill install
dockup skill status --json

Dockup CLI reference opisuje nametnuto ponašanje naredbi. Agent bi trebao provjeriti lokalnu shemu umjesto da se oslanja na primjer kojeg se sjeća.

Kontrolni popis za pregled zaštitnih mjera

Prije dodjele pristupa produkciji odgovorite na svako pitanje:

  • Može li agent otkriti točne ciljeve bez pogađanja?
  • Jesu li vrijednosti tajni maskirane na svim putanjama čitanja?
  • Vraća li svaka neuspjela mutacija izlaz koji nije nula?
  • Mogu li dugotrajne operacije čekati terminalno stanje?
  • Jesu li destruktivne radnje blokirane bez eksplicitne potvrde?
  • Jesu li vjerodajnice ograničene i proslijeđene izvan promptova?
  • Može li se svaka mutacija pronaći u audit logu?
  • Postoji li testirani postupak rollbacka ili oporavka?
  • Mogu li se verzije skilla i izvršne datoteke međusobno razlikovati?
  • Razdvaja li završno izvješće činjenice od neizvjesnosti?

Odgovor „ne” zadatak je za dizajn, a ne za pisanje prompta. Autonomija u produkciji trebala bi rasti samo onoliko koliko rastu i temeljna jamstva.

Testirajte zaštitne mjere kroz slučajeve neuspjeha

Pregled nije potpun dok tim namjerno ne aktivira granične slučajeve. Pokrenite deploy s nevažećim tokenom, zatražite nepoznati cilj, dopustite da testni build ne uspije, postavite vrlo kratko vremensko ograničenje i pokušajte pokrenuti destruktivnu naredbu bez potvrde. Svaki bi slučaj trebao proizvesti izlazni kod koji nije nula, stabilan kod, nikakvo curenje tajni i nikakvu neželjenu mutaciju.

Ovi testovi pretvaraju zaštitne mjere za AI agente u produkciji u provjerljiva jamstva. Ponavljajte ih nakon ažuriranja CLI-ja ili policyja, kao što biste ponovili testove autentikacije i autorizacije za aplikaciju. Zaštitna mjera koja postoji samo u prezentaciji neće zaštititi nenadzirano izdanje.

Uvedite tijek rada u produkciju

Instalirajte skill, pregledajte njegove upute i testirajte svaku zaštitnu mjeru — uključujući blokiranu destruktivnu naredbu — prije izdavanja produkcijskog tokena.

npm install -g dockup-cli
dockup skill install

Prva naredba instalira CLI. Druga instalira odgovarajući Dockup skill za Claude Code i Codex. Započnite besplatno na app.dockup.ai.

Česta pitanja

Jesu li upute u promptu dovoljne da AI agent ostane siguran u produkciji?

Ne. Promptovi pomažu usmjeriti ponašanje, ali kritične kontrole poput maskiranja tajni, potvrde, autorizacije, izlaznih kodova i audit logiranja moraju se provoditi u alatu i na platformi.

Kako Dockup blokira destruktivne operacije?

Destruktivne naredbe odbijaju se bez eksplicitnog flaga --yes i vraćaju strukturirani kod needs_confirm, što agentu omogućuje da se zaustavi i zatraži odobrenje čovjeka.

Može li AI agent iz Dockupa čitati vrijednosti tajnih varijabli okruženja?

Pohranjene vrijednosti tajni maskirane su u izlazu. Agent može vidjeti ključ i oznaku tajne te zamijeniti vrijednost, ali ne prima pohranjenu tajnu.

Zašto su strukturirani kodovi pogrešaka važni za autonomiju?

Oni ograničavaju agenta na poznate grane oporavka, poput traženja autentikacije, otkrivanja točnog cilja, čitanja build logova ili traženja potvrde.

Kako bi tim trebao započeti s dodjelom pristupa produkciji?

Započnite operacijama samo za čitanje, zatim dopustite deploy na jedan cilj niskog rizika i proširite ovlasti na reverzibilnu konfiguraciju i oporavak tek kada agent dosljedno prijavljuje provjerljive dokaze.