Amazon DEA-C01: Bezpieczeństwo, ład i zgodność danych — Przewodnik do nauki
Część Amazon Data Engineer Associate DEA-C01 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.
Ta domena obejmuje mechanizmy kontroli, usługi i wzorce operacyjne, które zapewniają ochronę, audytowalność i zgodność danych, jednocześnie umożliwiając analitykę. Inżynierowie danych muszą projektować szyfrowanie, kontrolę dostępu, wykrywanie i maskowanie danych w taki sposób, aby przepływy analityczne działały bez ujawniania danych osobowych (PII) i naruszania integracji między usługami. Poniższa sekcja koncentruje się na konkretnych usługach i konfiguracjach AWS — szyfrowaniu w S3/Redshift, KMS, IAM i politykach zasobów, szczegółowej kontroli dostępu w Lake Formation, wykrywaniu danych przez Macie oraz kontroli sieciowej, takiej jak VPC endpoints — a także na kryteriach decyzyjnych, które wykorzystasz podczas projektowania potoków danych.
Szyfrowanie danych w spoczynku (at rest) i w tranzycie (in transit) dla usług danych
Szyfruj dane w tranzycie za pomocą TLS dla wszystkich punktów końcowych usług AWS i klienckich SDK; wymuszaj to za pomocą punktów końcowych usług, ALBs, API Gateway oraz poprzez wymaganie HTTPS w politykach bucketów S3. Dla szyfrowania danych w spoczynku w S3 wybierz jedną z opcji: SSE-S3, SSE-KMS, SSE-C lub szyfrowanie po stronie klienta (client-side encryption), uwzględniając następujące kompromisy oraz wzorce użycia w CLI/konsoli:
- SSE-S3 (AES-256 zarządzane przez AWS): najprostsze rozwiązanie; włącz domyślnie dla bucketa za pomocą polecenia
undefined
.
- SSE-KMS (klucze AWS KMS): obsługuje rotację kluczy, polityki IAM i polityki kluczy KMS oraz audyt przez CloudTrail; ustaw jako domyślne dla bucketa za pomocą SSE-KMS i podaj
undefined
. Wymaga przyznania usługom i podmiotom (principals) zarówno uprawnień IAM, jak i dostępu w polityce klucza KMS (zobacz uwagę o polityce klucza KMS poniżej).
- SSE-C (klucze dostarczane przez klienta): klient dostarcza klucz przy każdym żądaniu; nie używa KMS; złożoność operacyjna związana z transferem kluczy i obsługą ich kompromitacji.
- Szyfrowanie po stronie klienta (client-side encryption): szyfrowanie przed wysłaniem za pomocą AWS Encryption SDK lub bibliotek klienckich do szyfrowania kopertowego (envelope encryption); klucze są zarządzane przez klienta lub poprzez niestandardowe użycie KMS. Używaj, gdy musisz zachować pełną kontrolę nad materiałem klucza w postaci jawnej.
Kryteria decyzyjne:
- Używaj SSE-S3, gdy zależy Ci na niskim narzucie operacyjnym i braku konieczności zarządzania kluczami.
- Używaj SSE-KMS, aby zapewnić audytowalność, rotację kluczy oraz gdy udostępniasz zaszyfrowane snapshoty między kontami lub usługami.
- Używaj SSE-C lub szyfrowania po stronie klienta, gdy musisz mieć pewność, że AWS nigdy nie będzie mieć dostępu do tekstu jawnego ani materiału klucza.
Szyfrowanie w Redshift: włącz szyfrowanie podczas tworzenia klastra, podając
undefined
i
undefined
lub przez konsolę. Szyfrowania nie można włączyć na istniejącym, niezaszyfrowanym klastrze; aby zaszyfrować istniejący snapshot klastra i przywrócić go do nowego, zaszyfrowanego klastra, użyj
undefined
lub procesu RestoreFromClusterSnapshot z opcją
undefined
. Polityka klucza KMS musi jawnie zezwalać usłudze Redshift na używanie klucza (
undefined
,
undefined
,
undefined
).
Dla wszystkich usług korzystających z KMS zapewnij szyfrowanie TLS w tranzycie i ogranicz ekspozycję tekstu jawnego w logach i snapshotach.
Polityki IAM i polityki oparte na zasobach (resource-based policies) do kontroli dostępu do danych
Polityki tożsamości IAM oraz polityki oparte na zasobach (polityki bucketów S3, polityki kluczy KMS, polityki VPC endpoint) wspólnie określają dostęp. Konkretne podejście:
- Używaj ról IAM dla podmiotów (principals) obliczeniowych/usług (EMR, Glue, Redshift, Lambda) i dołączaj polityki o minimalnych uprawnieniach (least-privilege), zezwalające na niezbędne akcje w S3, Glue, Redshift i KMS.
- Używaj polityk opartych na zasobach, aby ograniczyć, które podmioty (principals) lub punkty końcowe VPC mogą uzyskiwać dostęp do bucketów S3 lub API; stosuj jawne instrukcje Deny ostrożnie, ponieważ Deny ma pierwszeństwo przed Allow.
- Dla dostępu ograniczonego do VPC, utwórz bramkowy punkt końcowy VPC (gateway VPC endpoint) dla S3 oraz interfejsowe punkty końcowe (interface endpoints) dla Glue, KMS, Secrets Manager i kontroluj dostęp za pomocą polityk punktów końcowych.
Wzorce użycia w CLI/konsoli:
- Tworzenie gateway endpoint:
undefined
- Tworzenie interface endpoint dla Glue:
undefined
Kryteria decyzyjne:
- Używaj polityk zasobów do egzekwowania ograniczeń między kontami (cross-account) lub do wymagania, aby ruch pochodził z określonych punktów końcowych VPC.
- Używaj IAM do uprawnień skoncentrowanych na tożsamości, a polityk kluczy KMS do autoryzacji usług do używania kluczy — same uprawnienia IAM nie wystarczą, aby zezwolić na użycie KMS.
Szczegółowe uprawnienia w Lake Formation
Lake Formation centralizuje kontrolę dostępu do data lake w oparciu o Glue Data Catalog i zapewnia bezpieczeństwo na poziomie kolumn i wierszy dla zapytań w Athena i zadań w Glue. Kluczowe wzorce:
- Zarejestruj lokalizacje S3 jako lokalizacje data lake w Lake Formation i nadaj uprawnienie DATA_LOCATION_ACCESS roli, która odczytuje/zapisuje dane w tych lokalizacjach.
- Nadawaj uprawnienia na poziomie tabeli i kolumny za pomocą konsoli Lake Formation lub polecenia
undefined
; uprawnienia na poziomie kolumn używają parametru z listą kolumn i wpływają na zapytania w Athena i Glue, które korzystają z Data Catalog.
- Dla bezpieczeństwa na poziomie wierszy, zdefiniuj LF-tags lub filtry wierszy (row filters) na tabelach i dołącz polityki, które stosują predykaty do danych zwracanych przez Athena. Filtry na poziomie wierszy są ewaluowane przez usługę Lake Formation podczas planowania zapytania.
Szczegóły operacyjne:
- Ewaluowane są zarówno uprawnienia Lake Formation, jak i uprawnienia IAM; stosowany jest najbardziej restrykcyjny wynik. Upewnij się, że zadania mają zarówno dostęp do S3 poprzez rolę IAM, jak i nadane uprawnienia w Lake Formation.
- Używając Athena, ustaw grupę roboczą (workgroup) tak, aby korzystała z Glue Data Catalog i skonfiguruj lokalizację S3 dla wyników zapytań z odpowiednim dostępem w Lake Formation.
Kryteria decyzyjne:
- Używaj kontroli na poziomie kolumn w Lake Formation, gdy potrzebujesz ukryć wrażliwe kolumny przed analitykami w dalszych etapach przetwarzania.
- Używaj polityk na poziomie wierszy dla zbiorów danych typu multi-tenant, gdzie predykaty wierszy muszą ograniczać widoczność danych w zależności od podmiotu (principal).
- Nadal używaj polityk IAM i polityk bucketów S3 do egzekwowania kontroli na ogólnym poziomie (poziom bucketa/obiektu), a Lake Formation do szczegółowej kontroli dostępu opartej na katalogu.
Maskowanie danych, tokenizacja i obsługa danych PII
Wykrywaj dane PII za pomocą Amazon Macie, skanując buckety S3 i uruchamiając zadania klasyfikacji z zarządzanymi identyfikatorami danych. Macie zapewnia zautomatyzowane wykrywanie i alertowanie o PII, a wyniki mogą być kierowane do Security Hub lub CloudWatch Events w celu obsługi przez dalsze procesy. Konfiguruj zadania Macie przez konsolę lub poleceniem
undefined
, wybierz zakres bucketów S3 i wskaż zarządzane identyfikatory.
Dla maskowania i tokenizacji:
- Użyj transformacji AWS Glue (Glue ETL PySpark) lub AWS Lambda, aby zastosować deterministyczne lub zachowujące format maskowanie/tokenizację podczas pozyskiwania danych. Rozważ użycie zakładek zadań (job bookmarks) i parametrów zadań (job parameters) w AWS Glue Studio dla spójnego przetwarzania.
- W przypadku tokenizacji, gdzie tokeny muszą być odwracalne, użyj HSM wspieranego przez KMS lub usługi tokenizacji od firm trzecich; przechowuj mapy tokenów w zabezpieczonej tabeli DynamoDB zaszyfrowanej za pomocą KMS i ogranicz dostęp do autoryzowanych usług.
- Dla nieodwracalnego maskowania, zastosuj jednokierunkowe haszowanie (z solą), używając bezpiecznych soli z Secrets Manager i rotuj je ostrożnie, aby uniknąć zerwania złączeń (joins).
Sieć i ruch prywatny:
- Użyj S3 gateway endpoints oraz interface endpoints dla Glue i Secrets Manager, aby utrzymać ruch danych wewnątrz sieci AWS i uniknąć ekspozycji na publiczny internet. Połącz polityki VPC endpoint z politykami bucketów S3, aby ograniczyć dostęp do ruchu pochodzącego od podmiotów (principals) endpointu.
Częste pułapki i kryteria decyzyjne
- Szyfrowania Redshift nie można włączyć na istniejącym, niezaszyfrowanym klastrze; należy odtworzyć go z migawki do nowego klastra z opcją
undefined
, aby utworzyć zaszyfrowany klaster.
- Polityki kluczy KMS muszą jawnie przyznawać uprawnienia podmiotom (principal) usług danych AWS (np. glue.amazonaws.com, redshift.amazonaws.com) do operacji GenerateDataKey/Decrypt; same uprawnienia ról IAM są niewystarczające.
- Uprawnienia Lake Formation i IAM są oceniane jednocześnie — jeśli którekolwiek z nich odmawiają dostępu lub nie mają wymaganych nadań, dostęp zostanie zablokowany; należy nadać zarówno dostęp do S3 dla roli IAM, jak i uprawnienia do tabel/kolumn w Lake Formation.
- Polityki bucketów S3 z jawnym Deny nadpiszą uprawnienia Allow z IAM; przeprowadź audyt polityk bucketów pod kątem instrukcji Deny, które mogą nieumyślnie blokować role usług lub dostęp międzykontowy.
- Polityki VPC endpoint lub błędna konfiguracja endpointu mogą po cichu blokować ruch usług; zweryfikuj podmiot (principal) endpointu i powiązania z tablicami routingu dla gateway endpoints oraz grupy bezpieczeństwa dla interface endpoints.
- Macie wymaga dostępu do odczytu S3 i odpowiednich polityk bucketów; upewnij się, że podmiot (service principal) Macie ma zezwolenie lub uruchamiaj skanowanie z roli z wymaganymi uprawnieniami.
Problem praktyczny: Scenariusz użycia
Firma Acme Health Analytics przechowuje pliki CSV z danymi pacjentów w data lake na S3 i musi zapewnić analitykom dostęp do zanonimizowanych pól, zachowując jednocześnie możliwość wykonywania zapytań agregujących; ruch sieciowy nie może nigdy przechodzić przez publiczny internet.
- Zarejestruj lokalizacje data lake na S3 w Lake Formation i utwórz dedykowaną rolę administratora data lake.
- Skonfiguruj domyślne szyfrowanie bucketa za pomocą SSE-KMS i utwórz klucz KMS, którego polityka klucza jawnie przyznaje dostęp podmiotom (service principals) usług Glue, Athena i Redshift oraz rolom IAM analityków.
- Użyj Lake Formation, aby nadać analitykom uprawnienia SELECT na poziomie tabeli, ale zastosuj odmowy na poziomie kolumn dla kolumn z PII i utwórz filtry na poziomie wierszy, jeśli wymagana jest segmentacja wielodostępowa (multi-tenant).
- Uruchom zadania klasyfikacji Macie, aby odkryć wszelkie pozostałe dane PII w bucketach i naprawić je poprzez maskowanie/tokenizację w zadaniach Glue ETL; użyj wzorców szyfrowania po stronie klienta lub tokenizacji dla tokenów odwracalnych oraz haszowania dla maskowania nieodwracalnego.
- Utwórz S3 gateway VPC endpoint oraz interface endpoints dla Glue i Secrets Manager; zastosuj polityki endpointów, aby ograniczyć dostęp do ruchu z VPC i dostosuj polityki bucketów S3, aby zezwalać tylko na dostęp od podmiotu (principal) endpointu.
Uzasadnienie zgodne z najlepszymi praktykami AWS: połącz szyfrowanie wspierane przez KMS, szczegółową kontrolę dostępu w katalogu Lake Formation oraz prywatne VPC endpoints, aby wdrożyć obronę w głąb (defense-in-depth) — szyfrowanie chroni dane w spoczynku (at rest), Lake Formation kontroluje, które kolumny/wiersze są widoczne, a VPC endpoints unikają ekspozycji w sieci publicznej, podczas gdy polityki KMS zapewniają, że usługi mogą faktycznie odszyfrować dane.
← Zapytania i analityka danych · Wszystkie domeny · Monitorowanie potoków danych i rozwiązywanie problemów →
Przećwicz te pytania → · Testy na czas na ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Zdaj egzamin →