AWS Key Management Service (KMS): a szolgáltatás definíciója és működése

Az AWS Key Management Service (KMS) egy felhőalapú titkosítási megoldás, amely biztonságosan kezeli és tárolja a kriptográfiai kulcsokat. Segítségével egyszerűen védhetjük adatainkat, miközben könnyen kezelhető és automatizált kulcskezelést biztosít.
ITSZÓTÁR.hu
31 Min Read

A felhőalapú számítástechnika térnyerésével az adatbiztonság és a titkosítás kezelése az egyik legkritikusabb feladattá vált a szervezetek számára. Az adatok védelme nem csupán technikai kihívás, hanem alapvető üzleti és jogi követelmény is. Az Amazon Web Services (AWS), a világ vezető felhőszolgáltatója, erre a kihívásra kínál egy robusztus és skálázható megoldást az AWS Key Management Service (KMS) formájában.

Az AWS KMS egy felügyelt szolgáltatás, amely megkönnyíti a titkosítási kulcsok létrehozását és kezelését, valamint azok használatát a különböző AWS szolgáltatásokban és saját alkalmazásokban. Célja, hogy a felhasználók anélkül tudjanak adatokat titkosítani, hogy aggódniuk kellene a kulcsok biztonságos tárolása, rotációja vagy hozzáférés-szabályozása miatt. A KMS integrálódik az AWS ökoszisztémájába, így zökkenőmentesen használható más szolgáltatásokkal, mint például az Amazon S3, az Amazon EBS, az Amazon RDS vagy az AWS Lambda.

Ez a cikk részletesen bemutatja az AWS KMS szolgáltatást: annak definícióját, működési elveit, alapvető komponenseit, biztonsági mechanizmusait és gyakorlati felhasználási módjait. Célunk, hogy átfogó képet adjunk erről a létfontosságú AWS szolgáltatásról, amely kulcsszerepet játszik a felhőalapú adatbiztonság megteremtésében.

Az AWS Key Management Service (KMS) definíciója

Az AWS KMS egy kriptográfiai kulcskezelő szolgáltatás, amely lehetővé teszi a felhasználók számára, hogy könnyen létrehozzanak, tároljanak és kezeljenek titkosítási kulcsokat az adatok védelmére. A szolgáltatás biztonságos, nagymértékben elérhető és skálázható infrastruktúrát biztosít a kulcsok életciklusának kezeléséhez.

A KMS központi eleme a Customer Master Key (CMK), más néven AWS KMS kulcs. Ezek a kulcsok a fő titkosítási kulcsok, amelyeket az adatok titkosítására vagy titkosított adatok visszafejtésére használnak. A KMS gondoskodik arról, hogy ezek a CMK-k soha ne hagyják el a szolgáltatás biztonságos határát, és mindig a legmagasabb biztonsági szabványoknak megfelelően legyenek tárolva és kezelve.

A szolgáltatás a Federal Information Processing Standard (FIPS) 140-2 szabvány szerinti kriptográfiai modulokat használja, amelyek garantálják a kulcsok biztonságos generálását, tárolását és felhasználását. Ez a megfelelőség különösen fontos azoknak a szervezeteknek, amelyek szigorú szabályozási követelményeknek kell, hogy megfeleljenek.

A KMS nem csupán kulcsok tárolására szolgál, hanem kriptográfiai műveleteket is végez, mint például adatok titkosítása és visszafejtése, vagy digitális aláírások generálása és ellenőrzése. Azonban fontos megjegyezni, hogy a KMS elsősorban a „kulcsok kulcsaként” működik: ritkán használják közvetlenül nagy mennyiségű adat titkosítására. Ehelyett úgynevezett „envelope encryption” (boríték titkosítás) technikát alkalmaznak, amelyről később részletesebben is szó esik.

Miért van szükség az AWS KMS-re? Az adatbiztonsági kihívások

Az adatok exponenciális növekedése és a felhőbe való migráció új kihívásokat teremtett az adatbiztonság terén. A szervezeteknek nemcsak az adatok tárolására, hanem azok védelmére is hatékony megoldásokat kell találniuk, mind a tárolás (rest), mind az átvitel (transit) során.

A hagyományos kulcskezelési megoldások gyakran bonyolultak, költségesek és nehezen skálázhatók. A kulcsok manuális generálása, biztonságos tárolása, rotációja és hozzáférés-szabályozása jelentős terhet ró a biztonsági csapatokra. Egyetlen hiba a kulcskezelésben katasztrofális következményekkel járhat, beleértve az adatszivárgást és a bizalom elvesztését.

