Ține secretele departe de cod și loguri

Securitatea AWS pentru dezvoltatori

Rahul Singh

Technical Product Manager

Nu tot ce e sensibil e un secret

Trei tipuri de șiruri

  • Secret: un străin se poate da drept tine
  • Date sensibile: o persoană este expusă
  • Configurare: nimic de câștigat

Trei rânduri suprapuse care compară un secret, date sensibile și o configurare. Fiecare rând arată două exemple de valori și ce ar putea face un străin cu ele, de la a se da drept tine până la a nu câștiga nimic.

Securitatea AWS pentru dezvoltatori

Nu tot ce e sensibil e un secret

Trei tipuri de șiruri

  • Secret: un străin se poate da drept tine
  • Date sensibile: o persoană este expusă
  • Configurare: nimic de câștigat

Două denumiri pentru date personale

  • PII: informații personale identificabile
  • PHI: informații medicale protejate

Trei rânduri suprapuse care compară un secret, date sensibile și o configurare. Fiecare rând arată două exemple de valori și ce ar putea face un străin cu ele, de la a se da drept tine până la a nu câștiga nimic.

Securitatea AWS pentru dezvoltatori

Patru moduri prin care un secret se scurge

Un secret dintr-un sistem în funcțiune se ramifică spre patru ieșiri numerotate: marcajul unu către codul sursă și istoricul lui, marcajul doi către variabilele de mediu, marcajul trei către logurile aplicației, marcajul patru către ieșirile de eroare și urmele de execuție. Toate patru converg într-o casetă care spune citibil de altcineva.

  1. Codul sursă și istoricul lui
  2. Variabilele de mediu
Securitatea AWS pentru dezvoltatori

Patru moduri prin care un secret se scurge

Un secret dintr-un sistem în funcțiune se ramifică spre patru ieșiri numerotate: marcajul unu către codul sursă și istoricul lui, marcajul doi către variabilele de mediu, marcajul trei către logurile aplicației, marcajul patru către ieșirile de eroare și urmele de execuție. Toate patru converg într-o casetă care spune citibil de altcineva.

  1. Codul sursă și istoricul lui
  2. Variabilele de mediu
  3. Logurile aplicației
  4. Ieșirile de eroare și urmele de execuție
Securitatea AWS pentru dezvoltatori

Criptat în repaus nu înseamnă ascuns

Alegerea care pare sigură

  • Criptat în repaus, întotdeauna
  • Cheie AWS KMS, gestionată de AWS implicit

O funcție Lambda care deține o variabilă de mediu se împarte în două căi. Pe disc este criptată în repaus cu o cheie AWS KMS, arătată în verde. Prin API, un apel către GetFunctionConfiguration returnează valoarea în clar, arătată în roșu. Ambele căi se întâlnesc într-o notă care spune că doar o cale este protejată.

Securitatea AWS pentru dezvoltatori

Criptat în repaus nu înseamnă ascuns

Alegerea care pare sigură

  • Criptat în repaus, întotdeauna
  • Cheie AWS KMS, gestionată de AWS implicit

Ce returnează GetFunctionConfiguration

  • Valoarea, în text simplu

Un răspuns de stocare la o întrebare de acces

O funcție Lambda care deține o variabilă de mediu se împarte în două căi. Pe disc este criptată în repaus cu o cheie AWS KMS, arătată în verde. Prin API, un apel către GetFunctionConfiguration returnează valoarea în clar, arătată în roșu. Ambele căi se întâlnesc într-o notă care spune că doar o cale este protejată.

Securitatea AWS pentru dezvoltatori

Ce depozit alegi și de ce

Două servicii, fiecare cu un rol

  • Secrets Manager: conceput pentru secrete
  • Parameter Store: conceput pentru configurare, iar un parametru SecureString este criptat cu o cheie KMS

O diagramă tip spectru. Secrets Manager este numit în stânga, Systems Manager Parameter Store în dreapta, iar între ele trec patru benzi orizontale. Pe fiecare bandă se află un marcaj numerotat: marcajul unu complet în stânga, marcajul doi la stânga centrului, marcajul trei pe linia centrală, marcajul patru complet în dreapta, cu cifrele de cost la fiecare capăt al celei de-a patra benzi și o notă care spune rotația decide.

Securitatea AWS pentru dezvoltatori

Ce depozit alegi și de ce

Două servicii, fiecare cu un rol

  • Secrets Manager: conceput pentru secrete
  • Parameter Store: conceput pentru configurare, iar un parametru SecureString este criptat cu o cheie KMS

Patru factori decid

  1. Rotație gestionată
  2. Partajare între conturi
  3. Versionare
  4. Cost

O diagramă tip spectru. Secrets Manager este numit în stânga, Systems Manager Parameter Store în dreapta, iar între ele trec patru benzi orizontale. Pe fiecare bandă se află un marcaj numerotat: marcajul unu complet în stânga, marcajul doi la stânga centrului, marcajul trei pe linia centrală, marcajul patru complet în dreapta, cu cifrele de cost la fiecare capăt al celei de-a patra benzi și o notă care spune rotația decide.

Securitatea AWS pentru dezvoltatori

Citește-l proaspăt, stochează-l scurt în cache

Procesul tău, în execuție, apelează GetSecretValue pe un depozit de secrete la marcajul unu, folosind un rol restrâns la marcajul doi, limitat la un singur ARN de secret plus kms:Decrypt, și păstrează valoarea returnată într-un cache în memorie la marcajul trei, înainte de a apela o bază de date sau un API partener.

  1. Apelează GetSecretValue la pornire
  2. Rol restrâns la un singur ARN de secret plus kms:Decrypt
Securitatea AWS pentru dezvoltatori

Citește-l proaspăt, stochează-l scurt în cache

Procesul tău, în execuție, apelează GetSecretValue pe un depozit de secrete la marcajul unu, folosind un rol restrâns la marcajul doi, limitat la un singur ARN de secret plus kms:Decrypt, și păstrează valoarea returnată într-un cache în memorie la marcajul trei, înainte de a apela o bază de date sau un API partener.

  1. Apelează GetSecretValue la pornire
  2. Rol restrâns la un singur ARN de secret plus kms:Decrypt
  3. Stochează valoarea în memorie

Stochezi pentru totdeauna, iar rotația te blochează

Securitatea AWS pentru dezvoltatori

Rotația schimbă valoarea sub tine

De ce patru pași, nu o singură schimbare

  • Valoarea nouă este verificată înainte ca cineva s-o folosească
  • O singură schimbare ar bloca toți clienții deodată

Trei coloane care coboară pe pagină: pașii rotației, eticheta și cache-ul tău. Secrets Manager execută createSecret, setSecret și testSecret, apoi o linie punctată marchează momentul în care finishSecret mută eticheta. Deasupra acestei linii, eticheta arată AWSCURRENT egal cu valoarea veche, iar cache-ul este corect; dedesubt, eticheta arată AWSCURRENT egal cu valoarea nouă, iar același cache este hașurat roșu. Două soluții închid diagrama: o durată scurtă de viață a cache-ului și o reîmprospătare la eșecul autentificării.

Securitatea AWS pentru dezvoltatori

Rotația schimbă valoarea sub tine

De ce patru pași, nu o singură schimbare

  • Valoarea nouă este verificată înainte ca cineva s-o folosească
  • O singură schimbare ar bloca toți clienții deodată

Patru pași, o singură predare

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Trei coloane care coboară pe pagină: pașii rotației, eticheta și cache-ul tău. Secrets Manager execută createSecret, setSecret și testSecret, apoi o linie punctată marchează momentul în care finishSecret mută eticheta. Deasupra acestei linii, eticheta arată AWSCURRENT egal cu valoarea veche, iar cache-ul este corect; dedesubt, eticheta arată AWSCURRENT egal cu valoarea nouă, iar același cache este hașurat roșu. Două soluții închid diagrama: o durată scurtă de viață a cache-ului și o reîmprospătare la eșecul autentificării.

Securitatea AWS pentru dezvoltatori

Rotația schimbă valoarea sub tine

De ce patru pași, nu o singură schimbare

  • Valoarea nouă este verificată înainte ca cineva s-o folosească
  • O singură schimbare ar bloca toți clienții deodată

Patru pași, o singură predare

  • AWSPENDING, AWSCURRENT, AWSPREVIOUS

Nimic nu-i spune cache-ului tău

  • Durată de viață de câteva minute, apoi recitire
  • Reîmprospătare la eșecul autentificării

Trei coloane care coboară pe pagină: pașii rotației, eticheta și cache-ul tău. Secrets Manager execută createSecret, setSecret și testSecret, apoi o linie punctată marchează momentul în care finishSecret mută eticheta. Deasupra acestei linii, eticheta arată AWSCURRENT egal cu valoarea veche, iar cache-ul este corect; dedesubt, eticheta arată AWSCURRENT egal cu valoarea nouă, iar același cache este hașurat roșu. Două soluții închid diagrama: o durată scurtă de viață a cache-ului și o reîmprospătare la eșecul autentificării.

Securitatea AWS pentru dezvoltatori

Mascare, redactare, rămâi depanabil

O linie brută de log care conține un ID de cerere, un număr complet de card și un token, conturată în roșu. Dedesubt, aceleași trei câmpuri după procesare: ID-ul de cerere rămas neschimbat, cardul mascat până la ultimele patru cifre, iar tokenul înlocuit cu un marcaj redactat, sub o notă care spune a rămas suficient pentru depanare.

Igienizează înainte să scrii

  • Mascare: forma păstrată, valoarea ascunsă
Securitatea AWS pentru dezvoltatori

Mascare, redactare, rămâi depanabil

O linie brută de log care conține un ID de cerere, un număr complet de card și un token, conturată în roșu. Dedesubt, aceleași trei câmpuri după procesare: ID-ul de cerere rămas neschimbat, cardul mascat până la ultimele patru cifre, iar tokenul înlocuit cu un marcaj redactat, sub o notă care spune a rămas suficient pentru depanare.

Igienizează înainte să scrii

  • Mascare: forma păstrată, valoarea ascunsă
  • Redactare: valoarea dispărută, marcaj rămas
Securitatea AWS pentru dezvoltatori

Mascare, redactare, rămâi depanabil

O linie brută de log care conține un ID de cerere, un număr complet de card și un token, conturată în roșu. Dedesubt, aceleași trei câmpuri după procesare: ID-ul de cerere rămas neschimbat, cardul mascat până la ultimele patru cifre, iar tokenul înlocuit cu un marcaj redactat, sub o notă care spune a rămas suficient pentru depanare.

Igienizează înainte să scrii

  • Mascare: forma păstrată, valoarea ascunsă
  • Redactare: valoarea dispărută, marcaj rămas

Cel de gardă are nevoie de configurare, un străin de rest

Securitatea AWS pentru dezvoltatori

Hai să exersăm!

Securitatea AWS pentru dezvoltatori

Preparing Video For Download...