Hvordan du kan administrere tillatelser med AWS Lambda -funksjonen

Hvordan du kan administrere tillatelser med AWS Lambda -funksjonen
“Når en lambda -funksjon opprettes, opprettes en standard IAM -rolle og knyttet til den. Denne IAM -rollen kalles utførelsesrolle og har begrensede tillatelser for å sette Lambda -logger i CloudWatch -logger. Ingen andre AWS -tjenester har heller ingen tillatelse til å påkalle lambda -funksjonen som standard. For å administrere disse tillatelsene, må du enten oppdatere IAM-rollen eller den ressursbaserte policyen.

IAM -rollen lar Lambda -funksjonen få tilgang til andre AWS -tjenester innen AWS -kontoen. På den annen side er den ressursbaserte policyen knyttet til lambda-funksjonen for å tillate andre AWS-tjenester innenfor samme eller forskjellige kontoer for å få tilgang til lambda-funksjonen. I denne bloggen vil vi se hvordan vi kan administrere Lambda-tillatelser ved å bruke IAM og ressursbaserte retningslinjer.”

Administrere tillatelser ved å bruke IAM -rollen

Som standard har IAM -rollen knyttet til lambda -funksjonen bare tilgang til å legge loggene til CloudWatch -logger. Du kan alltid oppdatere utførelsesrollen for å legge til ytterligere tillatelser til den. Hvis du vil få tilgang til S3 -bøtta eller vil utføre litt handling på et S3 -bøtteobjekt, trenger du S3 -bøtta og S3 -objektnivået i Lambda -utførelsesrollen. I denne delen av bloggen vil vi oppdatere IAM -rollen tillatelser for å la Lambda samhandle med S3 -bøtta.

Først av alt, naviger til AWS Lambda -konsollen og klikk på Lambda -funksjonen du vil oppdatere utførelsesrollen for. Klikk på konfigurasjon Tab på lambda -funksjonskonsollen. Velg deretter fra venstre sidepanel Tillatelser Tab, og den vil vise Lambda -utførelsesrollen der.

I IAM-rollen kan du enten legge til en AWS-styrt eller kundeadministrert policy, eller du kan legge til en inline-policy for å gi Lambda-funksjonen nødvendige tillatelser til å samhandle med andre AWS-tjenester.

Administrere tillatelse ved hjelp av ressursbasert policy

Ressursbaserte retningslinjer for Lambda-funksjonen gir tillatelser til andre AWS-tjenester innen samme eller forskjellige AWS-konto for å få tilgang til Lambda-funksjonen. Som standard er det ingen ressursbasert policy automatisk knyttet til Lambda-funksjonen, så ingen AWS-tjeneste kan få tilgang til Lambda-funksjonen. Du kan legge til og fjerne ressursbaserte retningslinjer når som helst til Lambda-funksjonen din. I denne bloggen vil vi legge til en ressursbasert policy til Lambda-funksjonen, som lar S3 påkalle Lambda-funksjonen.

For å legge til en ressursbasert policy til Lambda-funksjonen, klikker du først på Lambda-funksjonen og går til Tillatelser Fanen i lambda -funksjonen.

I Tillatelser Tab, bla nedover, så finner du en seksjon for ressursbaserte retningslinjer. Klikk på Legg til tillatelser knapp i Ressursbaserte policyerklæringer delen av konsollen for å legge til en ny ressursbasert policy til Lambda-funksjonen.

I den ressursbaserte policyen er det tre typer ressurser du kan gi tillatelse til Lambda-funksjonen.

  • Gi tillatelse til AWS -tjenester
  • Gi tillatelse til en annen AWS -konto
  • Gi tillatelser for å påkalle lambda -funksjon via URL

For denne demoen vil vi konfigurere en S3 -bøtte med samme konto for å påkalle lambda -funksjonen når et nytt S3 -objekt lastes opp til den. For denne konfigurasjonen, velg AWS -tjeneste og velg deretter S3 som tjenesten. Skriv inn AWS -konto -IDen som S3 -bøtta eksisterer, i.e., Din egen AWS -konto -ID. Etter å ha levert konto -IDen, må du gi ARN fra S3 -bøtta, som vil ha tillatelse til å påkalle lambda -funksjonen, og deretter velge Lambda: InvokeFunction Så handling som vi skal påkalle lambda -funksjonen fra S3 -bøtta.

Etter å ha lagt til all denne informasjonen, klikker du på lagringsknappen for å legge til den ressursbaserte policyen til Lambda-funksjonen. Du kan også se på JSON-formatet til den ressursbaserte policyen som er knyttet til Lambda-funksjonen.

Fra den ressursbaserte policy-delen i Tillatelser Tab, klikk på den nyopprettede ressursbaserte policyen, og den vil vise policyen i JSON-format.

Fjerne ressursbasert policy

Du kan fjerne den ressursbaserte policyen når du ikke trenger å la andre AWS-tjenester få tilgang til Lambda-funksjonen. Å holde den ressursbaserte policyen knyttet til en lambda-funksjon kan være skadelig da den gir andre AWS-tjenester tilgang til lambda-funksjonen.

For å fjerne den ressursbaserte policyen, gå til ressursbaserte uttalelser delen av Tillatelser Tab. Velg den ressursbaserte policyen du vil fjerne, og klikk på Slett knapp, og den vil slette den ressursbaserte policyen fra lambda-funksjonen.

Det vil be om bekreftelse før du fjerner den ressursbaserte policyen, og du kan bekrefte slettingen ved å klikke på slett knapp.

Konklusjon

I denne bloggen har vi studert hvordan vi skal håndtere tillatelse med AWS Lambda -funksjonen. Det er to typer tillatelser som kan tilordnes Lambda; Den ene er Lambda IAM-rollebaserte tillatelser som lar AWS Lambda få tilgang til andre AWS-tjenester, og den andre er ressursbaserte tillatelser som lar andre tjenester få tilgang til Lambda-funksjonen. I denne bloggen studerte vi forskjellen mellom begge typer retningslinjer og så hvordan vi kunne oppdatere begge retningslinjene for å gi tillatelser.