Az AWS KMS a következő kulcsfontosságú problémákra kínál megoldást:

  • Komplexitás csökkentése: Automatikusan kezeli a kulcsok életciklusát, beleértve a generálást, tárolást, rotációt és törlést, csökkentve ezzel a manuális beavatkozás szükségességét.
  • Skálázhatóság: Zökkenőmentesen skálázható a legkisebb projektektől a legnagyobb vállalati környezetekig, anélkül, hogy a felhasználóknak aggódniuk kellene az alapul szolgáló infrastruktúra miatt.
  • Magas rendelkezésre állás és tartósság: A kulcsokat redundánsan tárolja több rendelkezésre állási zónában (Availability Zones), biztosítva a magas rendelkezésre állást és a tartósságot még katasztrófa esetén is.
  • Biztonság: A kulcsok hardveres biztonsági modulokban (HSM-ekben) vannak tárolva, amelyek megfelelnek a FIPS 140-2 szabványnak, védelmet nyújtva a fizikai és logikai támadások ellen.
  • Hozzáférés-szabályozás: Részletes hozzáférés-szabályozást tesz lehetővé az AWS Identity and Access Management (IAM) integrációjával, biztosítva, hogy csak az arra jogosult entitások férjenek hozzá a kulcsokhoz és végezzenek velük műveleteket.
  • Auditálhatóság: Minden kulcsműveletet rögzít az AWS CloudTrail, így teljes átláthatóságot biztosít a kulcsok használatáról, ami elengedhetetlen a megfelelőségi és biztonsági auditokhoz.

A KMS tehát központosított, biztonságos és felügyelt megoldást kínál a kulcskezelésre, lehetővé téve a szervezetek számára, hogy az adatok védelmére összpontosítsanak, ahelyett, hogy a kulcskezelés bonyolult infrastruktúrájával bajlódnának.

Az AWS KMS Alapvető Koncepciói és Komponensei

Ahhoz, hogy megértsük az AWS KMS működését, elengedhetetlen megismerkedni annak alapvető fogalmaival és komponenseivel.

Customer Master Keys (CMK) / AWS KMS kulcsok

Az AWS KMS központi entitása a Customer Master Key (CMK), amelyet ma már hivatalosan AWS KMS kulcsnak neveznek. Ezek a kulcsok a fő titkosítási kulcsok, amelyek kriptográfiai műveletek (titkosítás, visszafejtés, aláírás, ellenőrzés) végrehajtására szolgálnak. A KMS kulcsok soha nem hagyják el a KMS biztonságos határát visszafejtetlen formában.

A KMS kulcsoknak több típusa létezik, attól függően, hogy ki kezeli őket, vagy milyen forrásból származnak:

  1. AWS-managed keys: Ezeket az AWS hozza létre és kezeli az Ön nevében. Általában az AWS szolgáltatások (pl. S3, EBS) használják, amikor engedélyezi a szolgáltatás által kezelt titkosítást (SSE-S3 vagy SSE-EBS). Nem tudja megtekinteni, kezelni vagy auditálni ezeket a kulcsokat közvetlenül, csak a szolgáltatáson keresztül használhatja őket.
  2. Customer-managed keys (CMK-k): Ezeket a kulcsokat Ön hozza létre és teljes mértékben Ön felügyeli. Ön határozza meg a kulcspolitikát, a hozzáférés-szabályozást, a kulcsrotációt és a kulcs törlését. Ezek a leggyakrabban használt KMS kulcsok, amelyek maximális kontrollt biztosítanak a felhasználónak.
  3. AWS-owned keys: Ezeket az AWS hozza létre és kezeli az AWS szolgáltatások számára. Ön nem fér hozzá ezekhez a kulcsokhoz, és nem is láthatja őket a KMS konzolon. Például, amikor az S3-ban SSE-S3 titkosítást használ, az AWS-owned kulcsokat használja a háttérben.
  4. External key store keys (XKS keys): Ezek olyan KMS kulcsok, amelyek kriptográfiai anyagát egy külső kulcstárolóban (pl. egy saját HSM-ben az adatközpontban) tárolja és kezeli. A KMS csak proxyként működik, a kriptográfiai műveletek a külső rendszerben történnek. Ez a legmagasabb szintű kontrollt biztosítja a kulcsanyag felett.
  5. Custom key store keys (CloudHSM keys): Ezek olyan KMS kulcsok, amelyek kriptográfiai anyagát egy saját AWS CloudHSM klaszterben tárolja és kezeli. Ez lehetővé teszi, hogy teljes mértékben Ön felügyelje a kulcsokat és az alapul szolgáló HSM-eket, miközben továbbra is élvezheti a KMS kényelmét.

A CMK-knek különböző kulcstípusai lehetnek:

  • Szimmetrikus kulcsok: Egyetlen kulcsot használnak az adatok titkosítására és visszafejtésére. Ezek a leggyakoribbak a KMS-ben.
  • Aszimmetrikus kulcsok: Kulcspárból állnak (nyilvános és privát kulcs). Használhatók adatok titkosítására/visszafejtésére (pl. RSA) vagy digitális aláírások generálására/ellenőrzésére (pl. ECC, RSA).

Minden KMS kulcs rendelkezik egy egyedi azonosítóval (Key ID), egy Amazon Resource Name-nel (ARN), és egy régióhoz van kötve. A kulcsok állapotai (Enabled, Disabled, Pending Deletion) lehetővé teszik azok életciklusának menedzselését.

