mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 07:00:38 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# AWS - API Gateway Enum
|
||||
# AWS - Enumération de l'API Gateway
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
### Informations de base
|
||||
|
||||
AWS API Gateway est un service complet proposé par Amazon Web Services (AWS) conçu pour les développeurs afin de **créer, publier et superviser des API à grande échelle**. Il fonctionne comme un point d'entrée pour une application, permettant aux développeurs d'établir un cadre de règles et de procédures. Ce cadre régit l'accès que les utilisateurs externes ont à certaines données ou fonctionnalités au sein de l'application.
|
||||
AWS API Gateway est un service complet proposé par Amazon Web Services (AWS) conçu pour les développeurs afin de **créer, publier et superviser des API à grande échelle**. Il fonctionne comme un point d'entrée pour une application, permettant aux développeurs d'établir un cadre de règles et de procédures. Ce cadre régit l'accès des utilisateurs externes à certaines données ou fonctionnalités au sein de l'application.
|
||||
|
||||
API Gateway vous permet de définir **comment les requêtes à vos API doivent être traitées**, et il peut créer des points de terminaison API personnalisés avec des méthodes spécifiques (par exemple, GET, POST, PUT, DELETE) et des ressources. Il peut également générer des SDK clients (kits de développement logiciel) pour faciliter l'appel de vos API depuis leurs applications.
|
||||
|
||||
### Types de passerelles API
|
||||
### Types d'API Gateways
|
||||
|
||||
- **HTTP API** : Créez des API REST à faible latence et rentables avec des fonctionnalités intégrées telles que OIDC et OAuth2, et un support natif CORS. Fonctionne avec les éléments suivants : Lambda, backends HTTP.
|
||||
- **WebSocket API** : Créez une API WebSocket utilisant des connexions persistantes pour des cas d'utilisation en temps réel tels que des applications de chat ou des tableaux de bord. Fonctionne avec les éléments suivants : Lambda, HTTP, services AWS.
|
||||
- **REST API** : Développez une API REST où vous avez un contrôle total sur la requête et la réponse ainsi que sur les capacités de gestion de l'API. Fonctionne avec les éléments suivants : Lambda, HTTP, services AWS.
|
||||
- **REST API Privée** : Créez une API REST qui n'est accessible que depuis un VPC.
|
||||
- **REST API Privée** : Créez une API REST qui n'est accessible que depuis l'intérieur d'un VPC.
|
||||
|
||||
### Composants principaux de l'API Gateway
|
||||
|
||||
@@ -23,12 +23,12 @@ API Gateway vous permet de définir **comment les requêtes à vos API doivent
|
||||
2. **Étapes** : Les étapes dans API Gateway représentent **différentes versions ou environnements** de votre API, tels que développement, staging ou production. Vous pouvez utiliser des étapes pour gérer et déployer **plusieurs versions de votre API simultanément**, vous permettant de tester de nouvelles fonctionnalités ou des corrections de bogues sans affecter l'environnement de production. Les étapes **supportent également les variables d'étape**, qui sont des paires clé-valeur pouvant être utilisées pour configurer le comportement de votre API en fonction de l'étape actuelle. Par exemple, vous pourriez utiliser des variables d'étape pour diriger les requêtes API vers différentes fonctions Lambda ou d'autres services backend en fonction de l'étape.
|
||||
- L'étape est indiquée au début de l'URL du point de terminaison de l'API Gateway.
|
||||
3. **Autoriseurs** : Les autoriseurs dans API Gateway sont responsables de **contrôler l'accès à votre API** en vérifiant l'identité de l'appelant avant de permettre à la requête de se poursuivre. Vous pouvez utiliser **des fonctions AWS Lambda** comme autoriseurs personnalisés, ce qui vous permet de mettre en œuvre votre propre logique d'authentification et d'autorisation. Lorsqu'une requête arrive, API Gateway passe le jeton d'autorisation de la requête à l'autoriseur Lambda, qui traite le jeton et renvoie une politique IAM qui détermine quelles actions l'appelant est autorisé à effectuer. API Gateway prend également en charge **des autoriseurs intégrés**, tels que **AWS Identity and Access Management (IAM)** et **Amazon Cognito**.
|
||||
4. **Politique de ressource** : Une politique de ressource dans API Gateway est un document JSON qui **définit les autorisations pour accéder à votre API**. Elle est similaire à une politique IAM mais spécifiquement adaptée à API Gateway. Vous pouvez utiliser une politique de ressource pour contrôler qui peut accéder à votre API, quelles méthodes ils peuvent appeler, et depuis quelles adresses IP ou VPCs ils peuvent se connecter. **Les politiques de ressource peuvent être utilisées en combinaison avec des autoriseurs** pour fournir un contrôle d'accès granulaire pour votre API.
|
||||
- Afin de prendre effet, l'API doit être **déployée à nouveau après** que la politique de ressource a été modifiée.
|
||||
4. **Politique de ressource** : Une politique de ressource dans API Gateway est un document JSON qui **définit les autorisations pour accéder à votre API**. Elle est similaire à une politique IAM mais spécifiquement adaptée à API Gateway. Vous pouvez utiliser une politique de ressource pour contrôler qui peut accéder à votre API, quelles méthodes elles peuvent appeler, et depuis quelles adresses IP ou VPC elles peuvent se connecter. **Les politiques de ressource peuvent être utilisées en combinaison avec des autoriseurs** pour fournir un contrôle d'accès granulaire pour votre API.
|
||||
- Afin de rendre l'effet, l'API doit être **déployée à nouveau après** que la politique de ressource a été modifiée.
|
||||
|
||||
### Journalisation
|
||||
|
||||
Par défaut, **CloudWatch Logs** sont **désactivés**, **l'enregistrement des accès** est **désactivé**, et **le traçage X-Ray** est également **désactivé**.
|
||||
Par défaut, **CloudWatch Logs** sont **désactivés**, **l'enregistrement d'accès** est **désactivé**, et **le traçage X-Ray** est également **désactivé**.
|
||||
|
||||
### Énumération
|
||||
|
||||
@@ -155,9 +155,9 @@ Les deux méthodes généreront un **Authorization** **header** tel que :
|
||||
```
|
||||
AWS4-HMAC-SHA256 Credential=AKIAYY7XU6ECUDOTWB7W/20220726/us-east-1/execute-api/aws4_request, SignedHeaders=host;x-amz-date, Signature=9f35579fa85c0d089c5a939e3d711362e92641e8c14cc571df8c71b4bc62a5c2
|
||||
```
|
||||
Notez que dans d'autres cas, l'**Authorizer** pourrait avoir été **mal codé** et envoyer **quoi que ce soit** dans l'**Authorization header** permettra **de voir le contenu caché**.
|
||||
Notez que dans d'autres cas, l'**Authorizer** pourrait avoir été **mal codé** et envoyer simplement **n'importe quoi** dans l'**Authorization header** permettra **de voir le contenu caché**.
|
||||
|
||||
### Request Signing Using Python
|
||||
### Signature de la requête en utilisant Python
|
||||
```python
|
||||
|
||||
pip install requests
|
||||
@@ -184,14 +184,14 @@ response = requests.get(url, auth=awsauth)
|
||||
print(response.text)
|
||||
|
||||
```
|
||||
### Custom Lambda Authorizer
|
||||
### Authorisateur Lambda Personnalisé
|
||||
|
||||
Il est possible d'utiliser une lambda qui, en fonction d'un token donné, **retournera une politique IAM** indiquant si l'utilisateur est **autorisé à appeler le point de terminaison de l'API**.\
|
||||
Vous pouvez définir chaque méthode de ressource qui utilisera l'autoriseur.
|
||||
Vous pouvez définir chaque méthode de ressource qui utilisera l'auteur.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Exemple de code de l'autoriseur Lambda</summary>
|
||||
<summary>Exemple de Code d'Authorisateur Lambda</summary>
|
||||
```python
|
||||
import json
|
||||
|
||||
|
||||
Reference in New Issue
Block a user