AWS - API Gateway Enum
Last updated
Last updated
Leer & oefen AWS Hacking: Leer & oefen GCP Hacking:
AWS API Gateway is 'n omvattende diens wat deur Amazon Web Services (AWS) aangebied word, ontwerp vir ontwikkelaars om API's op 'n groot skaal te skep, te publiseer en te bestuur. Dit funksioneer as 'n toegangspunt tot 'n toepassing, wat ontwikkelaars toelaat om 'n raamwerk van reëls en prosedures op te stel. Hierdie raamwerk regeer die toegang wat eksterne gebruikers tot sekere data of funksies binne die toepassing het.
API Gateway stel jou in staat om te definieer hoe versoeke na jou API's hanteer moet word, en dit kan pasgemaakte API eindpunte met spesifieke metodes (bv. GET, POST, PUT, DELETE) en hulpbronne skep. Dit kan ook kliënt SDK's (Software Development Kits) genereer om dit vir ontwikkelaars makliker te maak om jou API's vanuit hul toepassings aan te roep.
HTTP API: Bou lae-latensie en koste-effektiewe REST API's met ingeboude funksies soos OIDC en OAuth2, en inheemse CORS-ondersteuning. Werk met die volgende: Lambda, HTTP agtergronde.
WebSocket API: Bou 'n WebSocket API met volgehoue verbindings vir regte tyd gebruiksgevalle soos klets toepassings of dashboards. Werk met die volgende: Lambda, HTTP, AWS Dienste.
REST API: Ontwikkel 'n REST API waar jy volledige beheer oor die versoek en antwoord het, saam met API bestuur vermoëns. Werk met die volgende: Lambda, HTTP, AWS Dienste.
REST API Privaat: Skep 'n REST API wat slegs vanaf binne 'n VPC toeganklik is.
Hulpbronne: In API Gateway is hulpbronne die komponente wat die struktuur van jou API vorm. Hulle verteenwoordig die verskillende paaie of eindpunte van jou API en ooreen met die verskillende aksies wat jou API ondersteun. 'n Hulpbron is elke metode (bv. GET, POST, PUT, DELETE) binne elke pad (/, of /users, of /user/{id}).
Fases: Fases in API Gateway verteenwoordig verskillende weergawes of omgewings van jou API, soos ontwikkeling, staging, of produksie. Jy kan fases gebruik om meervoudige weergawes van jou API gelyktydig te bestuur en te ontplooi, wat jou toelaat om nuwe funksies of foutoplossings te toets sonder om die produksie-omgewing te beïnvloed. Fases ondersteun ook fase veranderlikes, wat sleutel-waarde pare is wat gebruik kan word om die gedrag van jou API op grond van die huidige fase te konfigureer. Byvoorbeeld, jy kan fase veranderlikes gebruik om API versoeke na verskillende Lambda funksies of ander agtergrond dienste te lei, afhangende van die fase.
Die fase word aan die begin van die URL van die API Gateway eindpunt aangedui.
Outeurs: Outeurs in API Gateway is verantwoordelik vir die beheer van toegang tot jou API deur die identiteit van die oproeper te verifieer voordat die versoek voortgaan. Jy kan AWS Lambda funksies as pasgemaakte outeurs gebruik, wat jou toelaat om jou eie autentikasie en magtiging logika te implementeer. Wanneer 'n versoek inkom, stuur API Gateway die versoek se magtigingstoken na die Lambda outeur, wat die token verwerk en 'n IAM-beleid teruggee wat bepaal watter aksies die oproeper mag uitvoer. API Gateway ondersteun ook ingeboude outeurs, soos AWS Identiteit en Toegang Bestuur (IAM) en Amazon Cognito.
Hulpbronbeleid: 'n Hulpbronbeleid in API Gateway is 'n JSON dokument wat die toestemmings vir die toegang tot jou API definieer. Dit is soortgelyk aan 'n IAM-beleid, maar spesifiek aangepas vir API Gateway. Jy kan 'n hulpbronbeleid gebruik om te beheer wie jou API kan toegang, watter metodes hulle kan aanroep, en vanaf watter IP adresse of VPC's hulle kan aansluit. Hulpbronbeleide kan in kombinasie met outeurs gebruik word om fyn-gegradeerde toegangbeheer vir jou API te bied.
Om effektief te wees, moet die API weer ontplooi word nadat die hulpbronbeleid gewysig is.
Standaard is CloudWatch Logs af, Toegang Logging is af, en X-Ray tracing is ook af.
Let daarop dat in beide AWS API's om hulpbronne te enumereer (apigateway
en apigatewayv2
) die enigste toestemming wat jy nodig het en die enigste lees toestemming wat toegeken kan word is apigateway:GET
, met dit kan jy alles enumereer.
Dit is moontlik om hulpbronbeleide te gebruik om te definieer wie die API eindpunte kan bel.
In die volgende voorbeeld kan jy sien dat die aangegeven IP nie kan bel nie die eindpunt /resource_policy
via GET.
Dit is moontlik om te stel dat 'n metode binne 'n pad (n hulpbron) IAM-sertifisering benodig om dit te bel.
Wanneer dit gestel is, sal jy die fout {"message":"Missing Authentication Token"}
ontvang wanneer jy probeer om die eindpunt te bereik sonder enige owerheid.
Een maklike manier om die verwagte token deur die toepassing te genereer, is om curl te gebruik.
'n Ander manier is om die Authorization
tipe AWS Signature
binne Postman te gebruik.
Stel die accessKey en die SecretKey van die rekening wat jy wil gebruik in, en jy kan nou teen die API-eindpunt autentiseer.
Albei metodes sal 'n Authorization header genereer soos:
Let wel daarop dat in ander gevalle die Authorizer dalk sleg gekodeer is en net enigiets binne die Authorization header sal toelaat om die versteekte inhoud te sien.
Dit is moontlik om 'n lambda te gebruik wat op 'n gegewe token gebaseer is en 'n IAM-beleid sal **teruggee wat aandui of die gebruiker gemagtig is om die API-eindpunt aan te roep. Jy kan elke hulpbronmetode instel wat die outeur gaan gebruik.