Kulcspolitikák (Key Policies)

Minden customer-managed KMS kulcshoz tartozik egy kulcspolitika, amely egy JSON dokumentum, hasonlóan az IAM politikákhoz. Ez a politika határozza meg, hogy kik (IAM felhasználók, szerepkörök, AWS szolgáltatások) és milyen műveleteket (titkosítás, visszafejtés, kulcs rotáció beállítása) végezhetnek a kulccsal.

A kulcspolitika az elsődleges hozzáférés-szabályozási mechanizmus a KMS kulcsokhoz. Kiegészíti az IAM politikákat, de van egy kritikus különbség: egy KMS kulcs kulcspolitikája nélkülözhetetlen. Ha egy kulcspolitika nem ad engedélyt egy entitásnak egy műveletre, akkor az IAM politika sem tudja felülírni azt. A kulcspolitika mindig a végső szó a KMS kulcsokhoz való hozzáférésről.

Egy tipikus kulcspolitika tartalmaz egy „Key Administrators” szekciót, amely meghatározza, kik kezelhetik a kulcsot, és egy „Key Users” szekciót, amely meghatározza, kik használhatják azt kriptográfiai műveletekre.

Grants (Engedélyek)

A Grants (engedélyek) egy másik mechanizmus a KMS kulcsokhoz való hozzáférés szabályozására. A Grants lehetővé teszi, hogy ideiglenes vagy feltételes hozzáférést biztosítson egy KMS kulcshoz, anélkül, hogy módosítaná a kulcspolitikát. Ez különösen hasznos olyan forgatókönyvekben, ahol rövid távú vagy dinamikus hozzáférésre van szükség.

Egy Grant meghatározza:

  • Melyik KMS kulcsra vonatkozik.
  • Melyik princpial (felhasználó, szerepkör) kapja az engedélyt.
  • Milyen műveleteket engedélyez (pl. kms:Encrypt, kms:Decrypt).
  • Opcionálisan egy feltételt (pl. csak egy adott IP-címtartományból).
  • Egy „grantee principal” és egy „retiring principal” (aki visszavonhatja az engedélyt).

A Grants rugalmasságot biztosítanak, de fontos szem előtt tartani, hogy a kulcspolitikák és az IAM politikák továbbra is érvényben maradnak. A hozzáféréshez minden vonatkozó politikai elemnek engedélyeznie kell a műveletet.

Aliasok (Aliases)

Az aliasok emberi olvasásra alkalmas neveket adnak a KMS kulcsokhoz. Egy KMS kulcsot a Key ID-je vagy az ARN-je alapján azonosítanak, de ezek hosszúak és nehezen megjegyezhetők. Az aliasok leegyszerűsítik a kulcsok referenciálását az alkalmazásokban és a parancssorban.

Például, ahelyett, hogy arn:aws:kms:us-east-1:123456789012:key/abcde123-4567-89ab-cdef-fedcba987654-t használnánk, használhatjuk az alias/my-application-key-t. Egy alias mindig egy adott KMS kulcsra mutat, de ezt a mutatót bármikor megváltoztathatjuk, hogy egy másik KMS kulcsra mutasson, anélkül, hogy az alkalmazás kódját módosítanunk kellene. Ez rendkívül hasznos a kulcsrotáció kezelésében és a vészhelyreállítási forgatókönyvekben.

Kulcsrotáció (Key Rotation)

A kulcsrotáció a titkosítási kulcsok rendszeres időközönkénti cseréjét jelenti. Ez egy fontos biztonsági gyakorlat, amely csökkenti annak kockázatát, hogy egy kompromittált kulcs hosszú távon károkat okozzon. Az AWS KMS kétféle kulcsrotációt kínál:

  • Automatikus kulcsrotáció: A customer-managed szimmetrikus kulcsok esetében bekapcsolható az automatikus rotáció, amely évente egyszer automatikusan generál egy új kriptográfiai anyagot a kulcshoz. Az előző kulcsanyag továbbra is elérhető marad a régi adatok visszafejtéséhez, de az új titkosítási műveletek az új anyagot fogják használni. Ez egy zökkenőmentes folyamat, amely nem igényel beavatkozást az alkalmazások részéről.
  • Manuális kulcsrotáció: Aszimmetrikus kulcsok, HMAC kulcsok, vagy olyan szimmetrikus kulcsok esetében, amelyeknél az automatikus rotáció nem elegendő (pl. gyakoribb rotációra van szükség), manuálisan hozhat létre új kulcsot, és frissítheti az alkalmazásait, hogy az új kulcsot használják. Az aliasok itt is nagy segítséget nyújtanak.

Az automatikus rotáció az egyik legnagyobb előnye a KMS-nek, mivel jelentősen leegyszerűsíti ezt a kritikus biztonsági feladatot.

Boríték titkosítás (Envelope Encryption)

