Translated ['src/pentesting-cloud/aws-security/aws-services/aws-kms-enum

This commit is contained in:
Translator
2025-07-03 14:54:18 +00:00
parent 262b25a50b
commit 2f72866c3d

View File

@@ -4,7 +4,7 @@
## KMS - Sleutelbestuurdiens
AWS Sleutelbestuurdiens (AWS KMS) word aangebied as 'n bestuurde diens, wat die proses vir gebruikers vereenvoudig om **klant meester sleutels** (CMKs) te **skep en te bestuur**. Hierdie CMKs is integraal in die versleuteling van gebruikersdata. 'n Opmerklike kenmerk van AWS KMS is dat CMKs hoofsaaklik **beveilig word deur hardeware sekuriteitsmodules** (HSMs), wat die beskerming van die versleuteling sleutels verbeter.
AWS Sleutelbestuurdiens (AWS KMS) word aangebied as 'n bestuurde diens, wat die proses vir gebruikers vereenvoudig om **klant meester sleutels** (CMKs) te **skep en te bestuur**. Hierdie CMKs is integraal in die versleuteling van gebruikersdata. 'n Opmerkelijke kenmerk van AWS KMS is dat CMKs hoofsaaklik **beveilig word deur hardewarebeveiligingsmodules** (HSMs), wat die beskerming van die versleuteling sleutels verbeter.
KMS gebruik **simmetriese kriptografie**. Dit word gebruik om **inligting in rus te versleutelen** (byvoorbeeld, binne 'n S3). As jy **inligting in oordrag wil versleutelen**, moet jy iets soos **TLS** gebruik.
@@ -21,7 +21,7 @@ Daar is 2 tipes meester sleutels:
- **AWS bestuurde CMKs: Gebruik deur ander dienste om data te versleutelen**. Dit word gebruik deur die diens wat dit in 'n streek geskep het. Hulle word geskep die eerste keer wat jy die versleuteling in daardie diens implementeer. Dit draai elke 3 jaar en dit is nie moontlik om dit te verander nie.
- **Klant bestuurde CMKs**: Buigsaamheid, rotasie, konfigureerbare toegang en sleutelbeleid. Aktiveer en deaktiveer sleutels.
**Envelop Versleuteling** in die konteks van Sleutelbestuurdiens (KMS): Twee-laag hiërargie stelsel om **data met data sleutel te versleutelen en dan data sleutel met meester sleutel te versleutelen**.
**Envelope Versleuteling** in die konteks van Sleutelbestuurdiens (KMS): Twee-laag hiërargie stelsel om **data met 'n datasleutel te versleutelen en dan die datasleutel met 'n meester sleutel te versleutelen**.
### Sleutelbeleide
@@ -31,15 +31,15 @@ Deur **standaard:**
- Dit gee die **IAM van die** **AWS rekening wat die KMS sleutel besit toegang** om die toegang tot die KMS sleutel via IAM te bestuur.
In teenstelling met ander AWS hulpbronbeleide, 'n AWS **KMS sleutelbeleid gee nie outomaties toestemming aan enige van die principals van die rekening nie**. Om toestemming aan rekening administrateurs te gee, moet die **sleutelbeleid 'n eksplisiete verklaring insluit** wat hierdie toestemming bied, soos hierdie een.
In teenstelling met ander AWS hulpbronbeleide, 'n AWS **KMS sleutelbeleid gee nie outomaties toestemming aan enige van die principals van die rekening nie**. Om toestemming aan rekening administrateurs te gee, moet die **sleutelbeleid 'n eksplisiete verklaring insluit** wat hierdie toestemming verskaf, soos hierdie een.
- Sonder om die rekening toe te laat (`"AWS": "arn:aws:iam::111122223333:root"`) sal IAM toestemmings nie werk nie.
- Dit **laat die rekening toe om IAM beleide te gebruik** om toegang tot die KMS sleutel toe te laat, benewens die sleutelbeleid.
**Sonder hierdie toestemming is IAM beleide wat toegang tot die sleutel toelaat nie effektief nie**, alhoewel IAM beleide wat toegang tot die sleutel ontken steeds effektief is.
**Sonder hierdie toestemming is IAM beleide wat toegang tot die sleutel toelaat, ondoeltreffend**, alhoewel IAM beleide wat toegang tot die sleutel ontken steeds doeltreffend is.
- Dit **verlaag die risiko dat die sleutel onbestuurbaar word** deur toegangbeheer toestemming aan die rekening administrateurs te gee, insluitend die rekening wortel gebruiker, wat nie verwyder kan word nie.
- Dit **verlaag die risiko dat die sleutel onbestuurbaar word** deur toegangbeheer toestemming aan die rekening administrateurs te gee, insluitend die rekening wortelgebruiker, wat nie verwyder kan word nie.
**Standaard beleid** voorbeeld:
```json
@@ -54,7 +54,7 @@ In teenstelling met ander AWS hulpbronbeleide, 'n AWS **KMS sleutelbeleid gee ni
}
```
> [!WARNING]
> As die **rekening toegelaat is** (`"arn:aws:iam::111122223333:root"`), sal 'n **hoofpersoon** van die rekening **nog steeds IAM-toestemmings** benodig om die KMS-sleutel te gebruik. As die **ARN** van 'n rol byvoorbeeld **spesifiek toegelaat is** in die **Sleutelbeleid**, benodig daardie rol **nie IAM-toestemmings nie**.
> As die **rekening toegelaat word** (`"arn:aws:iam::111122223333:root"`), sal 'n **hoofpersoon** van die rekening **nog steeds IAM-toestemmings** benodig om die KMS-sleutel te gebruik. As die **ARN** van 'n rol byvoorbeeld **spesifiek toegelaat** word in die **Sleutelbeleid**, het daardie rol **nie IAM-toestemmings** nodig nie.
<details>
@@ -66,17 +66,17 @@ Eienskappe van 'n beleid:
- Hulpbron --> Aangetaste hulpbronne (kan wees "\*")
- Aksie --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (toestemmings)
- Effek --> Toelaat/Weier
- Hoofpersoon --> arn aangetaste
- Hoofpersoon --> arn aangetas
- Voorwaardes (opsioneel) --> Voorwaarde om die toestemmings te gee
Toekennings:
- Laat jou toe om jou toestemmings aan 'n ander AWS-hoofpersoon binne jou AWS-rekening te delegeer. Jy moet dit skep met die AWS KMS APIs. Dit kan die CMK-identifiseerder, die toekenningshoofpersoon en die vereiste vlak van operasie (Decrypt, Encrypt, GenerateDataKey...) aangedui word.
- Laat jou toe om jou toestemmings aan 'n ander AWS-hoofpersoon binne jou AWS-rekening te delegeer. Jy moet dit skep met die AWS KMS API's. Dit kan die CMK-identifiseerder, die toekenningshoofpersoon en die vereiste vlak van operasie (Decrypt, Encrypt, GenerateDataKey...) aangedui word.
- Nadat die toekenning geskep is, word 'n GrantToken en 'n GrantID uitgereik.
**Toegang**:
- Via **sleutelbeleid** -- As dit bestaan, neem dit **prioriteit** oor die IAM-beleid.
- Via **sleutelbeleid** -- As dit bestaan, het dit **prioriteit** bo die IAM-beleid
- Via **IAM-beleid**
- Via **toekennings**
@@ -86,25 +86,25 @@ Toekennings:
Sleuteladministrateur per standaard:
- Het toegang om KMS te bestuur, maar nie om data te enkripteer of te dekripteer nie.
- Slegs IAM-gebruikers en rolle kan by die Sleuteladministratorslys gevoeg word (nie groepe nie).
- As 'n eksterne CMK gebruik word, het Sleuteladministrators die toestemming om sleutelmateriaal te invoer.
- Het toegang om KMS te bestuur, maar nie om data te enkripteer of te dekripteer nie
- Slegs IAM-gebruikers en rolle kan by die Sleuteladministratorslys gevoeg word (nie groepe nie)
- As 'n eksterne CMK gebruik word, het Sleuteladministrators die toestemming om sleutelmateriaal te importeer
### Rotasie van CMKs
### Rotasie van CMK's
- Hoe langer dieselfde sleutel in plek gelaat word, hoe meer data word met daardie sleutel geënkripteer, en as daardie sleutel gecompromitteer word, is die groter die blast area van data in gevaar. Benewens dit, hoe langer die sleutel aktief is, hoe groter is die waarskynlikheid dat dit gecompromitteer sal word.
- **KMS roteer klant sleutels elke 365 dae** (of jy kan die proses handmatig uitvoer wanneer jy wil) en **sleutels bestuur deur AWS elke 3 jaar** en hierdie tyd kan nie verander word nie.
- **KMS roteer klntsleutels elke 365 dae** (of jy kan die proses handmatig uitvoer wanneer jy wil) en **sleutels wat deur AWS bestuur word elke 3 jaar** en hierdie tyd kan nie verander word nie.
- **Ou sleutels word behou** om data te dekripteer wat voor die rotasie geënkripteer was.
- In 'n breek, sal die rotasie van die sleutel nie die bedreiging verwyder nie, aangesien dit moontlik sal wees om al die data wat met die gecompromitteerde sleutel geënkripteer is, te dekripteer. Tog, die **nuwe data sal geënkripteer word met die nuwe sleutel**.
- As **CMK** in 'n toestand van **gedeaktiveer** of **hangende** **verwydering** is, sal KMS **nie 'n sleutelrotasie uitvoer nie** totdat die CMK heraktiveer of die verwydering gekanselleer word.
- In 'n breek, sal die rotasie van die sleutel nie die bedreiging verwyder nie, aangesien dit moontlik sal wees om al die data wat met die gecompromitteerde sleutel geënkripteer is, te dekripteer. Maar, die **nuwe data sal geënkripteer word met die nuwe sleutel**.
- As **CMK** in 'n toestand van **gedeaktiveer** of **hangende** **verwydering** is, sal KMS **nie 'n sleutelrotasie uitvoer** totdat die CMK heraktiveer of die verwydering gekanselleer word nie.
#### Handmatige rotasie
- 'n **Nuwe CMK moet geskep word**, dan, 'n nuwe CMK-ID word geskep, so jy sal **moet opdateer** enige **toepassing** om die nuwe CMK-ID te **verwys**.
- Om hierdie proses makliker te maak, kan jy **aliases gebruik om na 'n sleutel-id te verwys** en dan net die sleutel wat die alias verwys, opdateer.
- Om hierdie proses makliker te maak, kan jy **aliasse gebruik om na 'n sleutel-id te verwys** en dan net die sleutel wat die alias verwys, opdateer.
- Jy moet **ou sleutels hou om ou lêers te dekripteer** wat daarmee geënkripteer is.
Jy kan sleutels van jou on-premises sleutel infrastruktuur invoer.
Jy kan sleutels van jou plaaslike sleutel-infrastruktuur invoer.
### Ander relevante KMS-inligting
@@ -114,8 +114,8 @@ KMS het volle oudit en nakoming **integrasie met CloudTrail**; dit is waar jy al
Met KMS-beleid kan jy die volgende doen:
- Beperk wie data sleutels kan skep en watter dienste toegang het om hierdie sleutels te gebruik.
- Beperk stelsels toegang om slegs te enkripteer, slegs te dekripteer of albei.
- Beperk wie data sleutels kan skep en watter dienste toegang het om hierdie sleutels te gebruik
- Beperk stelsels se toegang om slegs te enkripteer, slegs te dekripteer of albei
- Definieer om stelsels toe te laat om sleutels oor streke te benader (alhoewel dit nie aanbeveel word nie, aangesien 'n mislukking in die streek wat KMS huisves, die beskikbaarheid van stelsels in ander streke sal beïnvloed).
Jy kan nie sleutels oor streke sinkroniseer of beweeg/kopieer nie; jy kan slegs reëls definieer om toegang oor streke toe te laat.
@@ -128,6 +128,11 @@ aws kms list-grants --key-id <id>
aws kms describe-key --key-id <id>
aws kms get-key-policy --key-id <id> --policy-name <name> # Default policy name is "default"
aws kms describe-custom-key-stores
# This script enumerates AWS KMS keys across all available regions.
for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do
echo -e "\n### Region: $region ###"; aws kms list-keys --region $region --query "Keys[].KeyId" --output text | tr '\t' '\n';
done
```
### Privesc