# AWS - EMR Enum

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

## EMR

Le service Elastic MapReduce (EMR) d'AWS, à partir de la version 4.8.0, a introduit une fonctionnalité de **configuration de sécurité** qui améliore la protection des données en permettant aux utilisateurs de spécifier des paramètres de chiffrement pour les données au repos et en transit au sein des clusters EMR, qui sont des groupes évolutifs d'instances EC2 conçus pour traiter des frameworks de big data comme Apache Hadoop et Spark.

Les caractéristiques clés incluent :

- **Chiffrement par défaut du cluster** : Par défaut, les données au repos au sein d'un cluster ne sont pas chiffrées. Cependant, l'activation du chiffrement permet d'accéder à plusieurs fonctionnalités :
- **Configuration unifiée des clés Linux** : Chiffre les volumes de cluster EBS. Les utilisateurs peuvent opter pour le service de gestion des clés AWS (KMS) ou un fournisseur de clés personnalisé.
- **Chiffrement HDFS open-source** : Offre deux options de chiffrement pour Hadoop :
- RPC Hadoop sécurisé (Remote Procedure Call), défini sur la confidentialité, tirant parti de la couche de sécurité d'authentification simple.
- Le chiffrement de transfert de blocs HDFS, défini sur vrai, utilise l'algorithme AES-256.
- **Chiffrement en transit** : Se concentre sur la sécurisation des données lors du transfert. Les options incluent :
- **Transport Layer Security (TLS) open source** : Le chiffrement peut être activé en choisissant un fournisseur de certificats :
- **PEM** : Nécessite la création manuelle et le regroupement de certificats PEM dans un fichier zip, référencé depuis un bucket S3.
- **Personnalisé** : Implique l'ajout d'une classe Java personnalisée en tant que fournisseur de certificats qui fournit des artefacts de chiffrement.

Une fois qu'un fournisseur de certificats TLS est intégré dans la configuration de sécurité, les fonctionnalités de chiffrement spécifiques à l'application suivantes peuvent être activées, variant en fonction de la version EMR :

- **Hadoop** :
- Peut réduire le mélange chiffré en utilisant TLS.
- RPC Hadoop sécurisé avec la couche de sécurité d'authentification simple et le transfert de blocs HDFS avec AES-256 sont activés avec le chiffrement au repos.
- **Presto** (version EMR 5.6.0+) :
- La communication interne entre les nœuds Presto est sécurisée à l'aide de SSL et TLS.
- **Tez Shuffle Handler** :
- Utilise TLS pour le chiffrement.
- **Spark** :
- Emploie TLS pour le protocole Akka.
- Utilise la couche de sécurité d'authentification simple et 3DES pour le service de transfert de blocs.
- Le service de mélange externe est sécurisé avec la couche de sécurité d'authentification simple.

Ces fonctionnalités améliorent collectivement la posture de sécurité des clusters EMR, en particulier en ce qui concerne la protection des données lors des phases de stockage et de transmission.

#### Enumeration
```bash
aws emr list-clusters
aws emr describe-cluster --cluster-id <id>
aws emr list-instances --cluster-id <id>
aws emr list-instance-fleets --cluster-id <id>
aws emr list-steps --cluster-id <id>
aws emr list-notebook-executions
aws emr list-security-configurations
aws emr list-studios #Get studio URLs
```
#### Privesc

{{#ref}}
../aws-privilege-escalation/aws-emr-privesc.md
{{#endref}}

## Références

- [https://cloudacademy.com/course/domain-three-designing-secure-applications-and-architectures/elastic-mapreduce-emr-encryption-1/](https://cloudacademy.com/course/domain-three-designing-secure-applications-and-architectures/elastic-mapreduce-emr-encryption-1/)

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