A boríték titkosítás egy kriptográfiai gyakorlat, amelyben egy adatot egy adatkulccsal titkosítanak, majd magát az adatkulcsot egy másik kulccsal (a KMS kulccsal) titkosítják. Ez a technika számos előnnyel jár:

  • Teljesítmény: A KMS kulcsokat (CMK-kat) nem használják közvetlenül nagy mennyiségű adat titkosítására, ami lassú és költséges lenne. Ehelyett gyorsabb és olcsóbb adatkulcsokat (Data Keys) generálnak és használnak erre a célra.
  • Biztonság: Az adatkulcsokat titkosított formában tárolják az adatok mellett, és csak akkor fejtik vissza őket, amikor az adatokra szükség van. A KMS kulcs soha nem hagyja el a KMS rendszert.
  • Rugalmasság: Lehetővé teszi, hogy egyetlen KMS kulccsal (CMK) nagyszámú adatkulcsot (és ezáltal adatot) védjen.

A folyamat a következőképpen néz ki:

  1. Az alkalmazás kéri a KMS-től egy adatkulcs generálását (GenerateDataKey API).
  2. A KMS generál egy véletlenszerű adatkulcsot és visszaadja azt két formában:
    • A plain text (visszafejtetlen) adatkulcs, amelyet az alkalmazás ideiglenesen használ az adatok titkosítására.
    • A ciphertext blob (titkosított) adatkulcs, amelyet a KMS kulcs (CMK) titkosított.
  3. Az alkalmazás a plain text adatkulcsot használja az adatok titkosítására.
  4. Az alkalmazás eldobja a plain text adatkulcsot (nem tárolja), és a titkosított adatokat a titkosított adatkulccsal együtt tárolja (pl. S3 objektum metaadatában).
  5. Amikor az adatokra szükség van, az alkalmazás kéri a KMS-től a titkosított adatkulcs visszafejtését (Decrypt API), a megfelelő KMS kulcs (CMK) segítségével.
  6. A KMS visszafejti az adatkulcsot, és visszaadja a plain text adatkulcsot az alkalmazásnak.
  7. Az alkalmazás a plain text adatkulcsot használja az adatok visszafejtésére.

Ez a mechanizmus biztosítja, hogy a tényleges titkosítási kulcsok (adatkulcsok) csak rövid ideig, memóriában létezzenek visszafejtetlen formában, és mindig egy KMS kulcs (CMK) védje őket.

Adatkulcsok (Data Keys)

Az adatkulcsok olyan titkosítási kulcsok, amelyeket közvetlenül az adatok titkosítására használnak a boríték titkosítási folyamat során. Ezek általában szimmetrikus kulcsok, és sokkal rövidebb életciklussal rendelkeznek, mint a KMS kulcsok (CMK-k).

Az adatkulcsokat a KMS generálja, és a KMS kulcsok (CMK-k) védik őket. Amikor egy alkalmazás adatokat titkosít, az adatkulcsot használja, majd az adatkulcsot titkosított formában tárolja az adatok mellett. Ez biztosítja, hogy az adatok titkosítva maradjanak, még akkor is, ha a tárolórendszer kompromittálódik, mivel az adatkulcs is védett.

Hogyan Működik az AWS KMS? Működési Folyamatok

Az AWS KMS titkos kulcsokat biztonságosan kezel és tárol.
Az AWS KMS titkosítási kulcsokat kezel, és biztonságosan támogatja az adattitkosítást felhőalapú alkalmazásokban.

Az AWS KMS működését a kulcsok létrehozásától a használatukig terjedő folyamatokon keresztül lehet a legjobban megérteni.

Kulcsok Létrehozása és Kezelése

Egy customer-managed KMS kulcs létrehozása az AWS konzolon, az AWS CLI-n vagy az AWS SDK-n keresztül történhet. A kulcs létrehozásakor megadhatja a kulcs típusát (szimmetrikus, aszimmetrikus), a kriptográfiai anyag forrását (KMS által generált, CloudHSM, külső), és egy kezdeti kulcspolitikát.

A létrehozás után a kulcs alapértelmezés szerint „Enabled” állapotban van. Bármikor letilthatja a kulcsot („Disabled” állapot), ami megakadályozza annak további használatát titkosítási vagy visszafejtési műveletekre. A kulcsot újra engedélyezheti, ha szükséges.

A kulcs törlése egy kétlépcsős folyamat. Először ütemeznie kell a kulcs törlését, ekkor a kulcs „Pending Deletion” állapotba kerül. Ebben az állapotban a kulcs már nem használható, de még visszaállítható. A törlésre egy váróidő (7-30 nap) van beállítva, amely alatt meggondolhatja magát. A váróidő letelte után a kulcs véglegesen törlődik, és az adatok, amelyeket ezzel a kulccsal titkosítottak, helyreállíthatatlanná válnak, hacsak nincs biztonsági másolatuk.

Titkosítási és Visszafejtési Folyamat

Mint korábban említettük, a KMS kulcsok (CMK-k) ritkán titkosítanak közvetlenül nagy adatblokkokat. Ehelyett a boríték titkosítási modellt használják.

