Eemaldage tundlikud andmed voogesituse andmetest peaaegu reaalajas, kasutades Amazon Comprehendi ja Amazon Kinesis Data Firehose PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Eemaldage tundlikud andmed voogesituse andmetest peaaegu reaalajas, kasutades Amazon Comprehendi ja Amazon Kinesis Data Firehose'i

Peaaegu reaalajas andmete ja ülevaate edastamine võimaldab ettevõtetel kiiresti reageerida oma klientide vajadustele. Reaalajas andmed võivad pärineda erinevatest allikatest, sealhulgas sotsiaalmeediast, asjade Interneti-seadmetest, infrastruktuuri jälgimisest, kõnekeskuse monitooringust ja muust. Mitmest allikast sissevõetavate andmete laiuse ja sügavuse tõttu otsivad ettevõtted lahendusi oma klientide privaatsuse kaitsmiseks ja tundlike andmete juurdepääsu eest lõppsüsteemidest. Varem pidite toetuma isikut tuvastava teabe (PII) reeglimootoritele, mis võisid märgistada valepositiivseid tulemusi või andmetest ilma jääda, või pidite looma ja hooldama kohandatud masinõppe (ML) mudeleid, et tuvastada isikut tuvastav teave teie voogesituse andmetes. Samuti pidite rakendama ja hooldama nende mootorite või mudelite toetamiseks vajalikku infrastruktuuri.

Selle protsessi sujuvamaks muutmiseks ja kulude vähendamiseks võite kasutada Amazoni mõistmine, loomuliku keele töötlemise (NLP) teenus, mis kasutab ML-i, et leida struktureerimata tekstist teadmisi ja seoseid, nagu inimesed, kohad, tunded ja teemad. Nüüd saate kasutada Amazon Comprehend ML-i võimalusi, et tuvastada ja redigeerida PII-d klientide meilides, tugipiletites, tooteülevaadetes, sotsiaalmeedias ja mujal. ML kogemus pole vajalik. Näiteks saate enne dokumentide indekseerimist analüüsida tugipileteid ja teadmisteartikleid, et tuvastada PII-üksused ja redigeerida teksti. Pärast seda on dokumendid PII-üksustest vabad ja kasutajad saavad andmeid tarbida. PII-üksuste redigeerimine aitab teil kaitsta oma kliendi privaatsust ning järgida kohalikke seadusi ja eeskirju.

Sellest postitusest saate teada, kuidas rakendada Amazon Comprehendit oma voogedastusarhitektuuridesse, et redigeerida PII-üksuseid peaaegu reaalajas, kasutades Amazon Kinesis Data Firehose koos AWS Lambda.

See postitus keskendub andmete eemaldamisele valitud väljadelt, mis sisestatakse voogedastusarhitektuuri, kasutades Kinesis Data Firehose'i, kus soovite luua, salvestada ja hooldada andmete täiendavaid tuletiskoopiaid lõppkasutajate või järgnevate rakenduste tarbimiseks. Kui kasutate Amazon Kinesise andmevood või teil on muid kasutusjuhtumeid väljaspool isikuandmete muutmist, vaadake Tõlkige, redigeerige ja analüüsige voogesituse andmeid, kasutades SQL-i funktsioone Amazon Kinesis Data Analyticsi, Amazon Translate'i ja Amazon Comprehendiga, kus näitame, kuidas saate seda kasutada Amazon Kinesis Data Analytics Studio powered by Apache Zeppelin ja Apache Flash voogesituse andmete tekstiväljade interaktiivseks analüüsimiseks, tõlkimiseks ja redigeerimiseks.

Lahenduse ülevaade

Järgmisel joonisel on näidisarhitektuur voogesituse andmete reaalajas PII redigeerimiseks, kasutades Amazoni lihtne salvestusteenus (Amazon S3), Kinesis Data Firehose'i andmete teisendus, Amazoni mõistmineja AWS Lambda. Lisaks kasutame AWS SDK Pythoni jaoks (Boto3) lambda funktsioonide jaoks. Nagu diagrammil näidatud, sisaldab S3 töötlemata ämber redigeerimata andmeid ja redigeeritud S3 kopp sisaldab redigeeritud andmeid pärast Amazon Comprehendi kasutamist DetectPiiEntities API lambda funktsiooni sees.

Kaasatud kulud

