Levering av data og innsikt nesten i sanntid gjør det mulig for virksomheter å reagere raskt på kundenes behov. Sanntidsdata kan komme fra en rekke kilder, inkludert sosiale medier, IoT-enheter, infrastrukturovervåking, callsenterovervåking og mer. På grunn av bredden og dybden av data som inntas fra flere kilder, ser bedrifter etter løsninger for å beskytte kundenes personvern og hindre at sensitive data blir tilgang til fra sluttsystemer. Du måtte tidligere stole på regelmotorer for personlig identifiserbar informasjon (PII) som kunne flagge falske positiver eller gå glipp av data, eller du måtte bygge og vedlikeholde tilpassede maskinlæringsmodeller (ML) for å identifisere PII i strømmedataene dine. Du trengte også å implementere og vedlikeholde infrastrukturen som er nødvendig for å støtte disse motorene eller modellene.
For å effektivisere denne prosessen og redusere kostnadene, kan du bruke Amazon Comprehend, en naturlig språkbehandlingstjeneste (NLP) som bruker ML for å finne innsikt og relasjoner som mennesker, steder, følelser og emner i ustrukturert tekst. Du kan nå bruke Amazon Comprehend ML-funksjoner til å oppdage og redigere PII i kunde-e-poster, supportbilletter, produktanmeldelser, sosiale medier og mer. Ingen ML-erfaring kreves. Du kan for eksempel analysere støttebilletter og kunnskapsartikler for å oppdage PII-enheter og redigere teksten før du indekserer dokumentene. Etter det er dokumenter fri for PII-enheter og brukere kan konsumere dataene. Redigere PII-enheter hjelper deg med å beskytte kundens personvern og overholde lokale lover og forskrifter.
I dette innlegget lærer du hvordan du implementerer Amazon Comprehend i strømmearkitekturene dine for å redigere PII-enheter i nesten sanntid ved å bruke Amazon Kinesis Data Firehose med AWS Lambda.
Dette innlegget er fokusert på å redigere data fra utvalgte felt som tas inn i en strømmearkitektur ved hjelp av Kinesis Data Firehose, hvor du ønsker å opprette, lagre og vedlikeholde ytterligere avledede kopier av dataene for forbruk av sluttbrukere eller nedstrømsapplikasjoner. Hvis du bruker Amazon Kinesis datastrømmer eller har flere brukstilfeller utenfor PII-redigering, se Oversett, redakter og analyser strømmedata ved hjelp av SQL-funksjoner med Amazon Kinesis Data Analytics, Amazon Translate og Amazon Comprehend, hvor vi viser hvordan du kan bruke Amazon Kinesis Data Analytics Studio drevet av Apache Zeppelin og Apache Flash å interaktivt analysere, oversette og redigere tekstfelt i strømmedata.
Løsningsoversikt
Følgende figur viser en eksempelarkitektur for å utføre PII-redaksjon av strømmedata i sanntid, ved hjelp av Amazon enkel lagringstjeneste (Amazon S3), Kinesis Data Firehose datatransformasjon, Amazon Comprehendog AWS Lambda. I tillegg bruker vi AWS SDK for Python (Boto3) for Lambda-funksjonene. Som angitt i diagrammet inneholder S3-råbøtten ikke-redigerte data, og den S3-redigerte bøtten inneholder redigerte data etter bruk av Amazon Comprehend DetectPiiEntities
API i en Lambda-funksjon.
Kostnader involvert
I tillegg til kostnadene for Kinesis Data Firehose, Amazon S3 og Lambda, vil denne løsningen pådra seg brukskostnader fra Amazon Comprehend. Beløpet du betaler er en faktor av det totale antallet poster som inneholder PII og tegnene som behandles av Lambda-funksjonen. For mer informasjon, se Amazon Kinesis Data Firehose-priser, Amazon Comprehend Pricingog AWS Lambda Priser.
Som et eksempel, la oss anta at du har 10,000 500 loggposter, og nøkkelverdien du vil redigere PII fra er 10,000 tegn. Av de 50 XNUMX loggpostene er XNUMX identifisert som å inneholde PII. Kostnadsdetaljene er som følger:
Inneholder PII-kostnad:
- Størrelsen på hver nøkkelverdi = 500 tegn (1 enhet = 100 tegn)
- Antall enheter (100 tegn) per post (minimum er 3 enheter) = 5
- Totale enheter = 10,000 5 (poster) x 1 (enheter per post) x 50,000 (Amazon Comprehend-forespørsler per post) = XNUMX XNUMX
- Pris per enhet = $ 0.000002
- Total kostnad for å identifisere loggposter med PII ved hjelp av ContainsPiiEntities API = $0.1 [50,000 0.000002 enheter x $XNUMX]
Redact PII-kostnad:
- Totale enheter som inneholder PII = 50 (poster) x 5 (enheter per post) x 1 (Amazon Comprehend-forespørsler per post) = 250
- Pris per enhet = $ 0.0001
- Total kostnad for å identifisere plasseringen av PII ved hjelp av DetectPiiEntities API = [antall enheter] x [kostnad per enhet] = 250 x $0.0001 = $0.025
Totalkostnad for identifikasjon og redaksjon:
- Total kostnad: $0.1 (validering hvis feltet inneholder PII) + $0.025 (rediger felt som inneholder PII) = $0.125
Distribuer løsningen med AWS CloudFormation
For dette innlegget gir vi en AWS skyformasjon redaksjon av strømmedata mal, som gir alle detaljer om implementeringen for å muliggjøre repeterbare distribusjoner. Ved distribusjon oppretter denne malen to S3-bøtter: en for å lagre råprøvedataene som er inntatt fra Amazon Kinesis Data Generator (KDG), og en for å lagre de redigerte dataene. I tillegg oppretter den en Kinesis Data Firehose-leveringsstrøm med DirectPUT
som input, og en Lambda-funksjon som kaller Amazon Comprehend InneholderPiiEntities og DetectPiiEntities API for å identifisere og redigere PII-data. Lambda-funksjonen er avhengig av brukerinndata i miljøvariablene for å bestemme hvilke nøkkelverdier som må inspiseres for PII.
Lambda-funksjonen i denne løsningen har begrensede nyttelaststørrelser til 100 KB. Hvis en nyttelast leveres der teksten er større enn 100 KB, vil Lambda-funksjonen hoppe over den.
Gjør følgende for å distribuere løsningen:
- Start CloudFormation-stabelen i US East (N. Virginia)
us-east-1
: - Skriv inn et stabelnavn, og la andre parametere stå som standard
- Plukke ut Jeg erkjenner at AWS CloudFormation kan lage IAM-ressurser med tilpassede navn.
- Velg Lag stabel.
Distribuer ressurser manuelt
Hvis du foretrekker å bygge arkitekturen manuelt i stedet for å bruke AWS CloudFormation, fullfør trinnene i denne delen.
Lag S3-bøttene
Lag S3-bøtter med følgende trinn:
- Velg på Amazon S3-konsollen Bøtter i navigasjonsruten.
- Velg Lag bøtte.
- Lag én bøtte for rådataene dine og én for de redigerte dataene dine.
- Legg merke til navnene på bøttene du nettopp har laget.
Lag Lambda-funksjonen
For å opprette og distribuere Lambda-funksjonen, fullfør følgende trinn:
- Velg Lambda-konsollen Opprett funksjon.
- Velg Forfatter fra bunnen av.
- Til Funksjonsnavn, Tast inn
AmazonComprehendPII-Redact
. - Til Runtime, velg Python 3.9.
- Til arkitektur, plukke ut x86_64.
- Til Utførelsesrolle, plukke ut Opprett en ny rolle med Lambda-tillatelser.
- Etter at du har opprettet funksjonen, skriv inn følgende kode:
- Velg Distribuer.
- Velg i navigasjonsruten Konfigurasjon.
- naviger til Miljøvariabler.
- Velg Rediger.
- Til nøkkel, Tast inn
keys
. - Til Verdi, skriv inn nøkkelverdiene du vil redigere PII fra, atskilt med komma og mellomrom. For eksempel, enter
Tweet1
,Tweet2
hvis du bruker prøvedataene i neste del av dette innlegget. - Velg Spar.
- naviger til Generell konfigurasjon.
- Velg Rediger.
- Endre verdien av Timeout til 1 minutt.
- Velg Spar.
- naviger til Tillatelser.
- Velg rollenavnet under Gjennomføringsrolle.
Du blir omdirigert til AWS identitets- og tilgangsadministrasjon (IAM) konsoll. - Til Legg til tillatelser, velg Legg ved retningslinjer.
- Enter
Comprehend
inn i søkefeltet og velg policyenComprehendFullAccess
. - Velg Legg ved retningslinjer.
Opprett Firehose-leveringsstrømmen
For å opprette Firehose-leveringsstrømmen, fullfør følgende trinn:
- På Kinesis Data Firehose-konsollen velger du Opprett leveringsstrøm.
- Til kilde, plukke ut Direkte PUT.
- Til Destinasjon, plukke ut Amazon S3.
- Til Navn på leveringsstrøm, Tast inn
ComprehendRealTimeBlog
. - Under Transform kildeposter med AWS Lambda, plukke ut aktivert.
- Til AWS Lambda-funksjon, skriv inn ARN for funksjonen du opprettet, eller bla til funksjonen
AmazonComprehendPII-Redact
. - Til Buffer størrelse, sett verdien til 1 MB.
- Til Bufferintervall, la det være i 60 sekunder.
- Under Destinasjonsinnstillinger, velg S3-bøtten du opprettet for de redigerte dataene.
- Under Sikkerhetskopieringsinnstillinger, velg S3-bøtten du opprettet for råpostene.
- Under Tillatelse, enten opprette eller oppdatere en IAM-rolle, eller velg en eksisterende rolle med de riktige tillatelsene.
- Velg Opprett leveringsstrøm.
Distribuer strømmedataløsningen med Kinesis Data Generator
Du kan bruke Kinesis Data Generator (KDG) til å ta inn prøvedata til Kinesis Data Firehose og teste løsningen. For å forenkle denne prosessen tilbyr vi en Lambda-funksjon og CloudFormation-mal for å lage en Amazon Cognito bruker og tilordne passende tillatelser for å bruke KDG.
- På Amazon Kinesis Data Generator-side, velg Opprett en Cognito-bruker med CloudFormation.Du blir omdirigert til AWS CloudFormation-konsollen for å lage stabelen din.
- Oppgi et brukernavn og passord for brukeren du logger på KDG med.
- La de andre innstillingene stå på standardinnstillingene og lag stabelen din.
- På Utganger fanen, velg KDG UI-koblingen.
- Skriv inn brukernavn og passord for å logge på.
Send testposter og valider redaksjon i Amazon S3
For å teste løsningen, fullfør følgende trinn:
- Logg på KDG-URLen du opprettet i forrige trinn.
- Velg regionen der AWS CloudFormation-stakken ble distribuert.
- Til Stream/leveringsstrøm, velg leveringsstrømmen du opprettet (hvis du brukte malen, har den formatet
accountnumber-awscomprehend-blog
). - La de andre innstillingene stå på standardinnstillingene.
- For postmalen kan du lage dine egne tester, eller bruke følgende mal. Hvis du bruker eksempeldataene nedenfor for testing, bør du ha oppdaterte miljøvariabler i
AmazonComprehendPII-Redact
Lambda funksjon tilTweet1
,Tweet2
. Hvis den distribueres via CloudFormation, oppdater miljøvariabler tilTweet1
,Tweet2
innenfor den opprettede Lambda-funksjonen. Eksempeltestdataene er nedenfor: - Velg Send data, og la noen sekunder før poster sendes til strømmen din.
- Etter noen sekunder, stopp KDG-generatoren og sjekk S3-bøttene dine for de leverte filene.
Følgende er et eksempel på rådataene i den rå S3-bøtten:
Følgende er et eksempel på de redigerte dataene i den redigerte S3-bøtten:
Den sensitive informasjonen er fjernet fra de redigerte meldingene, noe som gir tillit til at du kan dele disse dataene med sluttsystemer.
Opprydding
Når du er ferdig med å eksperimentere med denne løsningen, kan du rydde opp i ressursene dine ved å bruke AWS CloudFormation-konsollen for å slette alle ressursene som er distribuert i dette eksemplet. Hvis du fulgte de manuelle trinnene, må du manuelt slette de to bøttene, den AmazonComprehendPII-Redact
funksjon, ComprehendRealTimeBlog
stream, logggruppen for ComprehendRealTimeBlog
stream og eventuelle IAM-roller som ble opprettet.
konklusjonen
Dette innlegget viste deg hvordan du integrerer PII-redaksjon i strømmearkitekturen din i nær sanntid og reduserer databehandlingstiden ved å utføre redaksjon under flyturen. I dette scenariet gir du de redigerte dataene til sluttbrukerne dine, og en datainnsjø-administrator sikrer råbøtten for senere bruk. Du kan også bygge ytterligere behandling med Amazon Comprehend for å identifisere tone eller følelse, identifisere enheter i dataene og klassifisere hver melding.
Vi ga individuelle trinn for hver tjeneste som en del av dette innlegget, og inkluderte også en CloudFormation-mal som lar deg levere de nødvendige ressursene i kontoen din. Denne malen skal kun brukes for proof of concept eller testscenarier. Se utviklerveiledningene for Amazon Comprehend, Lambdaog Kinesis Data brannslange for eventuelle tjenestegrenser.
For å komme i gang med PII-identifikasjon og redaksjon, se Personlig identifiserbar informasjon (PII). Med eksempelarkitekturen i dette innlegget kan du integrere hvilken som helst av Amazon Comprehend API-ene med nesten sanntidsdata ved å bruke Kinesis Data Firehose-datatransformasjon. For å lære mer om hva du kan bygge med dine nærsanntidsdata med Kinesis Data Firehose, se Amazon Kinesis Data Firehose utviklerveiledning. Denne løsningen er tilgjengelig i alle AWS-regioner der Amazon Comprehend og Kinesis Data Firehose er tilgjengelig.
Om forfatterne
Joe Morotti er en løsningsarkitekt hos Amazon Web Services (AWS), og hjelper Enterprise-kunder over hele Midtvesten i USA. Han har hatt et bredt spekter av tekniske roller og liker å vise kundens kunst av det mulige. På fritiden liker han å tilbringe kvalitetstid med familien på å utforske nye steder og overanalysere idrettslagets prestasjoner
Sriharsh Adari er Senior Solutions Architect hos Amazon Web Services (AWS), hvor han hjelper kunder med å jobbe bakover fra forretningsresultater for å utvikle innovative løsninger på AWS. Gjennom årene har han hjulpet flere kunder med transformasjoner av dataplattformer på tvers av industrivertikaler. Hans kjernekompetanse inkluderer teknologistrategi, dataanalyse og datavitenskap. På fritiden liker han å spille tennis, se på TV-serier og spille Tabla.