Šifrovací režimy a vynucení přenosu

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

Rahul Singh

Technical Product Manager

Dvě záruky, jedno výchozí nastavení

Aplikace odesílá objekt do bucketu Amazon S3. Zelená závorka se štítkem při přenosu pokrývá síťový přenos a druhá zelená závorka se štítkem v klidu pokrývá uložený objekt, nad poznámkou, že SSE-S3 platí, pokud požadavek neurčí jinak.

  • V klidu: bajty na disku
  • Při přenosu: bajty v síti
Zabezpečení AWS pro vývojáře

Dvě záruky, jedno výchozí nastavení

Aplikace odesílá objekt do bucketu Amazon S3. Zelená závorka se štítkem při přenosu pokrývá síťový přenos a druhá zelená závorka se štítkem v klidu pokrývá uložený objekt, nad poznámkou, že SSE-S3 platí, pokud požadavek neurčí jinak.

  • V klidu: bajty na disku
  • Při přenosu: bajty v síti
  • Už hotovo: SSE-S3 u každého nového objektu
  • Stále na tobě: jaký režim zvolit a kdo drží klíč
Zabezpečení AWS pro vývojáře

Kde končí prostý text

Na straně serveru

  • AWS přijímá čitelné bajty
  • S3 šifruje při zápisu

 

Tok na straně serveru. Tvůj proces drží prostý text, odesílá ho přes TLS spojení a Amazon S3 ho při zápisu zašifruje. Lišta dole sleduje bajty, rozdělená přerušovanou čárou u S3: úsek před ní má popisek „tvoje bajty: čitelné zde" a je červený, úsek za ní má popisek „šifrovaný text" a je zelený.

 

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

Kde končí prostý text

Na straně serveru

  • AWS přijímá čitelné bajty
  • S3 šifruje při zápisu

Na straně klienta

  • Šifruješ ještě před odesláním
  • AWS ukládá jen šifrovaný text

Tok na straně serveru. Tvůj proces drží prostý text, odesílá ho přes TLS spojení a Amazon S3 ho při zápisu zašifruje. Lišta dole sleduje bajty, rozdělená přerušovanou čárou u S3: úsek před ní má popisek „tvoje bajty: čitelné zde" a je červený, úsek za ní má popisek „šifrovaný text" a je zelený.

Tok na straně klienta. Tvůj proces nejdřív zašifruje data, odešle šifrovaný text přes TLS spojení a Amazon S3 uloží to, co přijme. Lišta dole sleduje bajty, rozdělená přerušovanou čárou uvnitř tvého procesu: krátký úsek před ní má popisek „tvoje bajty: čitelné zde" a je červený, vše za ní má popisek „šifrovaný text" a je zelené.

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

Čtyři režimy, jeden rozdíl

Stejný algoritmus, čtyři vlastníci klíče

  • Režim se přenáší jako hlavička v požadavku PUT
  • SSE-S3: klíč AWS, nic ke správě
  • SSE-KMS: tvůj klíč, CloudTrail a zásada klíče připojená ke klíči, která určuje, komu odpoví

Čtyři karty nad sebou s názvy SSE-S3, SSE-KMS, DSSE-KMS a SSE-C. Lišta vlevo vede od kontroly AWS nahoře ke tvé kontrole dole a každá karta obsahuje jen hodnotu hlavičky požadavku, která daný režim vybírá.

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

Čtyři režimy, jeden rozdíl

Stejný algoritmus, čtyři vlastníci klíče

  • Režim se přenáší jako hlavička v požadavku PUT
  • SSE-S3: klíč AWS, nic ke správě
  • SSE-KMS: tvůj klíč, CloudTrail a zásada klíče připojená ke klíči, která určuje, komu odpoví
  • DSSE-KMS: dvě nezávislé vrstvy
  • SSE-C: tvůj klíč u každého požadavku, odpovědnost je na tobě

Čtyři karty nad sebou s názvy SSE-S3, SSE-KMS, DSSE-KMS a SSE-C. Lišta vlevo vede od kontroly AWS nahoře ke tvé kontrole dole a každá karta obsahuje jen hodnotu hlavičky požadavku, která daný režim vybírá.

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

Námitka k nákladům na SSE-KMS

Dva řádky. Bez Bucket Keys vede šest šipek od Amazon S3 ke AWS KMS, jedna za každý požadavek na objekt. S Bucket Keys vychází jediná šipka z klíče na úrovni bucketu uloženého v S3. Poznámka dole uvádí, že Bucket Keys nejsou dostupné s DSSE-KMS.

  • Bez: jedno volání KMS na objekt
  • S Bucket Keys: jeden krátkodobý klíč, opakovaně použitý
  • Nedostupné s DSSE-KMS
  • Až o 99% méně požadavků na KMS
