Lärstig 03Lektion 2 / 6

Begränsa en agents befogenheter

Definiera tillåtna åtgärder, resurser och villkor. Verifiera behörigheter utanför modellen och skilj implementation från release.

Praktisk nivå9 minGranskad

Publicerad av Så skriver vi

Det här lär du dig

  • Beskriv en behörighet med åtgärd, resurs och villkor.
  • Skilj godkännande av uppgiften från tillstånd att utföra den.
  • Testa att en förbjuden åtgärd nekas.

Beskriv uppgiften innan du ger åtkomst

En agent som läser kod behöver andra befogenheter än en agent som driftsätter en tjänst. Ge inte båda uppsättningarna behörigheter bara för att samma produkt stöder båda åtgärderna.

Definiera befogenheten i tre delar: åtgärd, resurs och villkor. För en fiktiv rapporträttning får agenten skriva till en funktionsbranch medan uppgiften är aktiv. Den får läsa godkända repositoryfiler. Den får inte ändra produktionsdata eller repositoryts skyddsregler.

Nödvändig operationExempel på gräns
Granska kodLäs det valda repositoryt
Köra kontrollerAnvänd en isolerad miljö med fiktiva testdata
Förbereda en ändringSkriv till uppgiftens branch
Begära granskningÖppna en PR utan att merga den
Ge ut programvaraAnvänd en separat skyddad driftsättningsprocess

Den exakta kontrollen beror på verktyget. Om en token inte kan uttrycka en branchbegränsning ska du använda ytterligare repositorykontroller eller en exekveringstjänst. Beskriv kvarvarande befogenheter ärligt.

Upprätthåll gränsen utanför modellen

En prompt är inget åtkomstkontrollsystem. Komponenten som utför åtgärden måste kontrollera begärd åtgärd och mål mot aktuella behörigheter. Den får inte acceptera modellens påstående om att godkännande redan finns.

AWS rekommenderar begränsade behörigheter och tillfälliga autentiseringsuppgifter för lämpliga arbetslaster. OWASP tillämpar liknande resonemang om minsta behörighet på agenter och verktyg. Principerna måste införas i faktiska identitets- och exekveringssystem. AWS IAM-vägledning, OWASP:s agentvägledning.

Använd kortlivade autentiseringsuppgifter där det stöds. Håll orelaterade hemligheter utanför miljön. En skrivskyddad repositoryuppgift ska inte ärva ett produktionsdatabaslösenord från utvecklarens shell.

Knyt godkännandet till den faktiska åtgärden

Godkännande att förbereda en ändring innebär inte godkännande att driftsätta den. Ett driftsättningsbeslut ska identifiera artefakt, målmiljö och relevanta villkor. Om dessa ändras kanske det tidigare beslutet inte längre gäller.

Tänk dig en agent som föreslår en säker databasläsning men kör en annan fråga efter godkännandet. En användbar godkännandemekanism kontrollerar operationen som faktiskt körs. Ett allmänt ”fortsätt” utan definierat mål kan dölja skillnaden.

Skilj också identitet från förmåga. Registrera vilken person eller arbetslast som startade körningen. Verifiera att initiativtagarens identitet fortfarande har behörighet när åtgärden utförs. Att ta bort en persons åtkomst ska ha en uttrycklig effekt på köat arbete.

Testa ett nekande och ett avbrott

Verifiera mer än den lyckade vägen. Försök utföra en åtgärd utanför tillåten resurs i en isolerad testmiljö. Bekräfta att exekveringssystemet avvisar den. Granska revisionshändelsen utan att registrera autentiseringsuppgifter.

Testa sedan avbrytning eller utgångna autentiseringsuppgifter. Fastställ vilket arbete som stannar direkt och vilken operation som kan slutföras. En stoppknapp återställer inte nödvändigtvis en åtgärd som redan nått ett annat system.

Behåll ett kort behörighetsunderlag med uppgiften. Ta med ansvarig, godkänt omfång, faktiska kontroller, nekandetest och giltighetstid. Det gör en senare granskning tillräckligt konkret för att förbättra arbetsflödet.

Gör övningen

Definiera behörigheter för en agent som rättar ett rapportfilter. Lista tre tillåtna och tre nekade åtgärder. Ta med repository, branch, miljö och giltighetstid. Beskriv hur varje nekande kan testas utan produktionsändringar.

Ladda ned övningsblad (Markdown)

Kontrollera din förståelse

Du instruerar en agent att redigera en branch, men dess token kan pusha till standardbranchen. Vilken är den faktiska gränsen?

Källor och vidare läsning

Relaterad läsning från Taiga