AWS - KMS Enum
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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.
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.
KMS is 'n streekspesifieke diens.
Administrateurs by Amazon het nie toegang tot jou sleutels nie. Hulle kan nie jou sleutels herstel nie en hulle help jou nie met die versleuteling van jou sleutels nie. AWS bestuur eenvoudig die bedryfstelsel en die onderliggende toepassing; dit is aan ons om ons versleuteling sleutels te bestuur en te bestuur hoe daardie sleutels gebruik word.
Klant Meester Sleutels (CMK): Kan data tot 4KB in grootte versleutelen. Hulle word tipies gebruik om die DEKs (Data Versleuteling Sleutels) te skep, versleutelen en ontsleutelen. Dan word die DEKs gebruik om die data te versleutelen.
'n Klant meester sleutel (CMK) is 'n logiese voorstelling van 'n meester sleutel in AWS KMS. Benewens die meester sleutel se identifiseerders en ander metadata, insluitend sy skeppingsdatum, beskrywing en sleuteltoestand, bevat 'n CMK die sleutelmateriaal wat gebruik word om data te versleutelen en ontsleutelen. Wanneer jy 'n CMK skep, genereer AWS KMS standaard die sleutelmateriaal vir daardie CMK. Jy kan egter kies om 'n CMK sonder sleutelmateriaal te skep en dan jou eie sleutelmateriaal in daardie CMK te invoer.
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. 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.
Envelope 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.
Hierdie definieer wie 'n sleutel in KMS kan gebruik en toegang hê.
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.
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.
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.
Standaard beleid voorbeeld:
As die rekening toegelaat is ("arn:aws:iam::111122223333:root"
), sal 'n hoofpersoon van die rekening nog steeds IAM-toestemmings nodig hê om die KMS-sleutel te gebruik. As die ARN van 'n rol byvoorbeeld spesifiek toegelaat is in die Sleutelbeleid, het daardie rol nie IAM-toestemmings nodig nie.
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.
Hoe langer dieselfde sleutel op sy plek gelaat word, hoe meer data word met daardie sleutel geënkripteer, en as daardie sleutel gecompromitteer word, is die blast area van data wyer in gevaar. Benewens dit, hoe langer die sleutel aktief is, hoe groter is die waarskynlikheid dat dit gecompromitteer sal word.
KMS roteer kliëntsleutels 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 is.
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 met die nuwe sleutel geënkripteer word.
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.
'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 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 plaaslike sleutel-infrastruktuur invoer.
KMS is geprys per aantal enkripsie/dekripsie versoeke wat van alle dienste per maand ontvang word.
KMS het volle oudit en nakoming integrasie met CloudTrail; dit is waar jy al die veranderinge wat op KMS uitgevoer is, kan oudit.
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 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.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)