Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/

This commit is contained in:
Translator
2025-01-02 01:25:21 +00:00
parent 8fb73b8cf9
commit 154465e69f
229 changed files with 2745 additions and 2828 deletions

View File

@@ -4,43 +4,43 @@
## Step Functions
AWS Step Functions is 'n werksvloei-diens wat jou in staat stel om verskeie AWS-dienste in serverless werksvloeie te koördineer en te orkestreer. Deur AWS Step Functions te gebruik, kan jy werksvloeie ontwerp en uitvoer wat verskillende AWS-dienste soos AWS Lambda, Amazon S3, Amazon DynamoDB, en vele meer, in 'n reeks stappe verbind. Hierdie orkestrasiediens bied 'n visuele werksvloei-koppelvlak en bied **state machine** vermoëns, wat jou toelaat om elke stap van die werksvloei op 'n deklaratiewe manier te definieer met behulp van JSON-gebaseerde **Amazon States Language** (ASL).
AWS Step Functions is 'n werksvloei-diens wat jou in staat stel om verskeie AWS-dienste in serverless werksvloeie te koördineer en te orkestreer. Deur AWS Step Functions te gebruik, kan jy werksvloeie ontwerp en uitvoer wat verskeie AWS-dienste soos AWS Lambda, Amazon S3, Amazon DynamoDB, en vele meer, in 'n volgorde van stappe verbind. Hierdie orkestrasiediens bied 'n visuele werksvloei-koppelvlak en bied **state machine** vermoëns, wat jou toelaat om elke stap van die werksvloei op 'n deklaratiewe manier te definieer met behulp van JSON-gebaseerde **Amazon States Language** (ASL).
## Key concepts
## Sleutelkonsepte
### Standard vs. Express Workflows
### Standaard vs. Express Werksvloeie
AWS Step Functions bied twee tipes **state machine workflows**: Standaard en Uitdrukking.
AWS Step Functions bied twee tipes **state machine workflows**: Standaard en Express.
- **Standard Workflow**: Hierdie standaard werksvloei tipe is ontwerp vir langlopende, duursame, en auditeerbare prosesse. Dit ondersteun **exactly-once execution**, wat verseker dat take slegs een keer uitgevoer word tensy herhalings gespesifiseer word. Dit is ideaal vir werksvloeie wat gedetailleerde uitvoeringsgeskiedenis benodig en kan tot een jaar lank loop.
- **Express Workflow**: Hierdie tipe is ideaal vir hoë-volume, kortduur take, wat tot vyf minute duur. Hulle ondersteun **at-least-once execution**, geskik vir idempotente take soos data verwerking. Hierdie werksvloeie is geoptimaliseer vir koste en prestasie, en hef koste gebaseer op uitvoerings, duur, en geheuegebruik.
- **Standaard Werksvloei**: Hierdie standaard werksvloei tipe is ontwerp vir langlopende, duursame, en auditeerbare prosesse. Dit ondersteun **exactly-once execution**, wat verseker dat take slegs een keer uitgevoer word tensy herhalings gespesifiseer word. Dit is ideaal vir werksvloeie wat gedetailleerde uitvoeringsgeskiedenis benodig en kan tot een jaar lank loop.
- **Express Werksvloei**: Hierdie tipe is ideaal vir hoë-volume, kort duur take, wat tot vyf minute kan loop. Hulle ondersteun **at-least-once execution**, geskik vir idempotente take soos data verwerking. Hierdie werksvloeie is geoptimaliseer vir koste en prestasie, en hef fooie gebaseer op uitvoerings, duur, en geheuegebruik.
### States
### State
States is die essensiële eenhede van state machines. Hulle definieer die individuele stappe binne 'n werksvloei, en kan 'n verskeidenheid funksies uitvoer, afhangende van sy tipe:
State is die essensiële eenhede van state machines. Hulle definieer die individuele stappe binne 'n werksvloei, en kan 'n verskeidenheid funksies uitvoer, afhangende van sy tipe:
- **Task:** Voer 'n werk uit, dikwels met 'n AWS-diens soos Lambda.
- **Choice:** Neem besluite gebaseer op invoer.
- **Fail/Succeed:** Eindig die uitvoering met 'n mislukking of sukses.
- **Pass:** Gee invoer aan uitvoer of voeg data in.
- **Wait:** Vertraag uitvoering vir 'n bepaalde tyd.
- **Taak:** Voer 'n werk uit, dikwels met 'n AWS-diens soos Lambda.
- **Keuse:** Neem besluite gebaseer op insette.
- **Misluk/Slaag:** Eindig die uitvoering met 'n mislukking of sukses.
- **Oorgang:** Gee insette aan uitsette of voeg data in.
- **Wag:** Vertraag uitvoering vir 'n bepaalde tyd.
- **Parallel:** Begin parallelle takke.
- **Map:** Dinamies herhaal stappe oor items.
- **Kaart:** Dinamies herhaal stappe oor items.
### Task
### Taak
'n **Task** state verteenwoordig 'n enkele eenheid van werk wat deur 'n state machine uitgevoer word. Take kan verskeie hulpbronne aanroep, insluitend aktiwiteite, Lambda funksies, AWS dienste, of derdeparty API's.
'n **Taak** state verteenwoordig 'n enkele eenheid van werk wat deur 'n state machine uitgevoer word. Take kan verskeie hulpbronne aanroep, insluitend aktiwiteite, Lambda funksies, AWS dienste, of derdeparty API's.
- **Activities**: Pasgemaakte werkers wat jy bestuur, geskik vir langlopende prosesse.
- **Aktiwiteite**: Pasgemaakte werkers wat jy bestuur, geskik vir langlopende prosesse.
- Hulpbron: **`arn:aws:states:region:account:activity:name`**.
- **Lambda Functions**: Voer AWS Lambda funksies uit.
- **Lambda Funksies**: Voer AWS Lambda funksies uit.
- Hulpbron: **`arn:aws:lambda:region:account:function:function-name`**.
- **AWS Services**: Integreer direk met ander AWS dienste, soos DynamoDB of S3.
- **AWS Dienste**: Integreer direk met ander AWS dienste, soos DynamoDB of S3.
- Hulpbron: **`arn:partition:states:region:account:servicename:APIname`**.
- **HTTP Task**: Roep derdeparty API's aan.
- **HTTP Taak**: Roep derdeparty API's aan.
- Hulpbron veld: **`arn:aws:states:::http:invoke`**. Dan moet jy die API eindpunt konfigurasie besonderhede verskaf, soos die API URL, metode, en outentikasie besonderhede.
Die volgende voorbeeld toon 'n Task state definisie wat 'n Lambda funksie genaamd HelloWorld aanroep:
Die volgende voorbeeld toon 'n Taak state definisie wat 'n Lambda funksie genaamd HelloWorld aanroep:
```json
"HelloWorld": {
"Type": "Task",
@@ -56,8 +56,8 @@ Die volgende voorbeeld toon 'n Task state definisie wat 'n Lambda funksie genaam
'n **Keuse** toestand voeg voorwaardelike logika by 'n werksvloei, wat besluite op grond van invoerdata moontlik maak. Dit evalueer die gespesifiseerde voorwaardes en oorweeg na die ooreenstemmende toestand op grond van die resultate.
- **Vergelyking**: Elke keuse-reël sluit 'n vergelykingsoperateur in (bv. **`NumericEquals`**, **`StringEquals`**) wat 'n invoer veranderlike met 'n gespesifiseerde waarde of 'n ander veranderlike vergelyk.
- **Volgende Veld**: Keuse toestande ondersteun nie die **`End`** veld nie, eerder definieer hulle die **`Next`** toestand om na oor te skakel as die vergelyking waar is.
- **Vergelyking**: Elke keuse-reël sluit 'n vergelykingsoperateur in (bv. **`NumericEquals`**, **`StringEquals`**) wat 'n invoervariabele met 'n gespesifiseerde waarde of 'n ander variabele vergelyk.
- **Volgende Veld**: Keuse toestande ondersteun nie die **`End`** veld nie, eerder, hulle definieer die **`Next`** toestand om na oor te skakel as die vergelyking waar is.
Voorbeeld van **Keuse** toestand:
```json
@@ -67,14 +67,14 @@ Voorbeeld van **Keuse** toestand:
"Next": "TimeState"
}
```
### Fail/Succeed
### Misluk/Sukses
'n **`Fail`** toestand stop die uitvoering van 'n toestandmasjien en merk dit as 'n mislukking. Dit word gebruik om 'n foutnaam en 'n oorsaak te spesifiseer, wat besonderhede oor die mislukking verskaf. Hierdie toestand is terminal, wat beteken dit beëindig die uitvoeringsvloei.
'n **`Misluk`** toestand stop die uitvoering van 'n toestandmasjien en merk dit as 'n mislukking. Dit word gebruik om 'n foutnaam en 'n oorsaak te spesifiseer, wat besonderhede oor die mislukking verskaf. Hierdie toestand is terminal, wat beteken dit beëindig die uitvoeringsvloei.
'n **`Succeed`** toestand stop die uitvoering suksesvol. Dit word tipies gebruik om die werksvloei te beëindig wanneer dit suksesvol voltooi is. Hierdie toestand vereis nie 'n **`Next`** veld nie.
'n **`Sukses`** toestand stop die uitvoering suksesvol. Dit word tipies gebruik om die werksvloei te beëindig wanneer dit suksesvol voltooi is. Hierdie toestand vereis nie 'n **`Next`** veld nie.
{{#tabs }}
{{#tab name="Fail example" }}
{{#tab name="Misluk voorbeeld" }}
```json
"FailState": {
"Type": "Fail",
@@ -95,7 +95,7 @@ Voorbeeld van **Keuse** toestand:
### Pass
'n **Pass** toestand gee sy invoer aan sy uitvoer oor, hetsy sonder om enige werk te verrig of deur JSON toestand invoer te transformeer met behulp van filters, en dan die getransformeerde data aan die volgende toestand oor te dra. Dit is nuttig vir toetsing en die konstruksie van toestandmasjiene, wat jou toelaat om statiese data in te voeg of dit te transformeer.
'n **Pass** toestand stuur sy invoer na sy uitvoer, hetsy sonder om enige werk te verrig of JSON toestand invoer te transformeer met behulp van filters, en dan die getransformeerde data na die volgende toestand te stuur. Dit is nuttig vir toetsing en die konstruksie van toestandmasjiene, wat jou toelaat om statiese data in te voeg of dit te transformeer.
```json
"PassState": {
"Type": "Pass",
@@ -141,11 +141,11 @@ jsonCopiar código
### Parallel
'n **Parallel** toestand laat jou toe om verskeie takke van take gelyktydig binne jou werksvloei uit te voer. Elke tak loop onafhanklik en verwerk sy eie volgorde van toestande. Die uitvoering wag totdat al die takke voltooi is voordat dit na die volgende toestand gaan. Sy sleutelvelde is:
'n **Parallel** toestand laat jou toe om verskeie takke van take gelyktydig binne jou werksvloei uit te voer. Elke tak loop onafhanklik en verwerk sy eie volgorde van toestande. Die uitvoering wag totdat al die takke voltooi is voordat dit na die volgende toestand voortgaan. Sy sleutelvelde is:
- **Takke**: 'n Array wat die parallelle uitvoeringspaaie definieer. Elke tak is 'n aparte toestandmasjien.
- **ResultPath**: Definieer waar (in die invoer) om die saamgevoegde uitvoer van die takke te plaas.
- **Herhaal en Vang**: Fouthanteringskonfigurasies vir die parallelle toestand.
- **Hernu en Vang**: Fouthanteringskonfigurasies vir die parallelle toestand.
```json
"ParallelState": {
"Type": "Parallel",
@@ -234,19 +234,19 @@ jsonCopiar código
### Versions and aliases
Step Functions laat jou ook toe om werksvloei-implementasies te bestuur deur middel van **versies** en **aliases** van toestand masjiene. 'n Weergawe verteenwoordig 'n snapshot van 'n toestand masjien wat uitgevoer kan word. Aliases dien as wysers na tot twee weergawes van 'n toestand masjien.
Step Functions laat jou ook toe om werksvloei-implementasies te bestuur deur middel van **versies** en **aliases** van toestandmasjiene. 'n weergawe verteenwoordig 'n snapshot van 'n toestandmasjien wat uitgevoer kan word. Aliases dien as wysers na tot twee weergawes van 'n toestandmasjien.
- **Versies**: Hierdie onveranderlike snapshots van 'n toestand masjien word geskep vanaf die mees onlangse hersiening van daardie toestand masjien. Elke weergawe word geïdentifiseer deur 'n unieke ARN wat die toestand masjien ARN met die weergawe nommer kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:version-number`**). Weergawes kan nie ge-edit word nie, maar jy kan die toestand masjien opdateer en 'n nuwe weergawe publiseer, of die gewenste toestand masjien weergawe gebruik.
- **Aliases**: Hierdie wysers kan na tot twee weergawes van dieselfde toestand masjien verwys. Meerdere aliases kan geskep word vir 'n enkele toestand masjien, elkeen geïdentifiseer deur 'n unieke ARN wat die toestand masjien ARN met die alias naam kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:aliasName`**). Aliases stel die roetering van verkeer tussen een van die twee weergawes van 'n toestand masjien in staat. Alternatiewelik kan 'n alias na 'n enkele spesifieke weergawe van die toestand masjien wys, maar nie na ander aliases nie. Hulle kan opdateer word om na 'n ander weergawe van die toestand masjien te herlei soos nodig, wat beheerde implementasies en werksvloei bestuur fasiliteer.
- **Versies**: Hierdie onveranderlike snapshots van 'n toestandmasjien word geskep vanaf die mees onlangse hersiening van daardie toestandmasjien. Elke weergawe word geïdentifiseer deur 'n unieke ARN wat die toestandmasjien ARN met die weergawe nommer kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:version-number`**). Weergawes kan nie gewysig word nie, maar jy kan die toestandmasjien opdateer en 'n nuwe weergawe publiseer, of die gewenste toestandmasjien weergawe gebruik.
- **Aliases**: Hierdie wysers kan na tot twee weergawes van dieselfde toestandmasjien verwys. Meervoudige aliases kan geskep word vir 'n enkele toestandmasjien, elkeen geïdentifiseer deur 'n unieke ARN wat die toestandmasjien ARN met die alias naam kombineer, geskei deur 'n dubbelepunt (**`arn:aws:states:region:account-id:stateMachine:StateMachineName:aliasName`**). Aliases stel die roetering van verkeer tussen een van die twee weergawes van 'n toestandmasjien in staat. Alternatiewelik kan 'n alias na 'n enkele spesifieke weergawe van die toestandmasjien wys, maar nie na ander aliases nie. Hulle kan opgedateer word om na 'n ander weergawe van die toestandmasjien te herlei soos nodig, wat beheerde implementasies en werksvloei-bestuur fasiliteer.
Vir meer gedetailleerde inligting oor **ASL**, kyk: [**Amazon States Language**](https://states-language.net/spec.html).
## IAM Roles for State machines
AWS Step Functions gebruik AWS Identity and Access Management (IAM) rolle om toegang tot hulpbronne en aksies binne toestand masjiene te beheer. Hier is die sleutel aspekte wat verband hou met sekuriteit en IAM rolle in AWS Step Functions:
AWS Step Functions gebruik AWS Identity and Access Management (IAM) rolle om toegang tot hulpbronne en aksies binne toestandmasjiene te beheer. Hier is die sleutel aspekte wat verband hou met sekuriteit en IAM rolle in AWS Step Functions:
- **Execution Role**: Elke toestand masjien in AWS Step Functions is geassosieer met 'n IAM uitvoering rol. Hierdie rol definieer watter aksies die toestand masjien namens jou kan uitvoer. Wanneer 'n toestand masjien tussen toestande oorgaan wat met AWS dienste interaksie het (soos die aanroep van Lambda funksies, toegang tot DynamoDB, ens.), neem dit hierdie uitvoering rol aan om daardie aksies uit te voer.
- **Permissions**: Die IAM uitvoering rol moet geconfigureer word met toestemmings wat die nodige aksies op ander AWS dienste toelaat. Byvoorbeeld, as jou toestand masjien AWS Lambda funksies moet aanroep, moet die IAM rol **`lambda:InvokeFunction`** toestemmings hê. Op soortgelyke wyse, as dit na DynamoDB moet skryf, moet toepaslike toestemmings (**`dynamodb:PutItem`**, **`dynamodb:UpdateItem`**, ens.) toegestaan word.
- **Execution Role**: Elke toestandmasjien in AWS Step Functions is geassosieer met 'n IAM uitvoering rol. Hierdie rol definieer watter aksies die toestandmasjien namens jou kan uitvoer. Wanneer 'n toestandmasjien tussen toestande oorgaan wat met AWS dienste interaksie het (soos die aanroep van Lambda funksies, toegang tot DynamoDB, ens.), neem dit hierdie uitvoering rol aan om daardie aksies uit te voer.
- **Permissions**: Die IAM uitvoering rol moet geconfigureer word met toestemmings wat die nodige aksies op ander AWS dienste toelaat. Byvoorbeeld, as jou toestandmasjien AWS Lambda funksies moet aanroep, moet die IAM rol **`lambda:InvokeFunction`** toestemmings hê. Net so, as dit na DynamoDB moet skryf, moet toepaslike toestemmings (**`dynamodb:PutItem`**, **`dynamodb:UpdateItem`**, ens.) toegestaan word.
## Enumeration