Tajné údaje nepatří do kódu ani logů

Zabezpečení AWS pro vývojáře

Rahul Singh

Technical Product Manager

Ne všechno citlivé je tajný údaj

Tři druhy řetězců

  • Tajný údaj: cizí člověk se může vydávat za tebe
  • Citlivá data: prozradí osobu
  • Konfigurace: nic k získání

Tři řádky srovnávající tajný údaj, citlivá data a konfiguraci. Každý řádek ukazuje dva příklady hodnot a co by s nimi mohl udělat cizí člověk – od vydávání se za tebe až po nic k získání.

Zabezpečení AWS pro vývojáře

Ne všechno citlivé je tajný údaj

Tři druhy řetězců

  • Tajný údaj: cizí člověk se může vydávat za tebe
  • Citlivá data: prozradí osobu
  • Konfigurace: nic k získání

Dva názvy pro osobní údaje

  • PII: osobně identifikovatelné údaje
  • PHI: chráněné zdravotní informace

Tři řádky srovnávající tajný údaj, citlivá data a konfiguraci. Každý řádek ukazuje dva příklady hodnot a co by s nimi mohl udělat cizí člověk – od vydávání se za tebe až po nic k získání.

Zabezpečení AWS pro vývojáře

Čtyři cesty úniku tajného údaje

Tajný údaj v běžícím systému se větví do čtyř očíslovaných cest: značka 1 vede ke zdrojovému kódu a jeho historii, značka 2 k proměnným prostředí, značka 3 k logům aplikace, značka 4 k chybovým výstupům a trasování. Všechny čtyři se sbíhají v poli s textem čitelné pro někoho jiného.

  1. Zdrojový kód a jeho historie
  2. Proměnné prostředí
Zabezpečení AWS pro vývojáře

Čtyři cesty úniku tajného údaje

Tajný údaj v běžícím systému se větví do čtyř očíslovaných cest: značka 1 vede ke zdrojovému kódu a jeho historii, značka 2 k proměnným prostředí, značka 3 k logům aplikace, značka 4 k chybovým výstupům a trasování. Všechny čtyři se sbíhají v poli s textem čitelné pro někoho jiného.

  1. Zdrojový kód a jeho historie
  2. Proměnné prostředí
  3. Logy aplikace
  4. Chybové výstupy a trasování
Zabezpečení AWS pro vývojáře

Šifrování v klidovém stavu neznamená skryté

Volba, která působí bezpečně

  • Vždy šifrováno v klidovém stavu
  • Klíč AWS KMS, ve výchozím nastavení spravovaný AWS

Funkce Lambda s proměnnou prostředí se rozděluje do dvou cest. Na disku je šifrována v klidovém stavu klíčem AWS KMS, znázorněno zeleně. Přes API vrátí volání GetFunctionConfiguration hodnotu v čitelné podobě, znázorněno červeně. Obě cesty se sbíhají v poznámce: chráněná je jen jedna z nich.

Zabezpečení AWS pro vývojáře

Šifrování v klidovém stavu neznamená skryté

Volba, která působí bezpečně

  • Vždy šifrováno v klidovém stavu
  • Klíč AWS KMS, ve výchozím nastavení spravovaný AWS

Co vrátí GetFunctionConfiguration

  • Hodnotu v čitelném textu

Na otázku přístupu odpovídá jen úložiště

Funkce Lambda s proměnnou prostředí se rozděluje do dvou cest. Na disku je šifrována v klidovém stavu klíčem AWS KMS, znázorněno zeleně. Přes API vrátí volání GetFunctionConfiguration hodnotu v čitelné podobě, znázorněno červeně. Obě cesty se sbíhají v poznámce: chráněná je jen jedna z nich.

Zabezpečení AWS pro vývojáře

Které úložiště a proč

Dvě služby, každá s jedním úkolem

  • Secrets Manager: určený pro tajné údaje
  • Parameter Store: určený pro konfiguraci, parametr SecureString je šifrován klíčem KMS

Diagram spektra. Vlevo je Secrets Manager, vpravo Systems Manager Parameter Store, mezi nimi vedou čtyři vodorovné dráhy. Na každé dráze je očíslovaná značka: značka 1 zcela vlevo, značka 2 vlevo od středu, značka 3 uprostřed, značka 4 zcela vpravo, s údaji o nákladech na obou koncích čtvrté dráhy a poznámkou rozhoduje rotace.

Zabezpečení AWS pro vývojáře

Které úložiště a proč

Dvě služby, každá s jedním úkolem

  • Secrets Manager: určený pro tajné údaje
  • Parameter Store: určený pro konfiguraci, parametr SecureString je šifrován klíčem KMS

Rozhodují čtyři věci

  1. Spravovaná rotace
  2. Sdílení napříč účty
  3. Verzování
  4. Náklady

Diagram spektra. Vlevo je Secrets Manager, vpravo Systems Manager Parameter Store, mezi nimi vedou čtyři vodorovné dráhy. Na každé dráze je očíslovaná značka: značka 1 zcela vlevo, značka 2 vlevo od středu, značka 3 uprostřed, značka 4 zcela vpravo, s údaji o nákladech na obou koncích čtvrté dráhy a poznámkou rozhoduje rotace.

Zabezpečení AWS pro vývojáře

Načítej aktuální hodnotu, ukládej jen krátce

Tvůj běžící proces volá GetSecretValue na úložišti tajných údajů (značka 1), přičemž používá roli s omezeným rozsahem (značka 2) omezenou na jeden ARN tajného údaje a oprávnění kms:Decrypt, a vrácenou hodnotu uchovává v mezipaměti v operační paměti (značka 3), než zavolá databázi nebo partnerské API.

  1. Zavolej GetSecretValue při spuštění
  2. Role omezená na jeden ARN tajného údaje a kms:Decrypt
Zabezpečení AWS pro vývojáře

Načítej aktuální hodnotu, ukládej jen krátce

Tvůj běžící proces volá GetSecretValue na úložišti tajných údajů (značka 1), přičemž používá roli s omezeným rozsahem (značka 2) omezenou na jeden ARN tajného údaje a oprávnění kms:Decrypt, a vrácenou hodnotu uchovává v mezipaměti v operační paměti (značka 3), než zavolá databázi nebo partnerské API.

  1. Zavolej GetSecretValue při spuštění
  2. Role omezená na jeden ARN tajného údaje a kms:Decrypt
  3. Ulož hodnotu do paměti

Ukládej do cache napořád, a rotace tě rozbije

Zabezpečení AWS pro vývojáře

Rotace ti mění hodnotu pod rukama

Proč čtyři kroky, ne jedna výměna

  • Nová hodnota se ověří, než ji někdo použije
  • Jedna výměna by rozbila všechny klienty najednou

Tři sloupce táhnoucí se stránkou: kroky rotace, popisek a tvoje cache. Secrets Manager spustí createSecret, setSecret a testSecret, poté přerušovaná čára označuje okamžik, kdy finishSecret přesune popisek. Nad touto čarou popisek říká AWSCURRENT se rovná staré hodnotě a cache je správná; pod ní popisek říká AWSCURRENT se rovná nové hodnotě a stejná cache je vyšrafovaná červeně. Diagram uzavírají dvě opravy: krátká životnost cache a obnovení při chybě ověření.

Zabezpečení AWS pro vývojáře

Rotace ti mění hodnotu pod rukama

Proč čtyři kroky, ne jedna výměna

  • Nová hodnota se ověří, než ji někdo použije
  • Jedna výměna by rozbila všechny klienty najednou

Čtyři kroky, jedno předání

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Tři sloupce táhnoucí se stránkou: kroky rotace, popisek a tvoje cache. Secrets Manager spustí createSecret, setSecret a testSecret, poté přerušovaná čára označuje okamžik, kdy finishSecret přesune popisek. Nad touto čarou popisek říká AWSCURRENT se rovná staré hodnotě a cache je správná; pod ní popisek říká AWSCURRENT se rovná nové hodnotě a stejná cache je vyšrafovaná červeně. Diagram uzavírají dvě opravy: krátká životnost cache a obnovení při chybě ověření.

Zabezpečení AWS pro vývojáře

Rotace ti mění hodnotu pod rukama

Proč čtyři kroky, ne jedna výměna

  • Nová hodnota se ověří, než ji někdo použije
  • Jedna výměna by rozbila všechny klienty najednou

Čtyři kroky, jedno předání

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Tvoje cache se to nedozví

  • Životnost v minutách, pak nové načtení
  • Obnovení při chybě ověření

Tři sloupce táhnoucí se stránkou: kroky rotace, popisek a tvoje cache. Secrets Manager spustí createSecret, setSecret a testSecret, poté přerušovaná čára označuje okamžik, kdy finishSecret přesune popisek. Nad touto čarou popisek říká AWSCURRENT se rovná staré hodnotě a cache je správná; pod ní popisek říká AWSCURRENT se rovná nové hodnotě a stejná cache je vyšrafovaná červeně. Diagram uzavírají dvě opravy: krátká životnost cache a obnovení při chybě ověření.

Zabezpečení AWS pro vývojáře

Maskuj, redaguj, zachovej laditelnost

Jeden surový řádek logu obsahující ID požadavku, celé číslo karty a token, zvýrazněný červeně. Pod ním stejná tři pole po úpravě: ID požadavku beze změny, karta maskovaná na poslední čtyři číslice a token nahrazený značkou redigováno, pod poznámkou zůstalo dost informací pro ladění.

Před zápisem očisti data

  • Maskování: tvar zůstává, hodnota je skrytá
Zabezpečení AWS pro vývojáře

Maskuj, redaguj, zachovej laditelnost

Jeden surový řádek logu obsahující ID požadavku, celé číslo karty a token, zvýrazněný červeně. Pod ním stejná tři pole po úpravě: ID požadavku beze změny, karta maskovaná na poslední čtyři číslice a token nahrazený značkou redigováno, pod poznámkou zůstalo dost informací pro ladění.

Před zápisem očisti data

  • Maskování: tvar zůstává, hodnota je skrytá
  • Redigování: hodnota pryč, zůstává značka
Zabezpečení AWS pro vývojáře

Maskuj, redaguj, zachovej laditelnost

Jeden surový řádek logu obsahující ID požadavku, celé číslo karty a token, zvýrazněný červeně. Pod ním stejná tři pole po úpravě: ID požadavku beze změny, karta maskovaná na poslední čtyři číslice a token nahrazený značkou redigováno, pod poznámkou zůstalo dost informací pro ladění.

Před zápisem očisti data

  • Maskování: tvar zůstává, hodnota je skrytá
  • Redigování: hodnota pryč, zůstává značka

Pohotovost potřebuje konfiguraci, cizí člověk zbytek

Zabezpečení AWS pro vývojáře

Pojďme cvičit!

Zabezpečení AWS pro vývojáře

Preparing Video For Download...