Lisaks Kinesis Data Firehose'i, Amazon S3 ja Lambda kuludele tekitab see lahendus Amazon Comprehendi kasutuskulusid. Teie makstav summa on PII-d ja Lambda-funktsiooni poolt töödeldud tähemärke sisaldavate kirjete koguarvu tegur. Lisateabe saamiseks vaadake Amazon Kinesis Data Firehose'i hinnakujundus, Amazon Comprehend Pricingja AWS lambda hinnakujundus.

Oletame näiteks, et teil on 10,000 500 logikirjet ja võtmeväärtus, millest soovite isikut tuvastada, on 10,000 tähemärki. 50 XNUMX logikirjest tuvastatakse XNUMX, et need sisaldavad isikut tuvastavat teavet. Kulude üksikasjad on järgmised:

Sisaldab PII kulu:

  • Iga võtme väärtuse suurus = 500 tähemärki (1 ühik = 100 tähemärki)
  • Ühikute arv (100 tähemärki) kirje kohta (minimaalne arv on 3 ühikut) = 5
  • Ühikuid kokku = 10,000 5 (kirjet) x 1 (ühikut kirje kohta) x 50,000 (Amazon Comprehendi päringud kirje kohta) = XNUMX XNUMX
  • Ühiku hind = 0.000002 dollarit
    • Kogukulu isikuandmete tuvastamise logikirjete tuvastamiseks ContainsPiiEntities API abil = 0.1 $ [50,000 0.000002 ühikut x XNUMX $] 

Redigeeri PII kulu:

  • PII-d sisaldavad ühikud kokku = 50 (kirjet) x 5 (ühikut kirje kohta) x 1 (Amazon Comprehendi päringud kirje kohta) = 250
  • Ühiku hind = 0.0001 dollarit
    • PII asukoha tuvastamise kogukulu DetectPiiEntities API abil = [ühikute arv] x [ühiku hind] = 250 x 0.0001 $ = 0.025 $

Identifitseerimise ja redigeerimise kogukulu:

  • Kogukulu: 0.1 dollarit (kinnitamine, kui väli sisaldab isikut tuvastavat teavet) + 0.025 dollarit (isikut sisaldavate väljade redigeerimine) = 0.125 dollarit

Juurutage lahendus AWS CloudFormationiga

Selle postituse jaoks pakume AWS CloudFormation voogesituse andmete redigeerimine šabloon, mis sisaldab juurutamise kõiki üksikasju, et võimaldada korduvat juurutamist. Juurutamisel loob see mall kaks S3 ämbrit: üks Amazon Kinesis Data Generatorist (KDG) sisse võetud töötlemata näidisandmete salvestamiseks ja teine ​​redigeeritud andmete salvestamiseks. Lisaks loob see Kinesis Data Firehose'i edastusvoo koos DirectPUT sisendiks ja Lambda funktsioon, mis kutsub Amazon Comprehendi Sisaldab PiiEntities ja Tuvasta PiiEntities API isikuandmete tuvastamiseks ja redigeerimiseks. Lambda funktsioon tugineb kasutaja sisendile keskkonnamuutujates, et määrata kindlaks, milliseid võtmeväärtusi tuleb isikuandmete tuvastamiseks kontrollida.

Selle lahenduse lambda funktsioonil on kasuliku koormuse suurus piiratud 100 KB-ni. Kui antakse kasulik koormus, mille tekst on suurem kui 100 KB, jätab Lambda funktsioon selle vahele.

Lahenduse juurutamiseks toimige järgmiselt.

  1. Käivitage CloudFormationi virn USA idaosas (N. Virginia) us-east-1:
    Eemaldage tundlikud andmed voogesituse andmetest peaaegu reaalajas, kasutades Amazon Comprehendi ja Amazon Kinesis Data Firehose PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.
  2. Sisestage virna nimi ja jätke muud parameetrid vaikeväärtustele
  3. valima Tunnistan, et AWS CloudFormation võib luua kohandatud nimedega IAM-i ressursse.
  4. Vali Loo virn.

Juurutage ressursse käsitsi

Kui eelistate AWS CloudFormationi kasutamise asemel arhitektuuri käsitsi luua, täitke selles jaotises toodud juhised.

Looge S3 ämbrid

Looge oma S3 ämbrid järgmiste sammudega.

  1. Amazon S3 konsoolil valige Kopad navigeerimispaanil.
  2. Vali Loo ämber.
  3. Looge oma toorandmete jaoks üks salp ja üks redigeeritud andmete jaoks.
  4. Märkige üles äsja loodud ämbrite nimed.

Looge lambda funktsioon

