AWS KMS
AWS Key Management Service
Centralny punkt zarządzania kluczami szyfrowania w AWS. Szyfruj dane w S3, RDS, EBS, Lambda i dziesiątkach innych serwisów.
AWS KMS (Key Management Service) to zarządzany serwis do tworzenia i kontrolowania kluczy kryptograficznych używanych do szyfrowania danych. KMS integruje się z ponad 100 serwisami AWS - włączając szyfrowanie na S3, RDS, EBS, Lambda, SQS - wystarczy wskazać klucz KMS i dane są automatycznie szyfrowane.
KMS używa sprzętowych modułów bezpieczeństwa (HSM) certyfikowanych FIPS 140-2 do ochrony kluczy. Klucze nigdy nie opuszczają modułu HSM w formie niezaszyfrowanej. Dodatkowo KMS wspiera automatyczną rotację kluczy (co rok), audit log w CloudTrail (kto, kiedy, do czego użył klucza) i precyzyjną kontrolę dostępu przez Key Policies + IAM.
KMS obsługuje biliony żądań szyfrowania rocznie. Każdy klucz KMS jest chroniony przez dedykowane moduły HSM (Hardware Security Module) certyfikowane FIPS 140-2 Level 2/3. Nawet pracownicy AWS nie mają dostępu do Twoich kluczy.
Używaj kluczy AWS managed (aws/s3, aws/rds, aws/ebs) do podstawowego szyfrowania - są darmowe. Customer managed keys (CMK) twórz tylko gdy potrzebujesz kontroli nad rotacją, politykami lub cross-account sharing. Każdy CMK to $1/miesiąc.
Usunięcie klucza KMS jest NIEODWRACALNE i skutkuje trwałą utratą dostępu do WSZYSTKICH danych zaszyfrowanych tym kluczem. AWS wymusza minimum 7-dniowy okres oczekiwania przed faktycznym usunięciem. Zawsze sprawdź CloudTrail czy klucz nie jest używany.
AWS Key Management Service (KMS) to zarzadzany serwis do tworzenia i kontrolowania kluczy szyfrujacych. Klucze nigdy nie opuszczaja modulow HSM z certyfikatem FIPS 140-2 Level 3, co gwarantuje najwyzszy poziom bezpieczenstwa.
Tworzenie klucza CMK
Tworzysz Customer Managed Key (CMK) wybierajac typ - symetryczny (AES-256, domyslny) lub asymetryczny (RSA/ECC). Klucz jest generowany wewnatrz HSM i nigdy nie jest eksportowany w postaci jawnej.
Definiowanie key policy
Key policy to resource-based policy przypisana bezposrednio do klucza. Okresla kto moze uzywac klucza (kms:Encrypt, kms:Decrypt) i kto moze nim zarzadzac (kms:CreateGrant, kms:PutKeyPolicy). Domyslna policy daje root konta pelny dostep.
Generowanie data keys (envelope encryption)
GenerateDataKey zwraca data key w postaci jawnej (do szyfrowania danych) i zaszyfrowanej (do przechowywania). Dane szyfrujesz data key lokalnie, a zaszyfrowany data key zapisujesz obok danych. To pattern envelope encryption.
Szyfrowanie danych
Uzywasz jawnego data key do szyfrowania danych algorytmem AES-256-GCM. Po zaszyfrowaniu usuwasz jawny data key z pamieci i przechowujesz tylko zaszyfrowana wersje. Do odszyfrowania KMS odszyfrowuje data key, a Ty odszyfrowujesz dane.
Automatyczna rotacja kluczy
Wlaczenie automatic key rotation generuje nowy material kryptograficzny co rok (konfigurowalny okres 90-2560 dni). Stary material jest zachowany do deszyfrowania. Alias i ARN klucza sie nie zmieniaja - zero zmian w kodzie.
Audyt z CloudTrail
Kazde uzycie klucza KMS jest logowane w CloudTrail - kto, kiedy, z jakiego IP i dla jakiego zasobu wywoal operacje. To kluczowe dla compliance (SOC 2, PCI DSS, HIPAA) i wykrywania nieautoryzowanego dostepu.
Szyfrowanie w AWS jest wszechobecne, ale skuteczne zarzadzanie kluczami wymaga zrozumienia wzorcow, polityk i kosztow. Te wskazowki pomoga Ci wdrozyc encryption-at-rest prawidlowo.
AWS managed vs customer managed keys
AWS managed keys (aws/s3, aws/ebs) sa darmowe i automatyczne, ale nie mozesz kontrolowac polityk dostepu ani rotacji. Customer managed keys kosztuja $1/miesiac + $0.03/10000 wywolan API, ale daja pelna kontrole. Uzywaj CMK dla danych wrrazliwych.
PoczatkujacyEnvelope encryption - wzorzec obowiazkowy
Nigdy nie szyfruj duzych danych bezposrednio przez KMS API (limit 4 KB). Uzywaj GenerateDataKey do pobrania data key, szyfruj dane lokalnie, a zaszyfrowany data key przechowuj obok danych. AWS SDK robi to automatycznie.
PoczatkujacyKey policies vs IAM policies
Key policy jest wymagana i ma priorytet. IAM policies dzialaja tylko jesli key policy jawnie na to pozwala (domyslna policy to robi). Dla cross-account access musisz ustawic oba - key policy zezwalajaca na konto zewnetrzne i IAM policy w tym koncie.
ZaawansowanyAutomatyczna rotacja - wlacz i zapomnij
Wlacz automatic rotation dla wszystkich CMK. Nowy material kryptograficzny co rok, stary zachowany do deszyfrowania. Zero downtime, zero zmian w kodzie. Dla compliance wymagajacego czestszej rotacji, uzyj manual rotation z aliasami.
PoczatkujacyMulti-Region keys
Multi-Region keys replikuja material kryptograficzny do wybranych regionow. Dane zaszyfrowane w us-east-1 mozna odszyfrowac w eu-west-1 bez cross-region wywolan API. Kluczowe dla disaster recovery i globalnych aplikacji.
ZaawansowanyKontrola kosztow API
Kazde wywolanie KMS API kosztuje $0.03 za 10000 requestow. Przy duzym wolumenie uzywaj data key caching (AWS Encryption SDK cache data keys na czas/liczbe uzyc). Bez cache mozesz generowac tysiance wywolan/sekunde i niepotrzebne koszty.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS KMS bezposrednio w konsoli AWS.
Do czego sluzy AWS KMS?
Szyfrowanie danych w S3
Server-Side Encryption z kluczem KMS (SSE-KMS). Każdy obiekt w buckecie jest automatycznie szyfrowany. Audit log w CloudTrail pokazuje kto odszyfrował jakie dane.
Szyfrowanie dysków EBS i baz RDS
Włącz szyfrowanie na wolumenach EBS i instancjach RDS jednym parametrem. KMS szyfruje dane at rest transparentnie - aplikacja nie wymaga zmian.
Szyfrowanie sekretów w aplikacjach
Szyfruj zmienne środowiskowe Lambda, parametry w SSM Parameter Store, sekrety w Secrets Manager. Pełny audit trail kto, kiedy i co odszyfrował.
Compliance i regulacje
Spełniaj wymagania GDPR, PCI DSS, HIPAA - KMS zapewnia szyfrowanie danych at rest z certyfikowanymi modułami HSM i pełnym audytem.
Co musisz wiedziec?
KMS Key (CMK)
Klucz główny (master key) przechowywany w HSM. Nigdy nie opuszcza KMS. Dwa typy: AWS managed (darmowe, automatyczne) i Customer managed ($1/mies., pełna kontrola).
Envelope Encryption
Wzorzec: KMS generuje data key, aplikacja szyfruje dane data key-em, potem szyfruje data key kluczem KMS. Odszyfrowywanie: KMS odszyfrowuje data key, Ty odszyfrowujesz dane. Efektywne dla dużych plików.
Key Rotation
Automatyczna rotacja materiału kryptograficznego co rok. Stary materiał zachowywany do odczytu starych danych. Nowe dane szyfrowane nowym materiałem. Transparentna dla aplikacji.
Key Policy
Polityka JSON definiująca kto może używać klucza i zarządzać nim. Domyślna polityka daje rootowi konta pełen dostęp. Można ograniczyć do konkretnych ról/użytkowników.
Grants
Tymczasowe, programowe uprawnienia do klucza KMS. Serwisy AWS (np. EBS) używają Grants żeby na chwilę uzyskać dostęp do klucza. Bardziej elastyczne niż IAM policies.
Szyfrowanie danych z envelope encryption
Architektura szyfrowania danych w spoczynku z uzyciem KMS, envelope encryption i audytem przez CloudTrail. Pattern stosowany przez S3, EBS, RDS i inne serwisy AWS.
Ile kosztuje AWS KMS?
AWS managed keys
Klucze zarządzane przez AWS (aws/s3, aws/ebs, aws/rds). Tworzone automatycznie, bez dodatkowych kosztów.
$0.00/miesiąc - darmowe
Customer managed keys
Klucze zarządzane przez Ciebie. Pełna kontrola nad politykami, rotacją, usuwaniem.
$1.00/miesiąc za klucz
Żądania API
Płacisz za wywołania Encrypt, Decrypt, GenerateDataKey itp.
$0.03 za 10 000 żądań
Free Tier
20 000 żądań KMS miesięcznie za darmo. Klucze AWS managed nie mają limitu.
20K darmowych operacji szyfrowania/mies.
Przyklady AWS CLI
Utwórz klucz KMS
Tworzy nowy symetryczny klucz szyfrowania
aws kms create-key \
--description "Klucz do szyfrowania danych aplikacji" \
--key-usage ENCRYPT_DECRYPT \
--origin AWS_KMS
Zaszyfruj tekst
Szyfruje plaintext kluczem KMS (max 4 KB bezpośrednio)
aws kms encrypt \
--key-id alias/moj-klucz \
--plaintext "MojeSuperTajneHaslo123" \
--output text \
--query CiphertextBlob
Generuj data key
Envelope encryption: generuje data key do szyfrowania dużych plików
aws kms generate-data-key \
--key-id alias/moj-klucz \
--key-spec AES_256
Quiz: AWS KMS
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Co to jest Envelope Encryption?
2. Co się stanie jeśli usuniesz klucz KMS?
3. Ile kosztuje AWS managed key (np. aws/s3)?
Czesto uzywane razem z AWS KMS
Czytaj więcej o AWS KMS
Chcesz poznac AWS KMS w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS KMS krok po kroku. Teoria + praktyka od zera.