Læringssti 03Lektion 2 / 6

Begræns en agents bemyndigelse

Definér tilladte handlinger, ressourcer og betingelser. Kontrollér rettigheder uden for modellen, og adskil implementering fra release.

Praktisk9 minReviewet

Udgivet af Sådan skriver vi

Det lærer du

  • Beskriv en rettighed som en handling, en ressource og en betingelse.
  • Skeln mellem godkendelse af opgaven og tilladelse til udførelse.
  • Test, at en forbudt handling bliver afvist.

Beskriv opgaven, før du giver adgang

En agent, der læser kode, har brug for anden bemyndigelse end en agent, der udruller en tjeneste. Tildel ikke begge sæt rettigheder, blot fordi samme produkt understøtter begge handlinger.

Definér bemyndigelsen med tre dele: en handling, en ressource og en betingelse. Ved en fiktiv rapportrettelse må agenten skrive til én feature branch, mens opgaven er aktiv. Den må læse godkendte repositoryfiler. Den må ikke ændre produktionsdata eller repositoryets beskyttelsesregler.

Nødvendig handlingEksempel på grænse
Undersøge kodeLæse det valgte repository
Køre kontrollerBruge et isoleret miljø med fiktive testdata
Forberede en ændringSkrive til opgavens branch
Anmode om reviewOprette en PR uden at merge den
Udgive softwareBruge en særskilt, beskyttet proces til udrulning

Den præcise håndhævelse afhænger af værktøjet. Hvis et token ikke kan udtrykke en branchbegrænsning, skal du bruge yderligere repositorykontroller eller en udførelsestjeneste. Dokumentér den resterende bemyndigelse ærligt.

Håndhæv grænsen uden for modellen

En prompt er ikke et adgangskontrolsystem. Den udførende komponent skal kontrollere den anmodede handling og målressource mod de aktuelle rettigheder. Den må ikke acceptere modellens påstand om, at godkendelsen allerede findes.

AWS anbefaler begrænsede rettigheder og midlertidige adgangsoplysninger til relevante workloads. OWASP anvender tilsvarende principper om mindst mulige rettigheder på agenter og deres værktøjer. Principperne skal implementeres i de faktiske identitets- og udførelsessystemer. AWS IAM-vejledning, OWASP’s agentvejledning.

Brug kortlivede adgangsoplysninger, hvor det understøttes. Hold uvedkommende secrets ude af miljøet. En læseopgave i et repository bør ikke arve en adgangskode til produktionsdatabasen fra udviklerens shell.

Bind godkendelsen til den faktiske handling

Godkendelse til at forberede en ændring indebærer ikke godkendelse til at udrulle den. En udrulningsbeslutning skal identificere artefaktet, målmiljøet og de relevante betingelser. Hvis de ændres, gælder den tidligere beslutning måske ikke længere.

Overvej en agent, der foreslår en sikker databaselæsning og efter godkendelse udfører en anden forespørgsel. En brugbar godkendelsesmekanisme kontrollerer den handling, der faktisk udføres. En generel »fortsæt«-besked uden et defineret mål kan skjule forskellen.

Skeln også mellem identitet og evner. Registrér, hvilken person eller workload der startede kørslen. Kontrollér, at den startende identitet stadig har tilladelse, når handlingen udføres. Fjernelse af en persons adgang skal have en udtrykkelig virkning på arbejde i kø.

Test en afvisning og en afbrydelse

Kontrollér mere end det vellykkede forløb. Forsøg i et isoleret testmiljø en handling uden for den tilladte ressource. Bekræft, at udførelsessystemet afviser den. Undersøg audithændelsen uden at registrere adgangsoplysninger.

Test derefter annullering eller udløb af adgangsoplysninger. Afklar, hvilket arbejde der stopper straks, og hvilken handling der kan færdiggøres. En stopknap tilbagefører ikke nødvendigvis en handling, som allerede har nået et andet system.

Bevar en kort rettighedsoversigt sammen med opgaven. Medtag den ansvarlige, godkendt omfang, faktiske kontroller, afvisningstest og udløb. Det gør et senere review konkret nok til at forbedre arbejdsgangen.

Lav øvelsen

Definér rettigheder for en agent, der retter et rapportfilter. Angiv tre tilladte og tre afviste handlinger. Medtag repository, branch, miljø og udløb. Beskriv, hvordan hver afvisning kan testes uden at ændre produktion.

Download arbejdsark (Markdown)

Kontrollér din forståelse

Du instruerer en agent om at redigere én branch, men dens token kan pushe til standardbranchen. Hvad er den reelle grænse?

Kilder og videre læsning

Relateret læsning fra Taiga