Titkosítás:

  1. Az alkalmazás hívja a GenerateDataKey vagy GenerateDataKeyWithoutPlaintext API-t, megadva a használni kívánt KMS kulcsot (CMK) és az adatkulcs kívánt hosszát.
  2. A KMS generál egy véletlenszerű adatkulcsot.
  3. A KMS titkosítja az adatkulcsot a megadott KMS kulccsal (CMK).
  4. A KMS visszaadja az alkalmazásnak a visszafejtetlen (plain text) adatkulcsot és a titkosított adatkulcsot (ciphertext blob). (A GenerateDataKeyWithoutPlaintext csak a titkosított adatkulcsot adja vissza, ha az alkalmazásnak nincs szüksége a visszafejtetlenre, és a titkosítást egy másik szolgáltatás végzi.)
  5. Az alkalmazás a plain text adatkulcsot használja az adatok titkosítására.
  6. Az alkalmazás eldobja a plain text adatkulcsot a memóriából, és a titkosított adatokat együtt tárolja a titkosított adatkulccsal.

Visszafejtés:

  1. Az alkalmazás lekéri a titkosított adatokat és a hozzájuk tartozó titkosított adatkulcsot.
  2. Az alkalmazás hívja a Decrypt API-t, elküldve a titkosított adatkulcsot a KMS-nek.
  3. A KMS a megfelelő KMS kulcs (CMK) segítségével visszafejti az adatkulcsot.
  4. A KMS visszaadja az alkalmazásnak a plain text adatkulcsot.
  5. Az alkalmazás a plain text adatkulcsot használja az adatok visszafejtésére.
  6. Az alkalmazás eldobja a plain text adatkulcsot a memóriából.

Ez a folyamat biztosítja, hogy a kulcsok biztonságosan legyenek kezelve, és csak a KMS biztonságos környezetében legyenek visszafejtve.

Integráció Más AWS Szolgáltatásokkal

Az AWS KMS egyik legnagyobb ereje a zökkenőmentes integráció más AWS szolgáltatásokkal. Szinte minden AWS szolgáltatás, amely adatokat tárol, képes KMS kulcsokkal titkosítani azokat. Ez leegyszerűsíti a megfelelőségi követelmények teljesítését és a biztonsági rétegek hozzáadását.

Néhány példa az integrációra:

  • Amazon S3 (Simple Storage Service): Használhatja a KMS-t az S3 objektumok titkosítására (Server-Side Encryption with KMS – SSE-KMS). Amikor feltölt egy objektumot, az S3 kéri a KMS-től egy adatkulcsot, titkosítja az objektumot, majd a titkosított adatkulccsal együtt tárolja.
  • Amazon EBS (Elastic Block Store): Az EBS kötetek titkosíthatók KMS kulcsokkal. Ez azt jelenti, hogy a kötetekre írt összes adat, a pillanatképek (snapshots) és a kötetekről létrehozott új kötetek is automatikusan titkosítva lesznek.
  • Amazon RDS (Relational Database Service): Az RDS adatbázispéldányok titkosíthatók KMS kulcsokkal. Ez magában foglalja az adatbázis tárolóját, a pillanatképeket, a naplókat és a biztonsági másolatokat is.
  • Amazon DynamoDB: A DynamoDB táblák titkosíthatók KMS kulcsokkal. A tárolt adatok és az indexek is titkosítva lesznek.
  • AWS Lambda: A Lambda környezeti változók titkosíthatók KMS kulcsokkal.
  • AWS Systems Manager Parameter Store: A titkos paraméterek KMS kulcsokkal titkosíthatók.
  • AWS Secrets Manager: A Secrets Manager automatikusan KMS kulcsokat használ a tárolt titkok titkosítására.
  • Amazon SageMaker: A SageMaker notebookok, modell tárolók és képzési adatok titkosíthatók KMS kulcsokkal.

Ezek az integrációk jelentősen leegyszerűsítik az adatok védelmét az AWS felhőben, mivel a titkosítási logikát nem kell az alkalmazásokba beépíteni, azt az AWS szolgáltatások kezelik a KMS segítségével.

Hozzáférés-szabályozás (Access Control)

A KMS kulcsokhoz való hozzáférés ellenőrzése kritikus fontosságú. Az AWS KMS két fő mechanizmust használ a hozzáférés-szabályozásra:

  1. Kulcspolitikák (Key Policies): Ahogy korábban említettük, minden customer-managed KMS kulcshoz tartozik egy kulcspolitika, amely alapértelmezetten meghatározza, ki férhet hozzá a kulcshoz és milyen műveleteket végezhet vele. Ez a politika közvetlenül a kulcshoz van csatolva.
  2. IAM Politikák (IAM Policies): Az AWS Identity and Access Management (IAM) politikák lehetővé teszik a felhasználók, csoportok és szerepkörök engedélyeinek finomhangolását. Az IAM politikákban megadhatja, hogy egy princpial milyen KMS műveleteket végezhet egy adott kulcson vagy kulcsokon.

