Lekcja 7 · Dzień 5
Compliance bez korpo-bełkotu
PCI DSS w praktyce infra: segmentacja, brak SSH „bo wygodnie”, KMS, logi które ktoś czyta, self-service bez dziurawienia baseline’u. Nie musisz być QSA. Musisz umieć nie poszerzyć CDE jednym peeringiem.
Trzy reżimy, trzy inne rozmowy
| Reżim | O czym jest | Co rusza infra |
|---|---|---|
| PCI DSS (obecnie 4.0 / 4.0.1) | Ochrona danych kartowych (CHD/SAD) | CDE, segmentacja, szyfrowanie, dostęp, logi, pentest segmentacji |
| ISO 27001:2022 | ISMS — system zarządzania bezpieczeństwem | Polityki, assety, ryzyka, ciągłość, audyt. Pliant ma certyfikat publicznie. |
| SOC 2 | Raport audytora o kontrolach (security + opcjonalnie availability, confidentiality…) | W JD. Na stronie mniej wyeksponowane. Pytaj o Type II i zakres. |
PCI boli najbardziej, bo źle zaprojektowane konto wciąga pół AWS do zakresu. ISO/SOC2 bolą procesem (change, access review, evidence).
CDE i zakres — „Requirement 0”
PCI SSC mówi wprost: segmentacja nie jest wymaganiem, ale bez niej cała sieć jest in-scope. Potocznie „Req 0”.
- CDE — systemy, które przechowują, przetwarzają lub przesyłają CHD, plus systemy, które to segmentują.
- Connected-to — nie trzyma PAN, ale ma łączność z CDE. Nadal in-scope, lżejsze kontrole, ale audytor pyta.
- Out of scope — nie może wpłynąć na bezpieczeństwo CHD nawet po kompromitacji. To trzeba udowodnić (pentest segmentacji, Req 11.4.5 w v4).
CHD: PAN, SAD (CVV, PIN, pełny track). Token / last4 / BIN to zwykle już nie CHD — dlatego tokenizacja zmniejsza CDE.
Dwanaście wymagań PCI — wersja dla infra (v4.x)
Nie recytuj listy na pamięć jak katechizmu. Umiej 1–2 zdania per grupa:
- Sieć: NSC (firewall/SG/NACL), brak bezpośredniego wejścia z internetu do CDE.
- Domyślne hasła: zero vendor default, CIS AMI, brak
admin/admin. - Ochrona CHD: nie trzymaj SAD po autoryzacji. PAN: szyfrowanie, tokenizacja, maskowanie.
- Szyfrowanie transmisji: TLS wszędzie, żadnego plaintext do Visa/DB.
- Malware: na compute, który w ogóle jest w CDE (mniej bolącego na Lambdzie niż na hopach Windows).
- Bezpieczny development: review, SAST, zależności. Pipeline in-scope, jeśli buduje CDE.
- Dostęp: least privilege, MFA, unikalne ID. Role, nie shared user.
- Identyfikacja użytkowników: kto, co, kiedy. Session name w STS = ticket ID.
- Fizyczne: u Ciebie: AWS is physical; Twoje: laptop, biuro, nośniki. Mało, ale QSA zapyta o media i o to, kto wchodzi do DC — „AWS Shared Responsibility”.
- Logi: audit trail, time sync, 12 miesięcy (90 dni od razu). Ktoś musi czytać — alerty, nie taśma.
- Testy: ASV, pentest, test segmentacji.
- Polityka: ISMS, szkolenia. ISO pomaga, nie zastępuje PCI.
v4 dodał m.in. silniejszy nacisk na uwierzytelnianie (MFA), na skrypty stron płatniczych (mniej Twoje, bardziej product) i na ciągłe wykonywanie, nie „raz w roku screenshot”.
Pięć praktyk z raportu
Segmentacja sieci
Konto PCI + VPC + brak trasy z dev + PrivateLink na konkretny port + SG default deny. AWS: account boundary > VPC > subnet > SG. Warstwy się uzupełniają, nie zastępują.
Brak SSH do prod „bo wygodnie”
SSM Session Manager, time-bound, nagrywane, IAM. W CDE często: zero interactive login, tylko immutable deploy. Break-glass: 4-eyes, ticket, expiry 1h, alert do security.
KMS, encryption at rest / in transit
CMK per konto (albo per CDE), rotacja, policy klucza (kto może encrypt/decrypt/schedule deletion). S3, EBS, RDS, Secrets Manager — wszystkie z kms_key_id. TLS 1.2+ ; RDS force_ssl. Klucz nie wychodzi. Envelope encryption, jeśli sami trzymacie PAN (lepiej: nie trzymać, tokenizować).
Audit logi, które ktoś naprawdę czyta
Org CloudTrail → log-archive (S3 Object Lock). GuardDuty, Security Hub, VPC Flow. Datadog/SIEM na to, nie 3 TB JSON-a w Glacier jako „compliance”. Alert: root login, wyłączenie Traila, public SG na 5432, KMS schedule-deletion, AssumeRole z nieznanego IP do PCI.
Self-service bez dziurawienia baseline’u
To jest serce roli. Product chce SG, kolejkę, rolę IAM. Dostaje:
- moduł Terraform z bezpiecznymi defaultami,
- permission boundary,
- Spacelift policy (nie public, nie
*:*, musi być tagowner), - wyjątki: ticket z expiry, recertyfikacja 30/90 dni, nie wieczny allow.
Pytanie z raportu: product chce wyjątek IAM „na już” — pełna odpowiedź w pytaniach.
Shared Responsibility — zdanie, które trzeba umieć
AWS jest PCI DSS certified jako platforma (wiele usług w zakresie). To nie sprawia, że Twoja aplikacja jest zgodna. QSA ocenia Twój CDE. „Mamy RDS, więc PCI zrobione” to błąd juniora.
Ćwiczenie
Wypisz 8 kontroli, które jako platformowiec włączasz w module account-baseline. Przy każdej: które wymaganie PCI/SOC2 z grubsza pokrywa. 10 minut. Potem porównaj z whiteboardem.