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

This commit is contained in:
Translator
2025-07-03 14:54:14 +00:00
parent aeec8e28f0
commit 31240ee076

View File

@@ -4,24 +4,24 @@
## KMS - Usluga upravljanja ključevima
AWS Usluga upravljanja ključevima (AWS KMS) se predstavlja kao upravljana usluga, pojednostavljujući proces za korisnike da **kreiraju i upravljaju glavnim korisničkim ključevima** (CMK). Ovi CMK-ovi su ključni u enkripciji korisničkih podataka. Značajna karakteristika AWS KMS-a je da su CMK-ovi pretežno **zaštićeni hardverskim bezbednosnim modulima** (HSM), što poboljšava zaštitu enkripcijskih ključeva.
AWS Usluga upravljanja ključevima (AWS KMS) se predstavlja kao upravljana usluga, pojednostavljujući proces za korisnike da **kreiraju i upravljaju glavnim ključevima kupca** (CMK). Ovi CMK-ovi su ključni za enkripciju korisničkih podataka. Značajna karakteristika AWS KMS-a je da su CMK-ovi pretežno **zaštićeni hardverskim bezbednosnim modulima** (HSM), što poboljšava zaštitu enkripcijskih ključeva.
KMS koristi **simetričnu kriptografiju**. Ovo se koristi za **enkripciju informacija u mirovanju** (na primer, unutar S3). Ako treba da **enkriptujete informacije u prenosu**, morate koristiti nešto poput **TLS**.
KMS koristi **simetričnu kriptografiju**. Ovo se koristi za **enkripciju informacija u mirovanju** (na primer, unutar S3). Ako treba da **enkriptuješ informacije u prenosu**, moraš koristiti nešto poput **TLS**.
KMS je **usluga specifična za region**.
**Administratori u Amazonu nemaju pristup vašim ključevima**. Ne mogu da povrate vaše ključeve i ne pomažu vam u enkripciji vaših ključeva. AWS jednostavno upravlja operativnim sistemom i osnovnom aplikacijom, a na nama je da upravljamo našim enkripcijskim ključevima i upravljamo kako se ti ključevi koriste.
**Administratori u Amazonu nemaju pristup tvojim ključevima**. Ne mogu da povrate tvoje ključeve i ne pomažu ti u enkripciji tvojih ključeva. AWS jednostavno upravlja operativnim sistemom i osnovnom aplikacijom, a na nama je da upravljamo našim enkripcijskim ključevima i upravljamo kako se ti ključevi koriste.
**Glavni korisnički ključevi** (CMK): Mogu enkriptovati podatke do 4KB veličine. Obično se koriste za kreiranje, enkripciju i dekripciju DEK-ova (Ključevi za enkripciju podataka). Zatim se DEK-ovi koriste za enkripciju podataka.
**Glavni ključevi kupca** (CMK): Mogu enkriptovati podatke do 4KB veličine. Obično se koriste za kreiranje, enkripciju i dekripciju DEK-ova (Ključevi za enkripciju podataka). Zatim se DEK-ovi koriste za enkripciju podataka.
Glavni korisnički ključ (CMK) je logička reprezentacija glavnog ključa u AWS KMS-u. Pored identifikatora glavnog ključa i drugih metapodataka, uključujući datum kreiranja, opis i stanje ključa, **CMK sadrži materijal ključa koji se koristi za enkripciju i dekripciju podataka**. Kada kreirate CMK, po defaultu, AWS KMS generiše materijal ključa za taj CMK. Međutim, možete odabrati da kreirate CMK bez materijala ključa i zatim uvezete svoj materijal ključa u taj CMK.
Glavni ključ kupca (CMK) je logička reprezentacija glavnog ključa u AWS KMS-u. Pored identifikatora glavnog ključa i drugih metapodataka, uključujući datum kreiranja, opis i stanje ključa, **CMK sadrži materijal ključa koji se koristi za enkripciju i dekripciju podataka**. Kada kreiraš CMK, po defaultu, AWS KMS generiše materijal ključa za taj CMK. Međutim, možeš izabrati da kreiraš CMK bez materijala ključa i zatim uvezeš svoj materijal ključa u taj CMK.
Postoje 2 tipa glavnih ključeva:
- **AWS upravljani CMK-ovi: Koriste ih druge usluge za enkripciju podataka**. Koristi ih usluga koja ih je kreirala u regionu. Kreiraju se prvi put kada implementirate enkripciju u toj usluzi. Rotiraju se svake 3 godine i nije moguće promeniti ih.
- **CMK-ovi koje upravlja korisnik**: Fleksibilnost, rotacija, konfigurisani pristup i politika ključeva. Omogućavanje i onemogućavanje ključeva.
- **AWS upravljani CMK-ovi: Koriste ih druge usluge za enkripciju podataka**. Koristi ih usluga koja ih je kreirala u regionu. Kreiraju se prvi put kada implementiraš enkripciju u toj usluzi. Rotiraju se svake 3 godine i nije moguće promeniti ih.
- **CMK-ovi koje upravlja kupac**: Fleksibilnost, rotacija, konfigurisani pristup i politika ključeva. Omogućavanje i onemogućavanje ključeva.
**Enkripcija u omotu** u kontekstu Usluge upravljanja ključevima (KMS): Dvostepeni hijerarhijski sistem za **enkripciju podataka sa ključem podataka i zatim enkripciju ključa podataka sa glavnim ključem**.
**Enkripcija u omotu** u kontekstu Usluge upravljanja ključevima (KMS): Dvotierni hijerarhijski sistem za **enkripciju podataka sa ključem podataka i zatim enkripciju ključa podataka sa glavnim ključem**.
### Politike ključeva
@@ -31,7 +31,7 @@ Po **defaultu:**
- Daje **IAM-u** **AWS naloga koji poseduje KMS ključ pristup** za upravljanje pristupom KMS ključu putem IAM-a.
Za razliku od drugih politika resursa AWS-a, politika **KMS ključa ne daje automatski dozvolu bilo kojem od principala naloga**. Da biste dali dozvolu administratorima naloga, **politika ključa mora uključivati eksplicitnu izjavu** koja pruža ovu dozvolu, poput ove.
Za razliku od drugih politika resursa AWS-a, politika **KMS ključa ne daje automatski dozvolu bilo kojem od principala naloga**. Da bi se dala dozvola administratorima naloga, **politika ključa mora uključivati eksplicitnu izjavu** koja pruža ovu dozvolu, poput ove.
- Bez omogućavanja naloga(`"AWS": "arn:aws:iam::111122223333:root"`) IAM dozvole neće raditi.
@@ -65,13 +65,13 @@ Osobine politike:
- Dokument zasnovan na JSON-u
- Resurs --> Pogođeni resursi (može biti "\*")
- Akcija --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (dozvole)
- Efekat --> Dozvoli/Odbij
- Efekat --> Dozvoli/Zabraniti
- Principal --> arn pogođen
- Uslovi (opciono) --> Uslov za davanje dozvola
Grantovi:
- Dozvoljava delegiranje vaših dozvola drugom AWS principalu unutar vašeg AWS naloga. Morate ih kreirati koristeći AWS KMS API-je. Može se naznačiti identifikator CMK, principal koji dobija grant i potrebni nivo operacije (Decrypt, Encrypt, GenerateDataKey...)
- Dozvoljava delegiranje vaših dozvola drugom AWS principalu unutar vašeg AWS naloga. Morate ih kreirati koristeći AWS KMS API-je. Može se naznačiti identifikator CMK, principal koji dobija i potrebni nivo operacije (Decrypt, Encrypt, GenerateDataKey...)
- Nakon što je grant kreiran, izdaju se GrantToken i GrantID
**Pristup**:
@@ -87,12 +87,12 @@ Grantovi:
Administrator ključeva po defaultu:
- Ima pristup za upravljanje KMS-om, ali ne i za enkripciju ili dekripciju podataka
- Samo IAM korisnici i uloge mogu biti dodati na listu administratora ključeva (ne grupe)
- Ako se koristi eksterni CMK, administratori ključeva imaju dozvolu da uvezu materijal ključa
- Samo IAM korisnici i uloge mogu biti dodati na listu Administratora ključeva (ne grupe)
- Ako se koristi eksterni CMK, Administratori ključeva imaju dozvolu da uvezu materijal ključa
### Rotacija CMK-ova
- Što duže ostane isti ključ, to više podataka se enkriptuje tim ključem, a ako taj ključ bude kompromitovan, šira oblast podataka je u riziku. Pored toga, što duže ključ bude aktivan, verovatnoća da će biti kompromitovan raste.
- Što duže isti ključ ostane na mestu, to više podataka se enkriptuje tim ključem, a ako taj ključ bude kompromitovan, šira oblast podataka je u opasnosti. Pored toga, što duže ključ bude aktivan, verovatnoća da će biti kompromitovan raste.
- **KMS rotira korisničke ključeve svake 365 dana** (ili možete izvršiti proces ručno kad god želite) i **ključeve koje upravlja AWS svake 3 godine** i ovaj put se ne može promeniti.
- **Stariji ključevi se čuvaju** za dekripciju podataka koji su enkriptovani pre rotacije
- U slučaju kompromitacije, rotacija ključa neće ukloniti pretnju jer će biti moguće dekriptovati sve podatke enkriptovane kompromitovanim ključem. Međutim, **novi podaci će biti enkriptovani novim ključem**.
@@ -101,7 +101,7 @@ Administrator ključeva po defaultu:
#### Ručna rotacija
- **Novi CMK treba da bude kreiran**, zatim se kreira novi CMK-ID, tako da ćete morati da **ažurirate** svaku **aplikaciju** da **referencira** novi CMK-ID.
- Da biste ovaj proces olakšali, možete **koristiti alias da se pozovete na key-id** i zatim samo ažurirati ključ na koji se alias odnosi.
- Da biste ovaj proces olakšali, možete **koristiti alias za referenciranje ID ključa** i zatim samo ažurirati ključ na koji alias se odnosi.
- Morate **čuvati stare ključeve za dekripciju starih fajlova** enkriptovanih tim ključem.
Možete uvesti ključeve iz vaše lokalne infrastrukture ključeva.
@@ -116,7 +116,7 @@ Sa KMS politikom možete učiniti sledeće:
- Ograničiti ko može kreirati ključeve podataka i koje usluge imaju pristup korišćenju ovih ključeva
- Ograničiti pristup sistemima samo za enkripciju, samo za dekripciju ili oboje
- Definisati da omogućite sistemima pristup ključevima širom regiona (iako se ne preporučuje jer bi neuspeh u regionu koji hostuje KMS uticao na dostupnost sistema u drugim regionima).
- Definisati da omogućite sistemima pristup ključevima širom regiona (iako se ne preporučuje jer će kvar u regionu koji hostuje KMS uticati na dostupnost sistema u drugim regionima).
Ne možete sinhronizovati ili premestiti/kopirati ključeve između regiona; možete samo definisati pravila za omogućavanje pristupa između regiona.
@@ -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