Omezte pravomoci agenta
DokončenoDefinujte povolené akce, prostředky a podmínky. Oprávnění ověřujte mimo model a oddělte implementaci od vydání.
Vydává TaigaJak píšeme
Ověřte si porozuměníAgentovi přikážete upravovat jednu větev, ale jeho token umožňuje push do výchozí větve. Co tvoří skutečnou hranici?Vypracovat cvičení
Co se naučíte
- Vyjádřit oprávnění pomocí akce, prostředku a podmínky.
- Oddělit schválení úkolu od oprávnění k provedení.
- Otestovat zamítnutí zakázané akce.
Před udělením přístupu popište úkol
Agent, který čte kód, potřebuje jiné pravomoci než agent, který nasazuje službu. Neudělujte obě sady oprávnění jen proto, že stejný produkt podporuje obě akce.
Pravomoc definujte třemi částmi: akcí, prostředkem a podmínkou. U fiktivní opravy sestavy může agent během aktivního úkolu zapisovat do jedné pracovní větve. Může číst schválené soubory repozitáře. Nesmí měnit produkční data ani pravidla ochrany repozitáře.
| Potřebná operace | Příklad omezení |
|---|---|
| Prozkoumat kód | Číst vybraný repozitář |
| Spustit kontroly | Použít izolované prostředí s fiktivními testovacími daty |
| Připravit změnu | Zapisovat do větve úkolu |
| Požádat o kontrolu | Otevřít PR bez jeho mergování |
| Vydat software | Použít samostatný chráněný proces nasazení |
Přesné vynucení závisí na nástroji. Pokud token neumí vyjádřit omezení na větev, použijte další ochrany repozitáře nebo službu provádění. Zbývající pravomoci popište poctivě.
Vynucujte limit mimo model
Prompt není systém řízení přístupu. Komponenta provádění musí porovnat požadovanou akci a cíl s aktuálními oprávněními. Nesmí přijmout tvrzení modelu, že schválení už existuje.
AWS doporučuje omezená oprávnění a dočasné přihlašovací údaje pro vhodné úlohy. OWASP uplatňuje podobný princip nejmenších oprávnění na agenty a jejich nástroje. Tyto principy je nutné implementovat ve skutečných systémech identity a provádění. Pokyny AWS IAM, pokyny OWASP pro agenty.
Kde je to podporované, používejte přihlašovací údaje s krátkou platností. Nesouvisející tajné údaje do prostředí nedávejte. Úkol pouze pro čtení repozitáře nemá zdědit heslo k produkční databázi ze shellu vývojáře.
Navažte schválení na skutečnou akci
Schválení přípravy změny neznamená schválení jejího nasazení. Rozhodnutí o nasazení má určit artefakt, cílové prostředí a relevantní podmínky. Pokud se změní, předchozí rozhodnutí už nemusí platit.
Představte si agenta, který navrhne bezpečné čtení databáze, ale po schválení provede jiný dotaz. Užitečný schvalovací mechanismus kontroluje operaci, která se skutečně spustí. Obecná zpráva „pokračuj“ bez definovaného cíle může tento rozdíl skrýt.
Oddělte také identitu od schopností. Zaznamenejte, který člověk nebo úloha běh zahájili. Ověřte, že tato identita má oprávnění i v okamžiku akce. Odebrání přístupu člověku má mít výslovně definovaný účinek na práci ve frontě.
Otestujte zamítnutí a přerušení
Ověřujte více než úspěšný průběh. V izolovaném testovacím prostředí zkuste akci mimo povolený prostředek. Potvrďte, že ji systém provádění odmítne. Prozkoumejte auditní událost bez zaznamenávání přihlašovacích údajů.
Potom otestujte zrušení nebo vypršení přihlašovacích údajů. Zjistěte, která práce se zastaví okamžitě a která operace může doběhnout. Tlačítko zastavení nemusí zvrátit akci, která už dorazila do jiného systému.
U úkolu uchovávejte krátký záznam oprávnění. Zahrňte odpovědnou osobu, schválený rozsah, skutečná opatření, test zamítnutí a konec platnosti. Pozdější kontrola pak bude dost konkrétní ke zlepšení postupu.
Vypracovat cvičení
Definujte oprávnění agenta, který opravuje filtr sestavy. Uveďte tři povolené a tři zakázané akce. Zahrňte repozitář, větev, prostředí a konec platnosti. Popište, jak otestovat každé zamítnutí bez změn v produkci.
Stáhnout pracovní list (Markdown)Zrušení této volby smaže veškerý postup uložený v tomto prohlížeči.
Postup zůstává v tomto prohlížeči. Bez účtu a sledování.