# AWS - DataPipeline, CodePipeline & CodeCommit Enum

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

## DataPipeline

AWS Data Pipeline is ontwerp om die **toegang, transformasie, en doeltreffende oordrag** van data op skaal te fasiliteer. Dit laat die volgende operasies toe:

1. **Toegang tot Jou Data Waar Dit Gestoor Is**: Data wat in verskeie AWS-dienste woon, kan naatloos toeganklik gemaak word.
2. **Transformeer en Verwerk op Skaal**: Grootmaat data verwerking en transformasie take word doeltreffend hanteer.
3. **Doeltreffend Oordrag van Resultate**: Die verwerkte data kan doeltreffend oorgedra word na verskeie AWS-dienste insluitend:
- Amazon S3
- Amazon RDS
- Amazon DynamoDB
- Amazon EMR

In wese stroomlyn AWS Data Pipeline die beweging en verwerking van data tussen verskillende AWS rekenaar- en stoor dienste, sowel as plaaslike databronne, op spesifieke tydperke.

### Enumeration
```bash
aws datapipeline list-pipelines
aws datapipeline describe-pipelines --pipeline-ids <ID>
aws datapipeline list-runs --pipeline-id <ID>
aws datapipeline get-pipeline-definition --pipeline-id <ID>
```
### Privesc

In die volgende bladsy kan jy kyk hoe om **datapipeline-toestemmings te misbruik om voorregte te verhoog**:

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

## CodePipeline

AWS CodePipeline is 'n volledig bestuurde **deurlopende afleweringsdiens** wat jou help om **jou vrystellingspype te outomatiseer** vir vinnige en betroubare toepassings- en infrastruktuuropdaterings. CodePipeline outomatiseer die **bou, toets, en ontplooi fases** van jou vrystellingsproses elke keer daar 'n kodeverandering is, gebaseer op die vrystellingsmodel wat jy definieer.

### Enumeration
```bash
aws codepipeline list-pipelines
aws codepipeline get-pipeline --name <pipeline_name>
aws codepipeline list-action-executions --pipeline-name <pl_name>
aws codepipeline list-pipeline-executions --pipeline-name <pl_name>
aws codepipeline list-webhooks
aws codepipeline get-pipeline-state --name <pipeline_name>
```
### Privesc

In die volgende bladsy kan jy kyk hoe om **codepipeline toestemmings te misbruik om voorregte te verhoog**:

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

## CodeCommit

Dit is 'n **weergawebeheerdiens**, wat gehos en ten volle bestuur word deur Amazon, wat gebruik kan word om data (dokumente, binêre lêers, bronkode) privaat te stoor en dit in die wolk te bestuur.

Dit **elimineer** die vereiste dat die gebruiker Git moet ken en **hulle eie bronbeheerstelsel moet bestuur** of bekommerd wees oor die skaal van hul infrastruktuur. Codecommit ondersteun al die standaard **funksies wat in Git gevind kan word**, wat beteken dit werk moeiteloos saam met die gebruiker se huidige Git-gebaseerde gereedskap.

### Enumeration
```bash
# Repos
aws codecommit list-repositories
aws codecommit get-repository --repository-name <name>
aws codecommit get-repository-triggers --repository-name <name>
aws codecommit list-branches --repository-name <name>
aws codecommit list-pull-requests --repository-name <name>

# Approval rules
aws codecommit list-approval-rule-templates
aws codecommit get-approval-rule-template --approval-rule-template-name <name>
aws codecommit list-associated-approval-rule-templates-for-repository --repository-name <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 <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 <username> --ssh-public-key-id <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://<SSH-KEY-ID>@git-codecommit.<REGION>.amazonaws.com/v1/repos/<repo-name>
```
## Verwysings

- [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}}
