Limitați autoritatea unui agent
TerminatDefiniți acțiunile, resursele și condițiile permise. Verificați permisiunile în afara modelului și separați implementarea de lansare.
Publicat de TaigaCum scriem
Verificați ce ați înțelesInstruiți un agent să editeze un singur branch, dar tokenul său poate face push pe branch-ul implicit. Care este limita efectivă?Faceți exercițiul
Ce veți învăța
- Exprimați o permisiune prin acțiune, resursă și condiție.
- Separați aprobarea sarcinii de autorizarea execuției.
- Testați dacă o acțiune interzisă este refuzată.
Descrieți sarcina înainte de a acorda acces
Un agent care citește cod are nevoie de altă autoritate decât unul care instalează un serviciu în mediu. Nu acordați ambele seturi de permisiuni doar pentru că același produs acceptă ambele acțiuni.
Folosiți trei elemente pentru definirea autorității: o acțiune, o resursă și o condiție. Pentru o corecție fictivă a unui raport, agentul poate scrie pe un singur branch de funcționalitate cât timp sarcina este activă. Poate citi fișierele aprobate din depozitul de cod. Nu poate modifica datele din producție sau regulile de protecție a depozitului.
| Operațiune necesară | Exemplu de limită |
|---|---|
| Inspectarea codului | Citirea depozitului de cod selectat |
| Executarea verificărilor | Folosirea unui mediu izolat cu date fictive de test |
| Pregătirea unei modificări | Scrierea pe branch-ul sarcinii |
| Solicitarea verificării | Deschiderea unui PR fără merge |
| Lansarea software-ului | Folosirea unui proces separat și protejat de instalare în mediu |
Aplicarea exactă a restricției depinde de instrument. Dacă un token nu poate exprima o restricție de branch, folosiți controale suplimentare ale depozitului de cod sau un serviciu de execuție. Documentați sincer autoritatea rămasă.
Impuneți limita în afara modelului
Un prompt nu este un sistem de control al accesului. Componenta de execuție trebuie să verifice acțiunea cerută și ținta în raport cu permisiunile actuale. Nu trebuie să accepte afirmația modelului că aprobarea există deja.
AWS recomandă permisiuni limitate și credențiale temporare pentru sarcinile de lucru potrivite. OWASP aplică agenților și instrumentelor lor un raționament similar privind privilegiile minime. Aceste principii trebuie implementate în sistemele efective de identitate și execuție. Ghidul AWS IAM, ghidul OWASP pentru agenți.
Folosiți credențiale cu durată scurtă unde sunt acceptate. Excludeți din mediu secretele fără legătură cu sarcina. O sarcină de citire a depozitului de cod nu trebuie să moștenească o parolă a bazei de date din producție din shell-ul dezvoltatorului.
Legați aprobarea de acțiunea efectivă
Aprobarea pregătirii unei modificări nu implică aprobarea instalării ei în mediu. Decizia de instalare trebuie să identifice artefactul, mediul țintă și condițiile relevante. Dacă acestea se schimbă, decizia anterioară poate să nu mai fie valabilă.
Luați în considerare un agent care propune o citire sigură din baza de date, apoi execută altă interogare după aprobare. Un mecanism util de aprobare verifică operațiunea care rulează efectiv. Un mesaj generic „continuați”, fără o țintă definită, poate ascunde diferența.
Separați și identitatea de capacitate. Notați persoana sau sarcina de lucru care a inițiat execuția. Verificați dacă identitatea inițiatoare încă are permisiune în momentul acțiunii. Eliminarea accesului unei persoane trebuie să aibă un efect explicit asupra lucrului aflat în coadă.
Testați un refuz și o întrerupere
Verificați mai mult decât calea reușită. Într-un mediu de testare izolat, încercați o acțiune în afara resursei permise. Confirmați că sistemul de execuție o respinge. Inspectați evenimentul de audit fără a înregistra credențiale.
Apoi testați anularea sau expirarea credențialelor. Stabiliți ce lucru se oprește imediat și ce operațiune se poate termina. Un buton de oprire nu inversează neapărat o acțiune care a ajuns deja în alt sistem.
Păstrați o consemnare scurtă a permisiunilor împreună cu sarcina. Includeți responsabilul, domeniul aprobat, controalele efective, testul de refuz și expirarea. Astfel, o verificare ulterioară este suficient de concretă pentru a îmbunătăți fluxul de lucru.
Faceți exercițiul
Definiți permisiunile unui agent care remediază un filtru de raport. Enumerați trei acțiuni permise și trei refuzate. Includeți depozitul de cod, branch-ul, mediul și expirarea. Descrieți cum testați fiecare refuz fără a modifica producția.
Descărcați fișa de lucru (Markdown)Debifarea acestei opțiuni șterge tot progresul salvat în acest browser.
Progresul rămâne în acest browser. Fără cont, fără urmărire.