AWS KMS
Encryption Cloud Practitioner Solutions Architect Associate SysOps Administrator

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.

Czy wiesz, ze...

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.

Pro Tip

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.

Uwaga

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.

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

Poczatkujacy

Envelope 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.

Poczatkujacy

Key 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.

Zaawansowany

Automatyczna 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.

Poczatkujacy

Multi-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.

Zaawansowany

Kontrola 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.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS KMS bezposrednio w konsoli AWS.

Do czego sluzy AWS KMS?

01

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.

02

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.

03

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ł.

04

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.

Aplikacja Wywoluje GenerateDataKey lub Encrypt/Decrypt przez AWS SDK
Data key
AWS KMS
AWS KMS Generuje i zarzadza kluczami w modulach HSM (FIPS 140-2 Level 3)
Encrypted data
Envelope Encryption Data key szyfruje dane lokanie, CMK szyfruje data key
S3 / EBS / RDS
S3 / EBS / RDS Przechowuja zaszyfrowane dane i zaszyfrowany data key
CloudTrail
CloudTrail Loguje kazde uzycie klucza - who, when, what, from where
Klucze KMS nigdy nie opuszczaja modulow HSM w postaci niezaszyfrowanej - nawet AWS nie ma do nich dostepu.
Envelope encryption pozwala szyfrowac dane dowolnej wielkosci, omijajac limit 4 KB bezposredniego szyfrowania KMS.
Automatyczna rotacja zachowuje stary material - istniejace dane nie wymagaja ponownego szyfrowania.

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.

Twoj wynik: 0 / 3

1. Co to jest Envelope Encryption?

2. Co się stanie jeśli usuniesz klucz KMS?

3. Ile kosztuje AWS managed key (np. aws/s3)?

Chcesz poznac AWS KMS w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS KMS krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy