# AWS - DataPipeline, CodePipeline & CodeCommit Enum {{#include ../../../banners/hacktricks-training.md}} ## DataPipeline AWS Data Pipeline est conçu pour faciliter l'**accès, la transformation et le transfert efficace** de données à grande échelle. Il permet d'effectuer les opérations suivantes : 1. **Accédez à vos données où elles sont stockées** : Les données résidant dans divers services AWS peuvent être accessibles sans effort. 2. **Transformez et traitez à grande échelle** : Les tâches de traitement et de transformation de données à grande échelle sont gérées efficacement. 3. **Transférez les résultats efficacement** : Les données traitées peuvent être transférées efficacement vers plusieurs services AWS, y compris : - Amazon S3 - Amazon RDS - Amazon DynamoDB - Amazon EMR En essence, AWS Data Pipeline rationalise le mouvement et le traitement des données entre différents services de calcul et de stockage AWS, ainsi que des sources de données sur site, à des intervalles spécifiés. ### Enumeration ```bash aws datapipeline list-pipelines aws datapipeline describe-pipelines --pipeline-ids aws datapipeline list-runs --pipeline-id aws datapipeline get-pipeline-definition --pipeline-id ``` ### Privesc Dans la page suivante, vous pouvez vérifier comment **abuser des permissions de datapipeline pour escalader les privilèges** : {{#ref}} ../aws-privilege-escalation/aws-datapipeline-privesc/README.md {{#endref}} ## CodePipeline AWS CodePipeline est un **service de livraison continue** entièrement géré qui vous aide à **automatiser vos pipelines de publication** pour des mises à jour d'application et d'infrastructure rapides et fiables. CodePipeline automatise les **phases de construction, de test et de déploiement** de votre processus de publication chaque fois qu'il y a un changement de code, en fonction du modèle de publication que vous définissez. ### Enumeration ```bash aws codepipeline list-pipelines aws codepipeline get-pipeline --name aws codepipeline list-action-executions --pipeline-name aws codepipeline list-pipeline-executions --pipeline-name aws codepipeline list-webhooks aws codepipeline get-pipeline-state --name ``` ### Privesc Dans la page suivante, vous pouvez vérifier comment **abuser des permissions de codepipeline pour escalader les privilèges** : {{#ref}} ../aws-privilege-escalation/aws-codepipeline-privesc/README.md {{#endref}} ## CodeCommit C'est un **service de contrôle de version**, qui est hébergé et entièrement géré par Amazon, et qui peut être utilisé pour stocker des données (documents, fichiers binaires, code source) de manière privée et les gérer dans le cloud. Il **élimine** la nécessité pour l'utilisateur de connaître Git et **de gérer son propre système de contrôle de version** ou de s'inquiéter de l'augmentation ou de la réduction de son infrastructure. Codecommit prend en charge toutes les **fonctionnalités standard que l'on peut trouver dans Git**, ce qui signifie qu'il fonctionne sans effort avec les outils basés sur Git de l'utilisateur. ### Enumeration ```bash # Repos aws codecommit list-repositories aws codecommit get-repository --repository-name aws codecommit get-repository-triggers --repository-name aws codecommit list-branches --repository-name aws codecommit list-pull-requests --repository-name # Approval rules aws codecommit list-approval-rule-templates aws codecommit get-approval-rule-template --approval-rule-template-name aws codecommit list-associated-approval-rule-templates-for-repository --repository-name # Get & Put files ## Get a file aws codecommit get-file --repository-name backend-api --file-path app.py ## Put a file aws codecommit get-branch --repository-name backend-api --branch-name master aws codecommit put-file --repository-name backend-api --branch-name master --file-content fileb://./app.py --file-path app.py --parent-commit-id # SSH Keys & Clone repo ## Get codecommit keys aws iam list-ssh-public-keys #User keys for CodeCommit aws iam get-ssh-public-key --user-name --ssh-public-key-id --encoding SSH #Get public key with metadata # The previous command will give you the fingerprint of the ssh key # With the next command you can check the fingerprint of an ssh key and compare them ssh-keygen -f .ssh/id_rsa -l -E md5 # Clone repo git clone ssh://@git-codecommit..amazonaws.com/v1/repos/ ``` ## Références - [https://docs.aws.amazon.com/whitepapers/latest/aws-overview/analytics.html](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/analytics.html) {{#include ../../../banners/hacktricks-training.md}}