Livrarea datelor și a informațiilor în timp aproape real permite companiilor să răspundă rapid nevoilor clienților lor. Datele în timp real pot proveni dintr-o varietate de surse, inclusiv rețelele sociale, dispozitivele IoT, monitorizarea infrastructurii, monitorizarea centrului de apeluri și multe altele. Datorită amplorii și profunzimii datelor care sunt ingerate din mai multe surse, companiile caută soluții pentru a proteja confidențialitatea clienților și pentru a împiedica accesarea datelor sensibile din sistemele finale. Anterior, trebuia să te bazezi pe motoare de reguli pentru informații de identificare personală (PII) care puteau semnala false pozitive sau pierderea datelor sau a trebuit să creați și să mențineți modele personalizate de învățare automată (ML) pentru a identifica PII în datele dvs. de streaming. De asemenea, trebuia să implementați și să întrețineți infrastructura necesară pentru a susține aceste motoare sau modele.
Pentru a ajuta la eficientizarea acestui proces și la reducerea costurilor, puteți utiliza Amazon Comprehend, un serviciu de procesare a limbajului natural (NLP) care utilizează ML pentru a găsi informații și relații precum oameni, locuri, sentimente și subiecte în text nestructurat. Acum puteți utiliza capabilitățile Amazon Comprehend ML pentru a detecta și redacta informațiile personale în e-mailurile clienților, bilete de asistență, recenzii de produse, rețele sociale și multe altele. Nu este necesară experiența ML. De exemplu, puteți analiza biletele de asistență și articolele de cunoștințe pentru a detecta entitățile PII și a redacta textul înainte de a indexa documentele. După aceea, documentele sunt libere de entități PII și utilizatorii pot consuma datele. Redactarea entităților PII vă ajută să protejați confidențialitatea clientului și să respectați legile și reglementările locale.
În această postare, învățați cum să implementați Amazon Comprehend în arhitecturile dvs. de streaming pentru a redacta entitățile PII în timp aproape real, folosind Firehose Amazon Kinesis Data cu AWS Lambdas.
Această postare se concentrează pe redactarea datelor din câmpuri selectate care sunt ingerate într-o arhitectură de streaming folosind Kinesis Data Firehose, unde doriți să creați, să stocați și să mențineți copii derivate suplimentare ale datelor pentru consumul de către utilizatorii finali sau aplicațiile din aval. Dacă folosești Fluxuri de date Amazon Kinesis sau aveți cazuri de utilizare suplimentare în afara redacției PII, consultați Traduceți, redactați și analizați datele de streaming folosind funcții SQL cu Amazon Kinesis Data Analytics, Amazon Translate și Amazon Comprehend, unde vă arătăm cum puteți utiliza Amazon Kinesis Data Analytics Studio powered by Apache Zeppelin și Apache Flash pentru a analiza, traduce și redacta în mod interactiv câmpurile de text din fluxul de date.
Prezentare generală a soluțiilor
Următoarea figură prezintă un exemplu de arhitectură pentru efectuarea redacției PII a datelor în flux în timp real, folosind Serviciul Amazon de stocare simplă (Amazon S3), Transformarea datelor Kinesis Data Firehose, Amazon Comprehend, și AWS Lambdas. În plus, folosim SDK AWS pentru Python (Boto3) pentru funcțiile Lambda. După cum se indică în diagramă, compartimentul brut S3 conține date neexprimate, iar compartimentul redactat S3 conține date redactate după utilizarea Amazon Comprehend DetectPiiEntities
API într-o funcție Lambda.
Costurile implicate
Pe lângă costurile Kinesis Data Firehose, Amazon S3 și Lambda, această soluție va suporta costuri de utilizare de la Amazon Comprehend. Suma pe care o plătiți este un factor al numărului total de înregistrări care conțin PII și caracterele care sunt procesate de funcția Lambda. Pentru mai multe informații, consultați Prețurile Amazon Kinesis Data Firehose, Prețurile Amazon Comprehend, și Prețuri AWS Lambda.
De exemplu, să presupunem că aveți 10,000 de înregistrări de jurnal, iar valoarea cheii din care doriți să redactați informațiile personale este de 500 de caractere. Din cele 10,000 de înregistrări de jurnal, 50 sunt identificate ca conținând PII. Detaliile costurilor sunt următoarele:
Conține costul IPI:
- Dimensiunea fiecărei valori cheie = 500 de caractere (1 unitate = 100 de caractere)
- Număr de unități (100 de caractere) per înregistrare (minimum 3 unități) = 5
- Unități totale = 10,000 (înregistrări) x 5 (unități pe înregistrare) x 1 (solicitări Amazon Comprehend per înregistrare) = 50,000
- Preț per unitate = 0.000002 USD
- Costul total pentru identificarea înregistrărilor de jurnal cu PII utilizând API ContainsPiiEntities = 0.1 USD [50,000 de unități x 0.000002 USD]
Costul redacției PII:
- Total de unități care conțin PII = 50 (înregistrări) x 5 (unități per înregistrare) x 1 (solicitări Amazon Comprehend per înregistrare) = 250
- Preț per unitate = 0.0001 USD
- Costul total pentru identificarea locației PII folosind DetectPiiEntities API = [număr de unități] x [cost pe unitate] = 250 x 0.0001 USD = 0.025 USD
Costul total pentru identificare și redactare:
- Cost total: 0.1 USD (validare dacă câmpul conține PII) + 0.025 USD (câmpurile redactate care conțin PII) = 0.125 USD
Implementați soluția cu AWS CloudFormation
Pentru această postare, oferim un Formarea AWS Cloud redarea datelor în flux șablon, care oferă detaliile complete ale implementării pentru a permite implementări repetabile. La implementare, acest șablon creează două compartimente S3: unul pentru a stoca datele de eșantion brute ingerate din Amazon Kinesis Data Generator (KDG) și unul pentru a stoca datele redactate. În plus, creează un flux de livrare Kinesis Data Firehose cu DirectPUT
ca intrare și o funcție Lambda care apelează Amazon Comprehend ConținePiiEntities și DetectPiiEntities API pentru a identifica și redacta datele PII. Funcția Lambda se bazează pe intrarea utilizatorului în variabilele de mediu pentru a determina ce valori cheie trebuie inspectate pentru PII.
Funcția Lambda din această soluție are dimensiuni limitate ale încărcăturii utile la 100 KB. Dacă este furnizată o sarcină utilă în care textul este mai mare de 100 KB, funcția Lambda o va omite.
Pentru a implementa soluția, parcurgeți următorii pași:
- Lansați stiva CloudFormation în estul SUA (N. Virginia)
us-east-1
: - Introduceți un nume de stivă și lăsați alți parametri la valoarea implicită
- Selectați Recunosc că AWS CloudFormation ar putea crea resurse IAM cu nume personalizate.
- Alege Creați stivă.
Implementați resursele manual
Dacă preferați să construiți arhitectura manual în loc să utilizați AWS CloudFormation, parcurgeți pașii din această secțiune.
Creați gălețile S3
Creați-vă gălețile S3 cu următorii pași:
- În consola Amazon S3, alegeți Cupă în panoul de navigare.
- Alege Creați găleată.
- Creați un grup pentru datele dvs. brute și unul pentru datele dvs. redactate.
- Notați numele găleților pe care tocmai le-ați creat.
Creați funcția Lambda
Pentru a crea și implementa funcția Lambda, parcurgeți următorii pași:
- În consola Lambda, alegeți Funcție Creare.
- Alege Autor de la zero.
- Pentru Numele funcției, introduce
AmazonComprehendPII-Redact
. - Pentru Runtime, alege Python 3.9.
- Pentru Arhitectură, Selectați x86_64.
- Pentru Rolul de execuție, Selectați Creați un rol nou cu permisiuni Lambda.
- După ce creați funcția, introduceți următorul cod:
- Alege Lansa.
- În panoul de navigare, alegeți Configurare.
- Navigheaza catre Variabile de mediu.
- Alege Editati.
- Pentru Cheie, introduce
keys
. - Pentru Valoare, introduceți valorile cheie din care doriți să redactați informațiile personale, separate prin virgulă și spațiu. De exemplu, introduceți
Tweet1
,Tweet2
dacă utilizați probele de date de testare furnizate în următoarea secțiune a acestei postări. - Alege Economisiți.
- Navigheaza catre Configurație generală.
- Alege Editati.
- Modificați valoarea Pauză la 1 minut.
- Alege Economisiți.
- Navigheaza catre Permisiuni.
- Alegeți numele rolului de sub Rolul de execuție.
Sunteți redirecționat către Gestionarea identității și accesului AWS (IAM) consola. - Pentru Adăugați permisiuni, alege Atașați politicile.
- Intrați
Comprehend
în bara de căutare și alegeți politicaComprehendFullAccess
. - Alege Atașați politicile.
Creați fluxul de livrare Firehose
Pentru a crea fluxul de livrare Firehose, parcurgeți următorii pași:
- Pe consola Kinesis Data Firehose, alegeți Creați un flux de livrare.
- Pentru Sursă, Selectați PUNERE Direct.
- Pentru Destinaţie, Selectați Amazon S3.
- Pentru Numele fluxului de livrare, introduce
ComprehendRealTimeBlog
. - În Transformați înregistrările sursă cu AWS Lambda, Selectați Activat.
- Pentru Funcția AWS Lambda, introduceți ARN-ul pentru funcția pe care ați creat-o sau navigați la funcție
AmazonComprehendPII-Redact
. - Pentru Dimensiunea memoriei tampon, setați valoarea la 1 MB.
- Pentru Interval tampon, lăsați-l ca 60 de secunde.
- În Setări de destinație, selectați compartimentul S3 pe care l-ați creat pentru datele redactate.
- În Setări de rezervă, selectați compartimentul S3 pe care l-ați creat pentru înregistrările brute.
- În permisiune, fie creați sau actualizați un rol IAM, fie alegeți un rol existent cu permisiunile corespunzătoare.
- Alege Creați un flux de livrare.
Implementați soluția de streaming de date cu Kinesis Data Generator
Puteți utiliza Kinesis Data Generator (KDG) pentru a ingera date mostre în Kinesis Data Firehose și a testa soluția. Pentru a simplifica acest proces, oferim o funcție Lambda și un șablon CloudFormation pentru a crea un Amazon Cognito utilizator și atribuiți permisiunile corespunzătoare pentru a utiliza KDG.
- Pe Pagina Amazon Kinesis Data Generator, alege Creați un utilizator Cognito cu CloudFormation.Sunteți redirecționat către consola AWS CloudFormation pentru a vă crea stiva.
- Furnizați un nume de utilizator și o parolă pentru utilizatorul cu care vă conectați la KDG.
- Lăsați celelalte setări la valorile implicite și creați-vă stiva.
- Pe ieşiri fila, alegeți linkul KDG UI.
- Introduceți numele de utilizator și parola pentru a vă autentifica.
Trimiteți înregistrări de testare și validați redactarea în Amazon S3
Pentru a testa soluția, parcurgeți următorii pași:
- Conectați-vă la adresa URL KDG pe care ați creat-o la pasul anterior.
- Alegeți regiunea în care a fost implementată stiva AWS CloudFormation.
- Pentru Flux/flux de livrare, alegeți fluxul de livrare pe care l-ați creat (dacă ați folosit șablonul, acesta are formatul
accountnumber-awscomprehend-blog
). - Lăsați celelalte setări la valorile implicite.
- Pentru șablonul de înregistrare, puteți să vă creați propriile teste sau să utilizați următorul șablon. Dacă utilizați eșantionul de date furnizat mai jos pentru testare, ar trebui să aveți variabile de mediu actualizate în
AmazonComprehendPII-Redact
Funcția lambda laTweet1
,Tweet2
. Dacă este implementat prin CloudFormation, actualizați variabilele de mediu laTweet1
,Tweet2
în cadrul funcției Lambda creată. Eșantionul de date de testare este mai jos: - Alege Trimite dateși lăsați câteva secunde pentru ca înregistrările să fie trimise în fluxul dvs.
- După câteva secunde, opriți generatorul KDG și verificați-vă gălețile S3 pentru fișierele livrate.
Următorul este un exemplu de date brute din compartimentul S3 brut:
Următorul este un exemplu de date redactate din compartimentul S3 redactat:
Informațiile sensibile au fost eliminate din mesajele redactate, oferind încredere că puteți partaja aceste date cu sistemele finale.
A curăța
Când ați terminat de experimentat cu această soluție, curățați-vă resursele utilizând consola AWS CloudFormation pentru a șterge toate resursele implementate în acest exemplu. Dacă ați urmat pașii manuali, va trebui să ștergeți manual cele două găleți, the AmazonComprehendPII-Redact
funcția, ComprehendRealTimeBlog
stream, grupul de jurnal pentru ComprehendRealTimeBlog
flux și orice rol IAM care au fost create.
Concluzie
Această postare v-a arătat cum să integrați redarea PII în arhitectura dvs. de streaming aproape în timp real și să reduceți timpul de procesare a datelor prin efectuarea redactării în zbor. În acest scenariu, furnizați datele redactate utilizatorilor finali, iar un administrator al lacului de date securizează compartimentul brut pentru o utilizare ulterioară. De asemenea, puteți crea procesări suplimentare cu Amazon Comprehend pentru a identifica tonul sau sentimentul, pentru a identifica entitățile din date și pentru a clasifica fiecare mesaj.
Am furnizat pași individuali pentru fiecare serviciu ca parte a acestei postări și am inclus, de asemenea, un șablon CloudFormation care vă permite să furnizați resursele necesare în contul dvs. Acest șablon ar trebui utilizat numai pentru dovezi de concept sau scenarii de testare. Consultați ghidurile pentru dezvoltatori pentru Amazon Comprehend, Lambda, și Kinesis Data Firehose pentru orice limite de serviciu.
Pentru a începe cu identificarea și redactarea PII, consultați Informații de identificare personală (PII). Cu exemplul de arhitectură din această postare, puteți integra oricare dintre API-urile Amazon Comprehend cu date aproape în timp real, folosind transformarea datelor Kinesis Data Firehose. Pentru a afla mai multe despre ceea ce puteți construi cu datele dvs. aproape în timp real cu Kinesis Data Firehose, consultați Ghid pentru dezvoltatori Amazon Kinesis Data Firehose. Această soluție este disponibilă în toate regiunile AWS în care sunt disponibile Amazon Comprehend și Kinesis Data Firehose.
Despre autori
Joe Morotti este arhitect de soluții la Amazon Web Services (AWS), ajutând clienții Enterprise din Midwest SUA. El a ocupat o gamă largă de roluri tehnice și îi place să arate arta posibilului clienților. În timpul liber, îi place să petreacă timp de calitate cu familia, explorând locuri noi și supraanalizând performanța echipei sale sportive.
Sriharsh Adari este arhitect senior de soluții la Amazon Web Services (AWS), unde îi ajută pe clienți să lucreze înapoi de la rezultatele afacerii pentru a dezvolta soluții inovatoare pe AWS. De-a lungul anilor, el a ajutat mai mulți clienți cu privire la transformările platformei de date pe verticalele industriei. Domeniul său de bază de expertiză include strategia tehnologiei, analiza datelor și știința datelor. În timpul liber, îi place să joace tenis, să se uite la emisiuni TV și să joace Tabla.