Håll hemligheter borta från kod och loggar

Använda AWS-säkerhet för utvecklare

Rahul Singh

Technical Product Manager

Allt känsligt är inte en hemlighet

Tre typer av strängar

  • Hemlighet: en främling kan agera som dig
  • Känslig data: en person exponeras
  • Konfiguration: inget att vinna

Tre rader som jämför en hemlighet, känslig data och konfiguration. Varje rad visar två exempelvärden och vad en främling skulle kunna göra med dem, från att agera som dig till att inte vinna något.

Använda AWS-säkerhet för utvecklare

Allt känsligt är inte en hemlighet

Tre typer av strängar

  • Hemlighet: en främling kan agera som dig
  • Känslig data: en person exponeras
  • Konfiguration: inget att vinna

Två namn för personuppgifter

  • PII: personligt identifierbar information
  • PHI: skyddad hälsoinformation

Tre rader som jämför en hemlighet, känslig data och konfiguration. Varje rad visar två exempelvärden och vad en främling skulle kunna göra med dem, från att agera som dig till att inte vinna något.

Använda AWS-säkerhet för utvecklare

Fyra sätt en hemlighet kan läcka ut

En hemlighet i ett körande system förgrenar sig till fyra numrerade utgångar: markör ett till källkod och dess historik, markör två till miljövariabler, markör tre till applikationsloggar, markör fyra till felutdata och spårningar. Alla fyra möts i en ruta med texten läsbar av någon.

  1. Källkod och dess historik
  2. Miljövariabler
Använda AWS-säkerhet för utvecklare

Fyra sätt en hemlighet kan läcka ut

En hemlighet i ett körande system förgrenar sig till fyra numrerade utgångar: markör ett till källkod och dess historik, markör två till miljövariabler, markör tre till applikationsloggar, markör fyra till felutdata och spårningar. Alla fyra möts i en ruta med texten läsbar av någon.

  1. Källkod och dess historik
  2. Miljövariabler
  3. Applikationsloggar
  4. Felutdata och spårningar
Använda AWS-säkerhet för utvecklare

Krypterad i vila är inte dold

Valet som känns säkert

  • Krypterad i vila, alltid
  • AWS KMS-nyckel, hanteras av AWS som standard

En Lambda-funktion med en miljövariabel delas upp i två vägar. På disk är den krypterad i vila med en AWS KMS-nyckel, visad i grönt. Via API:et returnerar ett anrop till GetFunctionConfiguration värdet i klartext, visat i rött. Båda vägarna möts i en notering om att endast en väg är skyddad.

Använda AWS-säkerhet för utvecklare

Krypterad i vila är inte dold

Valet som känns säkert

  • Krypterad i vila, alltid
  • AWS KMS-nyckel, hanteras av AWS som standard

Vad GetFunctionConfiguration returnerar

  • Värdet, i klartext

Ett lagringssvar på en åtkomstfråga

En Lambda-funktion med en miljövariabel delas upp i två vägar. På disk är den krypterad i vila med en AWS KMS-nyckel, visad i grönt. Via API:et returnerar ett anrop till GetFunctionConfiguration värdet i klartext, visat i rött. Båda vägarna möts i en notering om att endast en väg är skyddad.

Använda AWS-säkerhet för utvecklare

Vilken lagring, och varför

Två tjänster, varsin uppgift

  • Secrets Manager: byggd för hemligheter
  • Parameter Store: byggd för konfiguration, och en SecureString-parameter krypteras med en KMS-nyckel

Ett spektrumdiagram. Secrets Manager anges till vänster, Systems Manager Parameter Store till höger, och fyra horisontella linjer löper mellan dem. En numrerad markör finns på varje linje: markör ett längst till vänster, markör två till vänster om mitten, markör tre på mittlinjen, markör fyra längst till höger, med kostnadssiffror vid varje ände av den fjärde linjen och en notering om att rotation är det avgörande.

Använda AWS-säkerhet för utvecklare

Vilken lagring, och varför

Två tjänster, varsin uppgift

  • Secrets Manager: byggd för hemligheter
  • Parameter Store: byggd för konfiguration, och en SecureString-parameter krypteras med en KMS-nyckel

Fyra faktorer avgör

  1. Hanterad rotation
  2. Delning mellan konton
  3. Versionshantering
  4. Kostnad

Ett spektrumdiagram. Secrets Manager anges till vänster, Systems Manager Parameter Store till höger, och fyra horisontella linjer löper mellan dem. En numrerad markör finns på varje linje: markör ett längst till vänster, markör två till vänster om mitten, markör tre på mittlinjen, markör fyra längst till höger, med kostnadssiffror vid varje ände av den fjärde linjen och en notering om att rotation är det avgörande.

Använda AWS-säkerhet för utvecklare

Läs färskt, cacha kort

Din körande process anropar GetSecretValue mot en hemlighetslagring vid markör ett, med en begränsad roll vid markör två som endast tillåter ett hemligt ARN plus kms:Decrypt, och håller det returnerade värdet i en cache i minnet vid markör tre innan den anropar en databas eller partner-API.

  1. Anropa GetSecretValue vid uppstart
  2. Roll begränsad till ett hemligt ARN plus kms:Decrypt