Lambda funktsiooni loomiseks ja juurutamiseks toimige järgmiselt.

  1. Valige Lambda konsoolil Loo funktsioon.
  2. Vali Autor nullist.
  3. eest Funktsiooni nimi, sisenema AmazonComprehendPII-Redact.
  4. eest Runtime, vali Python 3.9.
  5. eest Arhitektuurvalige x86_64.
  6. eest Täitmise rollvalige Looge Lambda lubadega uus roll.
  7. Pärast funktsiooni loomist sisestage järgmine kood:
    import json
    import boto3
    import os
    import base64
    import sys
    
    def lambda_handler(event, context):
        
        output = []
        
        for record in event['records']:
            
            # Gathers keys from enviroment variables and makes a list of desired keys to check for PII
            rawkeys = os.environ['keys']
            splitkeys = rawkeys.split(", ")
            print(splitkeys)
            #decode base64
            #Kinesis data is base64 encoded so decode here
            payloadraw=base64.b64decode(record["data"]).decode('utf-8')
            #Loads decoded payload into json
            payloadjsonraw = json.loads(payloadraw)
            
            # Creates Comprehend client
            comprehend_client = boto3.client('comprehend')
            
            
            # This codes handles the logic to check for keys, identify if PII exists, and redact PII if available. 
            for i in payloadjsonraw:
                # checks if the key found in the message matches a redact
                if i in splitkeys:
                    print("Redact key found, checking for PII")
                    payload = str(payloadjsonraw[i])
                    # check if payload size is less than 100KB
                    if sys.getsizeof(payload) < 99999:
                        print('Size is less than 100KB checking if value contains PII')
                        # Runs Comprehend ContainsPiiEntities API call to see if key value contains PII
                        pii_identified = comprehend_client.contains_pii_entities(Text=payload, LanguageCode='en')
                        
                        # If PII is not found, skip over key
                        if (pii_identified['Labels']) == []:
                            print('No PII found')
                        else:
                        # if PII is found, run through redaction logic
                            print('PII found redacting')
                            # Runs Comprehend DetectPiiEntities call to find exact location of PII
                            response = comprehend_client.detect_pii_entities(Text=payload, LanguageCode='en')
                            entities = response['Entities']
                            # creates redacted_payload which will be redacted
                            redacted_payload = payload
                            # runs through a loop that gathers necessary values from Comprehend API response and redacts values
                            for entity in entities:
                                char_offset_begin = entity['BeginOffset']
                                char_offset_end = entity['EndOffset']
                                redacted_payload = redacted_payload[:char_offset_begin] + '*'*(char_offset_end-char_offset_begin) + redacted_payload[char_offset_end:]
                            # replaces original value with redacted value
                            payloadjsonraw[i] = redacted_payload
                            print(str(payloadjsonraw[i]))
                    else:
                        print ('Size is more than 100KB, skipping inspection')
                else:
                    print("Key value not found in redaction list")
            
            redacteddata = json.dumps(payloadjsonraw)
            
            # adds inspected record to record
            output_record = {
                'recordId': record['recordId'],
                'result': 'Ok',
                'data' : base64.b64encode(redacteddata.encode('utf-8'))
            }
            output.append(output_record)
            print(output_record)
            
        print('Successfully processed {} records.'.format(len(event['records'])))
        
        return {'records': output}

  8. Vali juurutada.
  9. Valige navigeerimispaanil Seadistamine.
  10. Liigu Keskkonnamuutujad.
  11. Vali Edit.
  12. eest Võti, sisenema keys.
  13. eest Väärtus, sisestage koma ja tühikuga eraldatud võtmeväärtused, millest soovite isikut tuvastada. Näiteks sisestage Tweet1, Tweet2 kui kasutate selle postituse järgmises jaotises esitatud näidistesti andmeid.
  14. Vali Säästa.
  15. Liigu Üldine konfiguratsioon.
  16. Vali Edit.
  17. Muuda väärtust Aegumine kuni 1 minutini.
  18. Vali Säästa.
  19. Liigu Õigused.
  20. Valige alt rolli nimi Täitmise roll.
    Teid suunatakse aadressile AWS-i identiteedi- ja juurdepääsuhaldus (IAM) konsool.
  21. eest Lisa õigused, vali Manustage eeskirjad.
  22. sisene Comprehend otsinguribale ja valige reegel ComprehendFullAccess.
  23. Vali Manustage eeskirjad.

Looge Firehose'i kohaletoimetamise voog

Firehose'i edastusvoo loomiseks toimige järgmiselt.

  1. Kinesis Data Firehose'i konsoolil valige Loo kohaletoimetamise voog.
  2. eest allikasvalige Otsene PUT.
  3. eest sihtpunktvalige Amazon S3.
  4. eest Kohaletoimetamise voo nimi, sisenema ComprehendRealTimeBlog.
  5. alla Muutke lähtekirjed AWS Lambda abilvalige lubatud.
  6. eest AWS lambda funktsioon, sisestage loodud funktsiooni ARN või sirvige funktsioonini AmazonComprehendPII-Redact.
  7. eest Buffer Size, määrake väärtuseks 1 MB.
  8. eest Puhvri intervalljätke 60 sekundiks.
  9. alla Sihtkoha seaded, valige redigeeritud andmete jaoks loodud S3-salv.
  10. alla Backup Seaded, valige toorkirjete jaoks loodud S3-salv.
  11. alla Luba, looge või värskendage IAM-roll või valige olemasolev roll, millel on õiged õigused.
  12. Vali Loo kohaletoimetamise voog.

Rakendage andmete voogesituse lahendust koos Kinesise andmegeneraatoriga

Saate kasutada Kinesise andmegeneraatorit (KDG), et sisestada näidisandmed Kinesis Data Firehose'i ja testida lahendust. Selle protsessi lihtsustamiseks pakume Lambda funktsiooni ja CloudFormationi malli loomiseks Amazon Cognito kasutajale ja määrake KDG kasutamiseks sobivad õigused.

  1. Kohta Amazon Kinesise andmegeneraatori leht, vali Looge CloudFormationiga Cognito kasutaja.Teid suunatakse virna loomiseks AWS CloudFormationi konsooli.
  2. Sisestage kasutajanimi ja parool kasutajale, kellega KDG-sse sisse logite.
  3. Jätke muud sätted vaikeseadetele ja looge oma virn.
  4. Kohta Väljundid valige KDG kasutajaliidese link.
  5. Sisestage sisselogimiseks oma kasutajanimi ja parool.

Saatke testikirjed ja kinnitage redigeerimine Amazon S3-s

Lahenduse testimiseks toimige järgmiselt.

  1. Logige sisse eelmises etapis loodud KDG URL-ile.
  2. Valige piirkond, kus AWS CloudFormationi virn juurutati.
  3. eest Voog/edastusvoog, valige enda loodud edastusvoog (kui kasutasite malli, on sellel vorming accountnumber-awscomprehend-blog).
  4. Jätke muud seaded nende vaikeseadetele.
  5. Kirjemalli jaoks saate luua oma testid või kasutada järgmist malli. Kui kasutate testimiseks allolevaid näidisandmeid, peaksid teil olema keskkonnamuutujad värskendatud AmazonComprehendPII-Redact Lambda funktsioon Tweet1, Tweet2. Kui juurutatakse CloudFormationi kaudu, värskendage keskkonnamuutujaid Tweet1, Tweet2 loodud lambda funktsiooni sees. Näidistesti andmed on allpool:
    {"User":"12345", "Tweet1":" Good morning, everybody. My name is Van Bokhorst Serdar, and today I feel like sharing a whole lot of personal information with you. Let's start with my Email address SerdarvanBokhorst@dayrep.com. My address is 2657 Koontz Lane, Los Angeles, CA. My phone number is 818-828-6231.", "Tweet2": "My Social security number is 548-95-6370. My Bank account number is 940517528812 and routing number 195991012. My credit card number is 5534816011668430, Expiration Date 6/1/2022, my C V V code is 121, and my pin 123456. Well, I think that's it. You know a whole lot about me. And I hope that Amazon comprehend is doing a good job at identifying PII entities so you can redact my personal information away from this streaming record. Let's check"}

  6. Vali Andmete saatmineja oodake mõni sekund, kuni kirjed teie voogu saadetakse.
  7. Mõne sekundi pärast peatage KDG generaator ja kontrollige, kas S3 ämbrites on tarnitud faile.

Järgmine on S3 töötlemata ämbri toorandmete näide:

{"User":"12345", "Tweet1":" Good morning, everybody. My name is Van Bokhorst Serdar, and today I feel like sharing a whole lot of personal information with you. Let's start with my Email address SerdarvanBokhorst@dayrep.com. My address is 2657 Koontz Lane, Los Angeles, CA. My phone number is 818-828-6231.", "Tweet2": "My Social security number is 548-95-6370. My Bank account number is 940517528812 and routing number 195991012. My credit card number is 5534816011668430, Expiration Date 6/1/2022, my C V V code is 121, and my pin 123456. Well, I think that's it. You know a whole lot about me. And I hope that Amazon comprehend is doing a good job at identifying PII entities so you can redact my personal information away from this streaming record. Let's check"}

Järgmine on redigeeritud S3 ämbri redigeeritud andmete näide:

{"User":"12345", "Tweet1":"Good morning, everybody. My name is *******************, and today I feel like sharing a whole lot of personal information with you. Let's start with my Email address ****************************. My address is ********************************** My phone number is ************.", "Tweet"2: "My Social security number is ***********. My Bank account number is ************ and routing number *********. My credit card number is ****************, Expiration Date ********, my C V V code is ***, and my pin ******. Well, I think that's it. You know a whole lot about me. And I hope that Amazon comprehend is doing a good job at identifying PII entities so you can redact my personal information away from this streaming record. Let's check"}

Tundlik teave on redigeeritud kirjadest eemaldatud, tagades kindlustunde, et saate neid andmeid lõppsüsteemidega jagada.

Korista ära

Kui olete selle lahendusega katsetamise lõpetanud, puhastage oma ressursid, kasutades AWS CloudFormationi konsooli, et kustutada kõik selles näites juurutatud ressursid. Kui järgisite käsitsi juhiseid, peate kaks ämbrit käsitsi kustutama AmazonComprehendPII-Redact funktsioon ComprehendRealTimeBlog oja, logirühma jaoks ComprehendRealTimeBlog voog ja kõik loodud IAM-rollid.

Järeldus

See postitus näitas teile, kuidas integreerida PII redigeerimine oma peaaegu reaalajas voogedastusarhitektuuri ja lühendada andmetöötluse aega, tehes redigeerimise lennu ajal. Selle stsenaariumi korral edastate redigeeritud andmed oma lõppkasutajatele ja andmejärve administraator kaitseb töötlemata ämbri hilisemaks kasutamiseks. Samuti saate Amazon Comprehendiga luua täiendava töötluse, et tuvastada tooni või meeleolu, tuvastada andmetes olevad olemid ja klassifitseerida iga sõnum.

Esitasime selle postituse osana iga teenuse jaoks individuaalsed sammud ja lisasime ka CloudFormationi malli, mis võimaldab teil oma kontol vajalikke ressursse varustada. Seda malli tuleks kasutada ainult kontseptsiooni tõendamiseks või testimise stsenaariumide jaoks. Vaadake arendaja juhendeid Amazoni mõistmine, Lambdaja Kinesis Data Firehose mis tahes teenusepiirangute jaoks.

PII tuvastamise ja redigeerimise alustamiseks vt isikut tuvastav teave (PII). Selle postituse näidisarhitektuuri abil saate Kinesis Data Firehose'i andmete teisenduse abil integreerida mis tahes Amazon Comprehend API-d peaaegu reaalajas andmetega. Lisateavet selle kohta, mida saate Kinesis Data Firehose'i peaaegu reaalajas andmetega luua, vaadake Amazon Kinesis Data Firehose'i arendaja juhend. See lahendus on saadaval kõigis AWS-i piirkondades, kus on saadaval Amazon Comprehend ja Kinesis Data Firehose.


Autoritest

Eemaldage tundlikud andmed voogesituse andmetest peaaegu reaalajas, kasutades Amazon Comprehendi ja Amazon Kinesis Data Firehose PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai. Joe Morotti on Amazon Web Servicesi (AWS) lahenduste arhitekt, kes aitab ettevõtte kliente kogu USA keskläänes. Ta on täitnud mitmesuguseid tehnilisi rolle ja naudib kliendi kunsti võimalikkuse näitamist. Vabal ajal veedab ta perega kvaliteetaega uusi kohti uurides ja oma spordimeeskonna sooritust üle analüüsides

Eemaldage tundlikud andmed voogesituse andmetest peaaegu reaalajas, kasutades Amazon Comprehendi ja Amazon Kinesis Data Firehose PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Sriharsh Adari on Amazon Web Servicesi (AWS) vanemlahenduste arhitekt, kus ta aitab klientidel töötada äritulemustest tagasi, et arendada AWS-is uuenduslikke lahendusi. Aastate jooksul on ta aidanud mitmeid kliente andmeplatvormide ümberkujundamisel tööstuse vertikaalsetes valdkondades. Tema põhiteadmiste hulka kuuluvad tehnoloogiastrateegia, andmeanalüüs ja andmeteadus. Vabal ajal meeldib talle tennist mängida, telesaateid vaadata ja Tablat mängida.

Ajatempel:

Veel alates AWS-i masinõpe