A KMS hozzáférés-szabályozása a következő logikán alapul: egy kérésnek engedélyezettnek kell lennie mind a kulcspolitika, mind az IAM politika (ha van) által. Ha bármelyik megtagadja a hozzáférést, a művelet sikertelen lesz. Ez a „deny by default” elv maximális biztonságot nyújt.

A kulcspolitikák különösen fontosak, mert ők adják az elsődleges engedélyt a kulcsra. Ha egy kulcspolitika nem ad engedélyt egy IAM felhasználónak vagy szerepkörnek a kulcs használatára, akkor az IAM politika sem tudja felülírni ezt a korlátozást.

Auditálás és Naplózás (Auditing and Logging)

Az AWS KMS minden API hívását, beleértve a kulcsok létrehozását, használatát és törlését, rögzíti az AWS CloudTrail. A CloudTrail egy szolgáltatás, amely naplózza az AWS fiókjában végrehajtott összes API hívást, beleértve a felhasználó, a dátum, az idő és a kérés paramétereit.

Ez a részletes naplózás létfontosságú a biztonsági auditokhoz, a megfelelőségi követelmények teljesítéséhez és a potenciális biztonsági incidensek kivizsgálásához. Segítségével pontosan nyomon követhető, hogy ki, mikor és milyen módon használta a KMS kulcsokat. A CloudTrail naplók integrálhatók az Amazon CloudWatch-val riasztások beállításához, vagy az Amazon S3-mal hosszú távú tároláshoz és elemzéshez.

A kulcskezelés központosítása és az auditálhatóság biztosítása az AWS KMS legfontosabb előnyei közé tartozik, lehetővé téve a szervezetek számára, hogy teljes körű átláthatóságot és kontrollt gyakoroljanak kritikus titkosítási eszközeik felett.

Magas Rendelkezésre Állás és Tartósság

Az AWS KMS-t úgy tervezték, hogy rendkívül magas rendelkezésre állást és tartósságot biztosítson. A KMS kulcsok kriptográfiai anyaga redundánsan tárolódik több rendelkezésre állási zónában (Availability Zones) egy adott AWS régióban. Ez azt jelenti, hogy még egy teljes rendelkezésre állási zóna kiesése esetén is a KMS kulcsok továbbra is elérhetők maradnak a kriptográfiai műveletekhez.

Ez a robusztus architektúra biztosítja, hogy az adatok titkosítása és visszafejtése folyamatosan működjön, minimalizálva az üzemszünetet és garantálva az adatokhoz való hozzáférést.

Az AWS KMS Biztonsági Szempontjai

Az AWS KMS a legmagasabb szintű biztonsági szabványoknak megfelelően épült, hogy megvédje az Ön titkosítási kulcsait és adatait.

Hardveres Biztonsági Modulok (HSM-ek)

A KMS kulcsok kriptográfiai anyaga hardveres biztonsági modulokban (HSM-ekben) van tárolva. Ezek a HSM-ek fizikailag és logikailag is védettek, és a Federal Information Processing Standard (FIPS) 140-2 Level 2 vagy Level 3 szabványnak megfelelően vannak validálva. Ez azt jelenti, hogy a kulcsanyag soha nem hagyja el a HSM-et visszafejtetlen formában, és a kriptográfiai műveletek is a HSM biztonságos környezetében zajlanak.

Az AWS szigorú biztonsági protokollokat alkalmaz a HSM-ek fizikai és logikai védelmére, beleértve a szigorú hozzáférés-szabályozást, a behatolásérzékelést és a rendszeres auditokat.

FIPS 140-2 Megfelelőség

A FIPS 140-2 egy amerikai kormányzati szabvány, amely a kriptográfiai modulok biztonsági követelményeit határozza meg. Az AWS KMS-t úgy tervezték és implementálták, hogy megfeleljen ennek a szabványnak. Ez a megfelelőség különösen fontos a szabályozott iparágakban (pl. pénzügy, egészségügy) működő szervezetek számára, amelyeknek szigorú biztonsági és megfelelőségi előírásoknak kell eleget tenniük.

A Legkevesebb Jog Elve (Principle of Least Privilege)

Az AWS KMS szigorúan betartja a legkevesebb jog elvét. Ez azt jelenti, hogy minden felhasználónak, szerepkörnek és szolgáltatásnak csak a feladatai elvégzéséhez feltétlenül szükséges engedélyeket kell megadni. A kulcspolitikák és az IAM politikák finomhangolt beállításával pontosan szabályozható, hogy ki milyen műveleteket végezhet a KMS kulcsokkal.

Például, egy alkalmazásnak, amely adatokat titkosít, csak a kms:GenerateDataKey engedélyre van szüksége, míg egy másik alkalmazásnak, amely adatokat fejt vissza, a kms:Decrypt engedélyre. A kulcsok kezeléséért felelős adminisztrátoroknak lehetnek szélesebb körű engedélyeik, de ezeket is a lehető legszűkebb körre kell korlátozni.