Zabezpečení AWS pro vývojáře

Šifruj pole, ne celou tabulku

Šifrování v klidu je už zapnuté

  • Dotaz vrátí prostý text každému s právem čtení

Jedna položka DynamoDB s pěti atributy. Dva atributy obsahují šifrovaný text a mají modré lišty, zatímco partition key, sort key a časové razítko zůstávají v prostém textu. Zelený rámeček dole uvádí, že celá tabulka je šifrovaná v klidu.

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

Šifruj pole, ne celou tabulku

Šifrování v klidu je už zapnuté

  • Dotaz vrátí prostý text každému s právem čtení

AWS Database Encryption SDK

  • Vybrané atributy zašifruješ ve vlastním kódu
  • Partition key a sort key, podle kterých DynamoDB vyhledává položky, zůstávají v prostém textu, protože podle nich indexuje

Jedna položka DynamoDB s pěti atributy. Dva atributy obsahují šifrovaný text a mají modré lišty, zatímco partition key, sort key a časové razítko zůstávají v prostém textu. Zelený rámeček dole uvádí, že celá tabulka je šifrovaná v klidu.

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

TLS je nabízeno, ne vyžadováno

Nabízeno, ne vynuceno

  • S3 odpovídá stejně na HTTP i HTTPS

Dva scénáře. Bez podmínky na bucketu se k objektu dostane HTTPS i HTTP klient. S podmínkou zamítnutí se cesta HTTP zastaví na červeném kříži a spojení nikdy neproběhne.

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

TLS je nabízeno, ne vyžadováno

Nabízeno, ne vynuceno

  • S3 odpovídá stejně na HTTP i HTTPS

Udělej z toho požadavek

  • Zásada bucketu: zamítni, když je aws:SecureTransport roven false
  • Legitimní klienti nic nepoznají

Dva scénáře. Bez podmínky na bucketu se k objektu dostane HTTPS i HTTP klient. S podmínkou zamítnutí se cesta HTTP zastaví na červeném kříži a spojení nikdy neproběhne.

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

Která autorita ručí za název

Veřejný název

  • ACM: veřejně důvěryhodný, zdarma, sám se obnovuje

Název, který zná jen tvoje síť

  • AWS Private CA: vlastní certifikační autorita
  • Na veřejném internetu jí nikdy nikdo nevěří

Dvě karty nad sebou s nadpisem kdo může vydat certifikát. Horní karta, veřejný název, uvádí reports tečka example tečka com jako název, který se překládá, a ACM jako vydavatele, důvěryhodného všude. Dolní karta, interní název, uvádí admin tečka example tečka internal, který se překládá jen uvnitř tvého VPC, a AWS Private CA jako vydavatele.

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

Soukromá polovina je tvoje zodpovědnost

Kdo ho drží

  • ACM: drží ho AWS
  • Pár klíčů EC2 nebo jakýkoli SSH klíč: soukromou polovinu máš ty, jen jednou

Dvě karty nad sebou s nadpisem kdo drží kterou polovinu. Horní karta, veřejná polovina, uvádí, že žije na AWS nebo na instanci. Dolní oranžová karta, soukromá polovina, obsahuje tři řádky: dostaneš jednu kopii a žádnou náhradní, ulož ji do Secrets Manager se zeleným zaškrtnutím a nikdy do repozitáře, na laptop nebo do chatu, s oranžovým křížkem.

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

Soukromá polovina je tvoje zodpovědnost

Kdo ho drží

  • ACM: drží ho AWS
  • Pár klíčů EC2 nebo jakýkoli SSH klíč: soukromou polovinu máš ty, jen jednou

Pokud je tvůj

  • Secrets Manager, ne repozitář
  • Obměňuj podle plánu

Dvě karty nad sebou s nadpisem kdo drží kterou polovinu. Horní karta, veřejná polovina, uvádí, že žije na AWS nebo na instanci. Dolní oranžová karta, soukromá polovina, obsahuje tři řádky: dostaneš jednu kopii a žádnou náhradní, ulož ji do Secrets Manager se zeleným zaškrtnutím a nikdy do repozitáře, na laptop nebo do chatu, s oranžovým křížkem.

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

Tři odpovědi, ne jedna

Tři očíslované karty pro režim, kontrolu klíče a přenos, každá zobrazuje hlavičku nebo podmínkový klíč, který na ni odpovídá. Řádek dole upozorňuje, že jen třetí kontrola leží mimo nastavení šifrování.

  1. Režim: co objekt zapsalo
  2. Kontrola klíče: kdo ho dokáže dešifrovat, v tomto účtu, nebo v jiném
  3. Přenos: vyžadovaný, nebo jen nabízený
Zabezpečení AWS pro vývojáře

Pojďme cvičit!

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

Preparing Video For Download...