Leverans i nästan realtid av data och insikter gör det möjligt för företag att snabbt svara på sina kunders behov. Realtidsdata kan komma från en mängd olika källor, inklusive sociala medier, IoT-enheter, infrastrukturövervakning, callcenterövervakning och mer. På grund av bredden och djupet av data som tas in från flera källor, letar företag efter lösningar för att skydda sina kunders integritet och förhindra att känslig data nås från slutsystem. Du var tidigare tvungen att förlita dig på regelmotorer för personligt identifierbar information (PII) som kunde flagga falska positiva eller missa data, eller så var du tvungen att bygga och underhålla anpassade maskininlärningsmodeller (ML) för att identifiera PII i din strömmande data. Du behövde också implementera och underhålla den infrastruktur som krävs för att stödja dessa motorer eller modeller.
För att effektivisera denna process och minska kostnaderna kan du använda Amazon Comprehend, en NLP-tjänst (natural language processing) som använder ML för att hitta insikter och relationer som människor, platser, känslor och ämnen i ostrukturerad text. Du kan nu använda Amazon Comprehend ML-funktioner för att upptäcka och redigera PII i kundmejl, supportbiljetter, produktrecensioner, sociala medier och mer. Ingen erfarenhet av ML krävs. Du kan till exempel analysera supportärenden och kunskapsartiklar för att upptäcka PII-enheter och redigera texten innan du indexerar dokumenten. Därefter är dokument fria från PII-enheter och användare kan konsumera data. Redigera PII-enheter hjälper dig att skydda din kunds integritet och följa lokala lagar och förordningar.
I det här inlägget lär du dig hur du implementerar Amazon Comprehend i dina streamingarkitekturer för att redigera PII-enheter i nästan realtid med hjälp av Amazon Kinesis Data Firehose med AWS Lambda.
Det här inlägget är fokuserat på att redigera data från utvalda fält som matas in i en strömningsarkitektur med Kinesis Data Firehose, där du vill skapa, lagra och underhålla ytterligare härledda kopior av data för konsumtion av slutanvändare eller nedströmsapplikationer. Om du använder Amazon Kinesis dataströmmar eller har ytterligare användningsfall utanför PII-redigering, se Översätt, redigera och analysera strömmande data med SQL-funktioner med Amazon Kinesis Data Analytics, Amazon Translate och Amazon Comprehend, där vi visar hur du kan använda Amazon Kinesis Data Analytics Studio drivs av Apache Zeppelin och Apache Flash för att interaktivt analysera, översätta och redigera textfält i strömmande data.
Lösningsöversikt
Följande figur visar ett exempel på arkitektur för att utföra PII-redaktion av strömmande data i realtid, med hjälp av Amazon enkel lagringstjänst (Amazon S3), Kinesis Data Firehose datatransformation, Amazon Comprehendoch AWS Lambda. Dessutom använder vi AWS SDK för Python (Boto3) för lambdafunktionerna. Som indikeras i diagrammet innehåller S3 rå hink icke-redigerad data, och S3 redigerad hink innehåller redigerad data efter användning av Amazon Comprehend DetectPiiEntities
API inom en lambdafunktion.
Kostnader inblandade
Förutom kostnader för Kinesis Data Firehose, Amazon S3 och Lambda kommer denna lösning att medföra användningskostnader från Amazon Comprehend. Beloppet du betalar är en faktor av det totala antalet poster som innehåller PII och de tecken som bearbetas av Lambda-funktionen. För mer information, se Amazon Kinesis Data Firehose priser, Amazon Comprehend Prissättningoch AWS Lambda-prissättning.
Som ett exempel, låt oss anta att du har 10,000 500 loggposter och nyckelvärdet du vill redigera PII från är 10,000 tecken. Av de 50 XNUMX loggposterna identifieras XNUMX som innehållande PII. Kostnadsdetaljerna är följande:
Innehåller PII-kostnad:
- Storleken på varje nyckelvärde = 500 tecken (1 enhet = 100 tecken)
- Antal enheter (100 tecken) per post (minst 3 enheter) = 5
- Totalt antal enheter = 10,000 5 (poster) x 1 (enheter per post) x 50,000 (Amazon Comprehend-förfrågningar per post) = XNUMX XNUMX
- Pris per enhet = $ 0.000002
- Total kostnad för att identifiera loggposter med PII med ContainsPiiEntities API = $0.1 [50,000 0.000002 enheter x $XNUMX]
Redact PII-kostnad:
- Totalt antal enheter som innehåller PII = 50 (poster) x 5 (enheter per post) x 1 (Amazon Comprehend-förfrågningar per post) = 250
- Pris per enhet = $ 0.0001
- Total kostnad för att identifiera platsen för PII med DetectPiiEntities API = [antal enheter] x [kostnad per enhet] = 250 x $0.0001 = $0.025
Total kostnad för identifiering och redigering:
- Total kostnad: $0.1 (validering om fältet innehåller PII) + $0.025 (redigera fält som innehåller PII) = $0.125
Distribuera lösningen med AWS CloudFormation
För detta inlägg tillhandahåller vi en AWS molnformation redigering av strömmande data mall, som ger alla detaljer om implementeringen för att möjliggöra repeterbara distributioner. Vid implementering skapar den här mallen två S3-segment: en för att lagra råprovdata som tas in från Amazon Kinesis Data Generator (KDG), och en för att lagra den redigerade datan. Dessutom skapar den en Kinesis Data Firehose leveransström med DirectPUT
som input, och en Lambda-funktion som anropar Amazon Comprehend Innehåller PiiEntities och DetectPiiEntities API för att identifiera och redigera PII-data. Lambdafunktionen förlitar sig på användarinmatning i miljövariablerna för att avgöra vilka nyckelvärden som behöver inspekteras för PII.
Lambdafunktionen i denna lösning har begränsade nyttolaststorlekar till 100 KB. Om en nyttolast tillhandahålls där texten är större än 100 KB kommer Lambdafunktionen att hoppa över den.
Så här distribuerar du lösningen:
- Starta CloudFormation-stacken i US East (N. Virginia)
us-east-1
: - Ange ett stacknamn och lämna andra parametrar som standard
- Välja Jag erkänner att AWS CloudFormation kan skapa IAM-resurser med anpassade namn.
- Välja Skapa stack.
Distribuera resurser manuellt
Om du föredrar att bygga arkitekturen manuellt istället för att använda AWS CloudFormation, slutför stegen i det här avsnittet.
Skapa S3-hinkarna
Skapa dina S3-skopor med följande steg:
- Välj på Amazon S3-konsolen Skopor i navigeringsfönstret.
- Välja Skapa hink.
- Skapa en hink för dina rådata och en för din redigerade data.
- Notera namnen på hinkarna du just skapade.
Skapa Lambda-funktionen
För att skapa och distribuera Lambda-funktionen, utför följande steg:
- Välj på Lambda-konsolen Skapa funktion.
- Välja Författare från början.
- För Funktionsnamn, stiga på
AmazonComprehendPII-Redact
. - För Runtimeväljer python 3.9.
- För arkitektur, Välj x86_64.
- För Utförande roll, Välj Skapa en ny roll med Lambda-behörigheter.
- När du har skapat funktionen anger du följande kod:
- Välja Distribuera.
- Välj i navigeringsfönstret Konfiguration.
- Navigera till Miljövariabler.
- Välja Redigera.
- För Nyckel, stiga på
keys
. - För Värde, ange nyckelvärdena som du vill redigera PII från, separerade med kommatecken och mellanslag. Ange till exempel
Tweet1
,Tweet2
om du använder provdata som tillhandahålls i nästa avsnitt av det här inlägget. - Välja Save.
- Navigera till Allmän konfiguration.
- Välja Redigera.
- Ändra värdet på Timeout till 1 minut.
- Välja Save.
- Navigera till behörigheter.
- Välj rollnamnet under Utförande roll.
Du omdirigeras till AWS identitets- och åtkomsthantering (IAM) -konsol. - För Lägg till behörigheterväljer Bifoga policyer.
- ange
Comprehend
i sökfältet och välj policyComprehendFullAccess
. - Välja Bifoga policyer.
Skapa Firehose leveransström
Utför följande steg för att skapa din Firehose-leveransström:
- Välj Kinesis Data Firehose-konsolen Skapa leveransström.
- För Källa, Välj Direkt PUT.
- För Destination, Välj Amazon S3.
- För Namn på leveransström, stiga på
ComprehendRealTimeBlog
. - Enligt Förvandla källposter med AWS Lambda, Välj Aktiverat.
- För AWS Lambda-funktion, ange ARN för funktionen du skapade, eller bläddra till funktionen
AmazonComprehendPII-Redact
. - För Buffertstorlek, ställ in värdet på 1 MB.
- För Buffertintervall, låt det vara 60 sekunder.
- Enligt Destinationsinställningar, välj den S3-bucket du skapade för den redigerade informationen.
- Enligt Backup-inställningar, välj S3-bucket som du skapade för råposterna.
- Enligt tillstånd, antingen skapa eller uppdatera en IAM-roll, eller välj en befintlig roll med rätt behörigheter.
- Välja Skapa leveransström.
Implementera strömmande datalösning med Kinesis Data Generator
Du kan använda Kinesis Data Generator (KDG) för att mata in provdata till Kinesis Data Firehose och testa lösningen. För att förenkla denna process tillhandahåller vi en Lambda-funktion och CloudFormation-mall för att skapa en Amazon Cognito användare och tilldela lämpliga behörigheter för att använda KDG.
- På Amazon Kinesis Data Generator-sidaväljer Skapa en Cognito-användare med CloudFormation.Du omdirigeras till AWS CloudFormation-konsolen för att skapa din stack.
- Ange ett användarnamn och lösenord för användaren som du loggar in på KDG med.
- Lämna de andra inställningarna på sina standardinställningar och skapa din stack.
- På Utgångarna fliken, välj länken KDG UI.
- Ange ditt användarnamn och lösenord för att logga in.
Skicka testposter och validera redigering i Amazon S3
Gör följande för att testa lösningen:
- Logga in på KDG URL som du skapade i föregående steg.
- Välj den region där AWS CloudFormation-stacken distribuerades.
- För Stream/leveransström, välj den leveransström du skapade (om du använde mallen har den formatet
accountnumber-awscomprehend-blog
). - Lämna de andra inställningarna på sina standardinställningar.
- För postmallen kan du skapa dina egna tester eller använda följande mall. Om du använder de medföljande exempeldata nedan för testning, bör du ha uppdaterade miljövariabler i
AmazonComprehendPII-Redact
Lambdafunktion tillTweet1
,Tweet2
. Om den distribueras via CloudFormation, uppdatera miljövariabler tillTweet1
,Tweet2
inom den skapade Lambdafunktionen. Exempel på testdata är nedan: - Välja Skicka data, och låt några sekunder innan poster skickas till din stream.
- Efter några sekunder, stoppa KDG-generatorn och kontrollera dina S3-hinkar för de levererade filerna.
Följande är ett exempel på rådata i den råa S3-hinken:
Följande är ett exempel på redigerad data i den redigerade S3-hinken:
Den känsliga informationen har tagits bort från de redigerade meddelandena, vilket ger förtroende för att du kan dela denna data med slutsystem.
Städa
När du är klar med att experimentera med den här lösningen, rensa upp dina resurser genom att använda AWS CloudFormation-konsolen för att ta bort alla resurser som distribueras i det här exemplet. Om du följde de manuella stegen måste du manuellt ta bort de två hinkarna, den AmazonComprehendPII-Redact
funktion, den ComprehendRealTimeBlog
stream, logggruppen för ComprehendRealTimeBlog
stream och eventuella IAM-roller som skapades.
Slutsats
Det här inlägget visade dig hur du integrerar PII-redaktion i din strömningsarkitektur i nästan realtid och minskar databehandlingstiden genom att utföra redaktion under flygning. I det här scenariot tillhandahåller du den redigerade datan till dina slutanvändare och en datasjö-administratör säkrar den råa hinken för senare användning. Du kan också bygga ytterligare bearbetning med Amazon Comprehend för att identifiera ton eller känsla, identifiera enheter i data och klassificera varje meddelande.
Vi tillhandahöll individuella steg för varje tjänst som en del av det här inlägget, och inkluderade även en CloudFormation-mall som låter dig tillhandahålla de nödvändiga resurserna i ditt konto. Den här mallen bör endast användas för bevis på koncept eller testscenarier. Se utvecklarguiderna för Amazon Comprehend, Lambdaoch Kinesis Data Brandslang för eventuella servicegränser.
För att komma igång med PII-identifiering och redaktion, se Personligt identifierbar information (PII). Med exempelarkitekturen i det här inlägget kan du integrera vilken som helst av Amazon Comprehend API:er med nästan realtidsdata med hjälp av Kinesis Data Firehose-datatransformation. För att lära dig mer om vad du kan bygga med dina nästan realtidsdata med Kinesis Data Firehose, se Amazon Kinesis Data Firehose Developer Guide. Denna lösning är tillgänglig i alla AWS-regioner där Amazon Comprehend och Kinesis Data Firehose är tillgängliga.
Om författarna
Joe Morotti är en lösningsarkitekt på Amazon Web Services (AWS) och hjälper företagskunder över hela Mellanvästern i USA. Han har haft ett brett utbud av tekniska roller och tycker om att visa kundens konst av det möjliga. På fritiden tycker han om att tillbringa kvalitetstid med sin familj för att utforska nya platser och överanalysera sitt idrottslags prestation
Sriharsh Adari är Senior Solutions Architect på Amazon Web Services (AWS), där han hjälper kunder att arbeta baklänges från affärsresultat för att utveckla innovativa lösningar på AWS. Under åren har han hjälpt flera kunder med transformationer av dataplattformar över branschvertikaler. Hans kärnexpertisområde inkluderar teknologistrategi, dataanalys och datavetenskap. På fritiden tycker han om att spela tennis, titta på tv-program och spela Tabla.
- AI
- ai konst
- ai art generator
- har robot
- Amazon Kinesis
- analytics
- artificiell intelligens
- artificiell intelligenscertifiering
- artificiell intelligens inom bankväsendet
- artificiell intelligens robot
- robotar med artificiell intelligens
- programvara för artificiell intelligens
- AWS maskininlärning
- blockchain
- blockchain konferens ai
- coingenius
- konversationskonstnärlig intelligens
- kryptokonferens ai
- dalls
- djupt lärande
- du har google
- Mellan (200)
- Kinesis Data Brandslang
- maskininlärning
- plato
- plato ai
- Platon Data Intelligence
- Platon spel
- PlatonData
- platogaming
- skala ai
- syntax
- zephyrnet