Adat Titkosítása a Tárolás és Átvitel Során (Encryption at Rest and in Transit)

Az AWS KMS segít az adatok titkosításában mind a tárolás (encryption at rest), mind az átvitel (encryption in transit) során. Amikor az adatok a KMS-en keresztül titkosítva vannak, azok titkosított formában tárolódnak az AWS szolgáltatásokban (pl. S3, EBS).

Továbbá, minden kommunikáció a felhasználók és a KMS között, valamint a KMS és más AWS szolgáltatások között TLS/SSL-en keresztül titkosított, biztosítva az adatok védelmét az átvitel során.

Gyakori Felhasználási Esetek (Use Cases)

Az AWS KMS rendkívül sokoldalú, és számos felhasználási esetre alkalmas az adatbiztonság megerősítésére:

  • Adatbázis titkosítás: Az Amazon RDS, Amazon Aurora és Amazon DynamoDB adatbázisok titkosítása KMS kulcsokkal, biztosítva az érzékeny adatok védelmét az adatbázis szintjén.
  • Tárolt adatok titkosítása: Az Amazon S3, Amazon EBS és Amazon EFS adatok titkosítása, ami elengedhetetlen a felhőalapú adattárolás biztonságához.
  • Alkalmazásszintű titkosítás: Az alkalmazások közvetlenül használhatják a KMS API-kat az érzékeny adatok titkosítására és visszafejtésére, mielőtt azokat adatbázisba vagy fájlrendszerbe írnák. Ez nagyobb kontrollt biztosít a titkosítási folyamat felett.
  • Titkok kezelése: Az AWS Secrets Manager és az AWS Systems Manager Parameter Store KMS kulcsokat használ a tárolt hitelesítő adatok, API kulcsok és egyéb titkok titkosítására. Ez központosított és biztonságos módot biztosít a titkok kezelésére az alkalmazások és szolgáltatások számára.
  • Konfigurációs adatok titkosítása: Érzékeny konfigurációs adatok, mint például adatbázis jelszavak vagy API kulcsok, titkosítása, mielőtt azokat verziókezelő rendszerekbe vagy környezeti változókba helyeznék.
  • Naplók titkosítása: Az AWS CloudWatch Logs és az AWS CloudTrail naplók titkosítása, biztosítva, hogy a biztonsági és működési adatok védettek legyenek.
  • Konténeres alkalmazások: A Kubernetes (EKS) titkosítja a Secrets-eket KMS-sel, és a Docker Image Registry (ECR) is használhatja a KMS-t a tárolt image-ek titkosítására.
  • Adat-maszkolás és tokenizálás: Bár nem direkt felhasználási eset, a KMS kulcsok felhasználhatók egyéni adat-maszkoló vagy tokenizáló megoldások alapjául, ahol az eredeti érzékeny adatokat egy tokenre cserélik, és a leképezést KMS által védett adatbázisban tárolják.

Bevált Gyakorlatok (Best Practices) az AWS KMS Használatához

Az AWS KMS hatékony és biztonságos használatához érdemes betartani néhány bevált gyakorlatot:

  • Alkalmazza a legkevesebb jog elvét: Adjon csak annyi engedélyt, amennyi feltétlenül szükséges. Ne adjon kms:* engedélyt, hacsak nem abszolút szükséges. Finomhangolja az engedélyeket a kulcspolitikákban és az IAM politikákban.
  • Használjon aliasokat: Az aliasok használata leegyszerűsíti a kulcsok referenciálását és rugalmasságot biztosít a kulcsrotáció és a vészhelyreállítás során. Alkalmazáskódban mindig az aliast használja a kulcs ARN-je helyett.
  • Engedélyezze az automatikus kulcsrotációt: Customer-managed szimmetrikus kulcsok esetén mindig kapcsolja be az automatikus kulcsrotációt. Ez jelentősen növeli a biztonságot anélkül, hogy beavatkozást igényelne az alkalmazásból.
  • Gyakorolja a kulcs törlését: Mielőtt éles környezetben törölne egy kulcsot, győződjön meg róla, hogy megértette a következményeket. Gyakorolja a törlési folyamatot tesztkörnyezetben. Ne feledje, hogy a törölt kulccsal titkosított adatok visszafejthetetlenné válnak.
  • Monitorozza a KMS tevékenységet: Használja az AWS CloudTrail-t a KMS API hívások naplózására. Állítson be CloudWatch riasztásokat a gyanús tevékenységekre, például sikertelen visszafejtési kísérletekre vagy kulcs letiltására.
  • Használjon titkosítási kontextust: Amikor titkosít vagy visszafejt adatokat a KMS-en keresztül, használjon titkosítási kontextust (encryption context). Ez egy opcionális, nem titkosított kulcs-érték pár készlet, amelyet a KMS a titkosítási műveletekhez köt. A visszafejtéshez pontosan ugyanazt a titkosítási kontextust kell megadni, ami további védelmi réteget biztosít, és segíti az auditálást.
  • Kerülje a KMS kulcsok megosztását régiók között: Bár a multi-region kulcsok léteznek, általában jobb, ha a kulcsok az adott régióban maradnak, hacsak nincs egyértelmű üzleti igény a globális megosztásra.
  • Tervezze meg a vészhelyreállítást: Gondolja át, mi történik, ha egy kulcs törlődik vagy hozzáférhetetlenné válik. Legyen terv a titkosított adatok helyreállítására.
  • Rendszeresen auditálja a kulcspolitikákat: Győződjön meg róla, hogy a kulcspolitikák és az IAM politikák továbbra is megfelelnek a biztonsági követelményeknek, és nincsenek felesleges engedélyek.
  • Használja a szolgáltatásintegrációkat: Ha egy AWS szolgáltatás támogatja a KMS-sel való integrációt a titkosításhoz, használja azt. Ez leegyszerűsíti a biztonsági feladatokat és kihasználja a KMS robusztus képességeit.