Använda AWS-säkerhet för utvecklare

Läs färskt, cacha kort

Din körande process anropar GetSecretValue mot en hemlighetslagring vid markör ett, med en begränsad roll vid markör två som endast tillåter ett hemligt ARN plus kms:Decrypt, och håller det returnerade värdet i en cache i minnet vid markör tre innan den anropar en databas eller partner-API.

  1. Anropa GetSecretValue vid uppstart
  2. Roll begränsad till ett hemligt ARN plus kms:Decrypt
  3. Cacha värdet i minnet

Cacha för evigt, och rotation ställer till det

Använda AWS-säkerhet för utvecklare

Rotation flyttar värdet under dig

Varför fyra steg, inte ett byte

  • Det nya värdet verifieras innan någon använder det
  • Ett enda byte skulle slå ut alla klienter samtidigt

Tre kolumner längs sidan: rotationsstegen, etiketten och din cache. Secrets Manager kör createSecret, setSecret och testSecret, och en streckad linje markerar ögonblicket då finishSecret flyttar etiketten. Ovanför linjen visar etiketten AWSCURRENT lika med det gamla värdet och cachen är korrekt; nedanför visar etiketten AWSCURRENT lika med det nya värdet och samma cache är rödskrafferad. Diagrammet avslutas med två lösningar: en kort cachelivslängd och en uppdatering vid autentiseringsfel.

Använda AWS-säkerhet för utvecklare

Rotation flyttar värdet under dig

Varför fyra steg, inte ett byte

  • Det nya värdet verifieras innan någon använder det
  • Ett enda byte skulle slå ut alla klienter samtidigt

Fyra steg, en överlämning

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Tre kolumner längs sidan: rotationsstegen, etiketten och din cache. Secrets Manager kör createSecret, setSecret och testSecret, och en streckad linje markerar ögonblicket då finishSecret flyttar etiketten. Ovanför linjen visar etiketten AWSCURRENT lika med det gamla värdet och cachen är korrekt; nedanför visar etiketten AWSCURRENT lika med det nya värdet och samma cache är rödskrafferad. Diagrammet avslutas med två lösningar: en kort cachelivslängd och en uppdatering vid autentiseringsfel.

Använda AWS-säkerhet för utvecklare

Rotation flyttar värdet under dig

Varför fyra steg, inte ett byte

  • Det nya värdet verifieras innan någon använder det
  • Ett enda byte skulle slå ut alla klienter samtidigt

Fyra steg, en överlämning

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Ingenting meddelar din cache

  • Livslängd på minuter, sedan ny läsning
  • Uppdatering vid autentiseringsfel

Tre kolumner längs sidan: rotationsstegen, etiketten och din cache. Secrets Manager kör createSecret, setSecret och testSecret, och en streckad linje markerar ögonblicket då finishSecret flyttar etiketten. Ovanför linjen visar etiketten AWSCURRENT lika med det gamla värdet och cachen är korrekt; nedanför visar etiketten AWSCURRENT lika med det nya värdet och samma cache är rödskrafferad. Diagrammet avslutas med två lösningar: en kort cachelivslängd och en uppdatering vid autentiseringsfel.

Använda AWS-säkerhet för utvecklare

Maskera, redigera, förbli felsökbar

En rå loggrad som innehåller ett förfrågnings-ID, ett fullständigt kortnummer och en token, markerad i rött. Under den visas samma tre fält efter behandling: förfrågnings-ID oförändrat, kortet maskerat till de sista fyra siffrorna, och token ersatt med en redigerad markör, under en notering om att tillräckligt mycket finns kvar för felsökning.

Sanera innan du skriver

  • Maskera: form behålls, värde dolt
Använda AWS-säkerhet för utvecklare

Maskera, redigera, förbli felsökbar

En rå loggrad som innehåller ett förfrågnings-ID, ett fullständigt kortnummer och en token, markerad i rött. Under den visas samma tre fält efter behandling: förfrågnings-ID oförändrat, kortet maskerat till de sista fyra siffrorna, och token ersatt med en redigerad markör, under en notering om att tillräckligt mycket finns kvar för felsökning.

Sanera innan du skriver

  • Maskera: form behålls, värde dolt
  • Redigera: värde borttaget, markör kvar
Använda AWS-säkerhet för utvecklare

Maskera, redigera, förbli felsökbar

En rå loggrad som innehåller ett förfrågnings-ID, ett fullständigt kortnummer och en token, markerad i rött. Under den visas samma tre fält efter behandling: förfrågnings-ID oförändrat, kortet maskerat till de sista fyra siffrorna, och token ersatt med en redigerad markör, under en notering om att tillräckligt mycket finns kvar för felsökning.

Sanera innan du skriver

  • Maskera: form behålls, värde dolt
  • Redigera: värde borttaget, markör kvar

Jouren behöver konfiguration, en främling behöver resten

Använda AWS-säkerhet för utvecklare

Nu kör vi en övning!

Använda AWS-säkerhet för utvecklare

Preparing Video For Download...