Úvod do zabezpečení AWS

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

Rahul Singh

Technical Product Manager

Předpoklady kurzu

 

  • Základní znalosti zabezpečení AWS
  • Porozumění konceptům cloud computingu
  • Koncepty zabezpečení AWS a správy nákladů

 

 

Titulní obrázek kurzu Koncepty zabezpečení AWS a správy nákladů

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

Cíle kurzu

 

  1. Identita: kdo volá
  2. Autorizace: k čemu má přístup
  3. Tajemství a šifrování: ochrana dat
  4. Důkazy: co se stalo, zpětně

Čtyři očíslované pruhy pod sebou, jeden pro každou oblast kurzu. Pruh jedna, Identita, označen jako kapitola 1. Pruh dva, Autorizace, označen jako kapitola 2. Pruh tři, Tajemství a šifrování, označen jako kapitoly 2 a 3. Pruh čtyři, Důkazy, označen jako kapitola 3. Oranžová šipka vlevo, popsaná toto video, ukazuje na pruh jedna.

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

Tvůj kód putuje přes pipeline

Postup zleva doprava. Krok jedna, box s názvem Tvůj pipeline obsahující tři fáze v tomto pořadí: Build, Test, Deploy. Krok dva, šipka popsaná git push, vedoucí do něj z boxu s názvem Ty. Krok tři, oranžový štítek visící pod pipeline, popsaný vlastní identita. Šipka pokračuje z pipeline do boxu s názvem AWS.

Nejdřív jeden pojem

  • Pipeline je automatizace, která sestavuje, testuje a nasazuje tvůj kód
  • Spouští se při tvém pushi, bez zásahu člověka
Zabezpečení AWS pro vývojáře

Nasazení, které selže ze špatného důvodu

Když dojde ke změně kódu, čí oprávnění se vlastně kontrolují?
  1. Provedeš push změny

Krok jedna vertikálního postupu. Box s názvem Ty, provádějící push změny kódu.

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

Nasazení, které selže ze špatného důvodu

Když dojde ke změně kódu, čí oprávnění se vlastně kontrolují?
  1. Provedeš push změny

  2. Tvůj pipeline se spustí

Vertikální postup. Krok jedna, Ty, provádíš push změny kódu. Šipka vede dolů ke kroku dva, tvůj pipeline, který spouští nasazení.

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

Nasazení, které selže ze špatného důvodu

Když dojde ke změně kódu, čí oprávnění se vlastně kontrolují?
  1. Provedeš push změny

  2. Tvůj pipeline se spustí

  3. Nasazení se zastaví: AccessDenied

První instinkt: „Zkontroluju si svoje oprávnění."

Vertikální postup. Krok jedna, Ty, provádíš push změny kódu. Krok dva, tvůj pipeline spouští nasazení. Krok tři, AWS vyhodnotí požadavek a vrátí AccessDenied.

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

Co se vlastně stalo

Krok jedna postupu zleva doprava. Box s názvem Ty, jehož role tím končí.

  1. Provedeš push. Tvoje role tím končí
Zabezpečení AWS pro vývojáře

Co se vlastně stalo

Postup zleva doprava. Box s názvem Ty, šipka vede k boxu Tvůj pipeline. Pod pipeline visí štítek deploy-role.

  1. Provedeš push. Tvoje role tím končí
  2. Pipeline nasadí kód, běží jako role, kterou vytvořil tvůj tým
Zabezpečení AWS pro vývojáře

Co se vlastně stalo

Postup zleva doprava od Ty, přes Tvůj pipeline, k AWS. Pod pipeline visí štítek deploy-role a přerušovaná šipka popsaná kontroluje vede od AWS zpět k tomuto štítku, ne zpět k Tobě.

  1. Provedeš push. Tvoje role tím končí
  2. Pipeline nasadí kód, běží jako role, kterou vytvořil tvůj tým
  3. AWS tuto roli vyhodnotí
Zabezpečení AWS pro vývojáře

Aktér a principal

Aktér

Ten, kdo práci spustil.

Zde: ty.

Ikona lidské postavy znázorňující aktéra, který spouští práci.

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

Aktér a principal

Aktér

Ten, kdo práci spustil.

Zde: ty.

Principal

Identita, kterou AWS vyhodnocuje při příchodu požadavku.

Zde: role pipeline.

Ikona lidské postavy znázorňující aktéra, který spouští práci.

Ikona znázorňující principal.

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

Aktér a principal

Aktér

Ten, kdo práci spustil.

Zde: ty.

Principal

Identita, kterou AWS vyhodnocuje při příchodu požadavku.

Zde: role pipeline.

  • Lambda: execution role. ECS: task role. Jiný název, stejný principal
  • Výjimka: dlouhodobý klíč v tvém terminálu – pak je principalem IAM uživatel

Ikona lidské postavy znázorňující aktéra, který spouští práci.

Ikona znázorňující, že AWS kontroluje principal, nikoli aktéra.

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

Stejné nasazení, dvě role

Role A (podoba AdministratorAccess)

  • Čtení ze všech bucketů
  • Použití všech klíčů
  • Aktualizace všech funkcí

Role B

  • Čtení z jednoho bucketu
  • Použití jednoho klíče
  • Aktualizace jedné funkce

Prefix: cesta připomínající složku uvnitř bucketu

Obrázek znázorňující roli s plným přístupem k šesti různým politikám.

Obrázek znázorňující roli s omezeným přístupem pouze k jedné politice.

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

Dosah dopadu

Široká role

Při kompromitaci: dosáhne na každý bucket, prefix i objekt v účtu.

Úzká role

Při kompromitaci: dosáhne jen na jeden prefix v jednom bucketu. Nic víc.

Soustředné kruhy znázorňující širokou roli, která dosahuje na všechny části celého účtu.

Soustředné kruhy znázorňující, že úzká role dosahuje jen na nejvnitřnější kruhy objektu a prefixu, ostatní části zůstávají nedotčené.

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

Princip minimálních oprávnění v praxi

Role by měla dělat jen to, co vyžaduje její úkol, a jen o málo víc.

  • Spravované AWS, jako AmazonS3ReadOnlyAccess: každý bucket. Spravované zákazníkem: tvoje, až na úroveň jednoho prefixu
  • Omez rozsah i životnost: krátkodobé přihlašovací údaje místo dlouhodobých klíčů
  • AWS zabezpečuje infrastrukturu
  • Jak široké jsou tvoje role, je tvoje rozhodnutí a žije ve tvém repozitáři

Příklad: role pro čtení z reports-bucketu Dvě povolení. Nic dalšího uděleno není.

  • Nic v IAM, službě, která rozhoduje, kdo co smí dělat

Seznam oprávnění role, kde jsou tři nadbytečná oprávnění přeškrtnutá červeně a dvě potřebná oprávnění zůstávají zelená.

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

Pojďme cvičit!

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

Preparing Video For Download...