Az AWS KMS Árképzése

Az AWS KMS árazása kulokezelés és API-hívások alapján történik.
Az AWS KMS árképzése használatalapú, titkos kulcsok létrehozása és lekérése alapján történik, rugalmas költségkezeléssel.

Az AWS KMS árazása viszonylag egyszerű, és két fő komponensből áll:

  1. Tárolt kulcsok száma: Díjat számítanak fel minden customer-managed KMS kulcsért, amelyet a fiókjában tárol. Az ár általában havi díj kulcsonként.
  2. Kriptográfiai kérések száma: Díjat számítanak fel minden API hívásért, amelyet a KMS-hez intéz (pl. Encrypt, Decrypt, GenerateDataKey). Az ár általában a kérések milliójára vonatkozik.

Az AWS-owned kulcsok és az AWS-managed kulcsok használatáért általában nem számítanak fel közvetlen KMS díjat, azok a szolgáltatás díjába épülnek be, amelyeket használnak (pl. S3, EBS). Fontos ellenőrizni az AWS KMS hivatalos árképzési oldalát a legfrissebb és régióspecifikus információkért.

A boríték titkosítás használata segít optimalizálni a költségeket, mivel kevesebb KMS API hívásra van szükség az adatok titkosításához és visszafejtéséhez, mint ha minden adatblokkot közvetlenül a KMS-sel titkosítanánk.

Fejlettebb KMS Koncepciók

Az alapvető funkciókon túl az AWS KMS néhány fejlettebb képességet is kínál, amelyek még nagyobb rugalmasságot és kontrollt biztosítanak.

Több régiós kulcsok (Multi-Region Keys)

A több régiós kulcsok lehetővé teszik ugyanazon logikai kulcs replikálását több AWS régióban. Ez rendkívül hasznos globális alkalmazások és vészhelyreállítási forgatókönyvek esetén, ahol az adatok titkosításához vagy visszafejtéséhez ugyanazt a kulcsot kell használni különböző régiókban.

Ahelyett, hogy minden régióban külön kulcsot hozna létre és manuálisan szinkronizálná azokat, a több régiós kulcsok biztosítják, hogy a kulcsanyag konzisztens legyen a replikált régiókban, miközben minden régióban saját ARN-nel és kulcspolitikával rendelkeznek. Ez leegyszerűsíti a globális alkalmazások kulcskezelését és csökkenti a komplexitást.

Egyéni kulcstárolók (Custom Key Stores)

Az egyéni kulcstárolók lehetővé teszik, hogy a KMS kulcsok kriptográfiai anyagát az Ön által felügyelt hardverben tárolja, nem pedig az AWS által felügyelt HSM-ekben. Két típus létezik:

  1. AWS CloudHSM custom key store: Ebben az esetben a KMS kulcsok kriptográfiai anyagát egy saját AWS CloudHSM klaszterben tárolja és kezeli. Ez a megoldás maximális kontrollt biztosít a kulcsanyag felett, miközben továbbra is élvezheti a KMS felügyelt szolgáltatásának előnyeit. Ön felelős a CloudHSM klaszter üzemeltetéséért és karbantartásáért.
  2. External key store (XKS): Az XKS lehetővé teszi a KMS kulcsok kriptográfiai anyagának tárolását és kezelését egy külső kulcstárolóban, amely az Ön adatközpontjában vagy egy másik felhőszolgáltató által üzemeltetett HSM-ben található. A KMS proxyként működik, továbbítva a kriptográfiai kéréseket a külső kulcstárolónak. Ez a megoldás a legmagasabb szintű szuverenitást biztosítja a kulcsanyag felett, mivel az soha nem hagyja el az Ön ellenőrzése alatt álló környezetet.

Ezek a fejlettebb lehetőségek olyan szervezetek számára ideálisak, amelyek szigorú szabályozási követelményekkel vagy egyedi biztonsági igényekkel rendelkeznek, amelyek túlmutatnak a standard KMS képességein.

Share This Article
Leave a comment

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük