AWS - KMS Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 enkriptuješ informacije u prenosu, moraš koristiti nešto poput TLS.
KMS je usluga specifična za region.
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 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 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 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ćavaju i onemogućavaju ključeve.
Envelop Enkripcija 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.
Ove definišu ko može koristiti i pristupiti ključu u KMS-u.
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 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.
Omogućava nalogu da koristi IAM politike za omogućavanje pristupa KMS ključu, pored politike ključa.
Bez ove dozvole, IAM politike koje omogućavaju pristup ključu su neefikasne, iako su IAM politike koje odbijaju pristup ključu i dalje efikasne.
Smanjuje rizik da ključ postane neuredan dajući dozvolu za kontrolu pristupa administratorima naloga, uključujući korisnika root naloga, koji ne može biti obrisan.
Primer default politike:
Ako je nalog dozvoljen ("arn:aws:iam::111122223333:root"
), principal iz naloga će i dalje trebati IAM dozvole da koristi KMS ključ. Međutim, ako je ARN uloge, na primer, specifično dozvoljen u Politici ključeva, ta uloga ne treba IAM dozvole.
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
Što duže ostane isti ključ, to se više podataka enkriptuje tim ključem, a ako taj ključ bude kompromitovan, šira je zona rizika za podatke. Pored toga, što je ključ duže 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.
Ako je CMK u stanju onemogućen ili na čekanju brisanja, KMS neće izvršiti rotaciju ključa dok se CMK ponovo ne omogući ili brisanje ne otkaže.
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 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.
KMS se naplaćuje po broju zahteva za enkripciju/dekripciju primljenih od svih usluga mesečno.
KMS ima potpunu reviziju i usklađenost integraciju sa CloudTrail; ovde možete revizirati sve promene izvršene na KMS-u.
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 kvar u regionu koji hostuje KMS uticao 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.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)