Introductie tot AWS-beveiliging

AWS-beveiliging gebruiken voor developers

Rahul Singh

Technical Product Manager

Cursusvereisten

 

  • Basiskennis van AWS-beveiliging
  • Inzicht in cloud computing-concepten
  • AWS Security- en kostenbeheerconcepten

 

 

Cursustitelkaart AWS Security and Cost Management Concepts

AWS-beveiliging gebruiken voor developers

Cursusdoelen

 

  1. Identiteit: wie roept aan
  2. Autorisatie: wat die mag bereiken
  3. Geheimen en versleuteling: data beschermen
  4. Bewijs: wat er achteraf gebeurde

Vier genummerde banden langs een ruggengraat, één per onderwerp van de cursus. Band één, Identity, gemarkeerd Hoofdstuk 1. Band twee, Authorization, Hoofdstuk 2. Band drie, Secrets and encryption, Hoofdstukken 2 en 3. Band vier, Evidence, Hoofdstuk 3. Een oranje pijl links, gelabeld deze video, wijst naar band één.

AWS-beveiliging gebruiken voor developers

Je code gaat live via een pipeline

Een links-naar-rechtsstroom. Stap 1: een vak met jouw pipeline met drie stappen: Build, Test, Deploy. Stap 2: een pijl met label git push vanuit een vak Jij. Stap 3: een oranje badge onder de pipeline, gelabeld its own identity. Een pijl gaat door naar een vak AWS.

Eerst even een term

  • Een pipeline automatiseert build, test en deploy van je code
  • Hij draait op jouw push, zonder mens ertussen
AWS-beveiliging gebruiken voor developers

Een deploy die om de verkeerde reden faalt

Bij een codewijziging: wiens rechten worden echt gecontroleerd?
  1. Jij pusht een wijziging

Stap één van een verticale stroom. Een vak Jij dat een codewijziging pusht.

AWS-beveiliging gebruiken voor developers

Een deploy die om de verkeerde reden faalt

Bij een codewijziging: wiens rechten worden echt gecontroleerd?
  1. Jij pusht een wijziging

  2. Je pipeline draait

Een verticale stroom. Stap één: Jij pusht een codewijziging. Een pijl naar stap twee: je pipeline, die de deploy draait.

AWS-beveiliging gebruiken voor developers

Een deploy die om de verkeerde reden faalt

Bij een codewijziging: wiens rechten worden echt gecontroleerd?
  1. Jij pusht een wijziging

  2. Je pipeline draait

  3. De deploy stopt: AccessDenied

Eerste reflex: "Ik check mijn eigen rechten even."

Een verticale stroom. Stap één: Jij pusht een codewijziging. Stap twee: je pipeline draait de deploy. Stap drie: AWS evalueert het verzoek en geeft AccessDenied terug.

AWS-beveiliging gebruiken voor developers

Wat er echt gebeurde

Stap één van een links-naar-rechtsstroom. Een vak Jij, wiens betrokkenheid hier stopt.

  1. Jij pusht. Jouw betrokkenheid stopt hier
AWS-beveiliging gebruiken voor developers

Wat er echt gebeurde

Een links-naar-rechtsstroom. Een vak Jij, met een pijl naar een vak Jouw pipeline. Een badge deploy-role hangt onder de pipeline.

  1. Jij pusht. Jouw betrokkenheid stopt hier
  2. De pipeline deployt, draaiend als een rol die je team heeft gemaakt
AWS-beveiliging gebruiken voor developers

Wat er echt gebeurde

Een links-naar-rechtsstroom van Jij, naar Jouw pipeline, naar AWS. Een badge deploy-role hangt onder de pipeline, en een stippellijn met label checks gaat van AWS terug naar die badge in plaats van naar Jou.

  1. Jij pusht. Jouw betrokkenheid stopt hier
  2. De pipeline deployt, draaiend als een rol die je team heeft gemaakt
  3. AWS beoordeelt die rol
AWS-beveiliging gebruiken voor developers

Actor en principal

Actor

Degene die het werk in gang zet.

Hier: jij.

Een pictogram van een persoon als actor die het werk in gang zet.

AWS-beveiliging gebruiken voor developers

Actor en principal

Actor

Degene die het werk in gang zet.

Hier: jij.

Principal

De identiteit die AWS beoordeelt wanneer het verzoek binnenkomt.

Hier: de rol van de pipeline.

Een pictogram van een persoon als actor die het werk in gang zet.

Een pictogram dat de principal aanduidt.

AWS-beveiliging gebruiken voor developers

Actor en principal

Actor

Degene die het werk in gang zet.

Hier: jij.

Principal

De identiteit die AWS beoordeelt wanneer het verzoek binnenkomt.

Hier: de rol van de pipeline.

  • Lambda: execution role. ECS: task role. Andere naam, zelfde principal
  • Uitzondering: een langlevende sleutel in je terminal, dan is de IAM-gebruiker de principal

Een pictogram van een persoon als actor die het werk in gang zet.

Een pictogram dat laat zien dat AWS de principal controleert in plaats van de actor.

AWS-beveiliging gebruiken voor developers

Zelfde deploy, twee rollen

Rol A (De vorm van AdministratorAccess)

  • Elk bucket lezen
  • Elke sleutel gebruiken
  • Elke functie updaten

Rol B

  • Eén bucket lezen
  • Eén sleutel gebruiken
  • Eén functie updaten

Prefix: een mapachtig pad in een bucket

Een afbeelding met een all-access-rol met toegang tot zes verschillende policies.

Een afbeelding met een smalle-rol met toegang tot slechts één policy.

AWS-beveiliging gebruiken voor developers

Explosiestraal

Brede rol

Bij compromise: bereikt elk bucket, elke prefix en elk object in het account.

Smalle rol

Bij compromise: bereikt één prefix in één bucket. Niet meer.

Concentrische ringen die een brede rol tonen die overal in het account bij kan.

Concentrische ringen die tonen dat een smalle rol alleen de binnenste object- en prefixringen bereikt, en de rest ongemoeid laat.

AWS-beveiliging gebruiken voor developers

Least privilege in de praktijk

Een rol moet doen wat nodig is voor z'n taak, en zo weinig mogelijk meer.

  • AWS-managed, zoals AmazonS3ReadOnlyAccess: elk bucket. Customer-managed: de jouwe, tot op één prefix
  • Bereik en levensduur: kortstondige referenties boven langlevende sleutels
  • AWS beveiligt de infrastructuur
  • Hoe breed je rollen zijn, bepaal jij, en dat leeft in je repository

Voorbeeld: een reader-rol voor een reports-bucket Twee allows. Verder niks.

  • Niets op IAM, de service die beslist wie wat mag

De permissielijst van een rol met drie overbodige rechten rood doorgestreept en twee vereiste rechten groen behouden.

AWS-beveiliging gebruiken voor developers

Laten we oefenen!

AWS-beveiliging gebruiken voor developers

Preparing Video For Download...