Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio

Amazon SageMaker Studio er et fuldt integreret udviklingsmiljø (IDE) til maskinlæring (ML), der gør det muligt for dataforskere og udviklere at udføre hvert trin i ML-arbejdsgangen, fra forberedelse af data til opbygning, træning, tuning og implementering af modeller. Studio leveres med indbygget integration med Amazon EMR så dataforskere interaktivt kan forberede data i petabyte-skala ved hjælp af open source-frameworks såsom Apache Spark, Hive og300 Presto direkte fra Studio-notebooks. Data lagres ofte i datasøer, der administreres af AWS søformation, hvilket gør det muligt for dig at anvende finmasket adgangskontrol gennem en simpel bevillings- eller tilbagekaldelsesmekanisme. Vi er glade for at kunne meddele, at Studio nu understøtter anvendelse af denne finkornede dataadgangskontrol med Lake Formation, når der tilgås data via Amazon EMR.

Indtil nu, når du kørte flere databehandlingsjob på en EMR-klynge, brugte alle jobs det samme AWS identitets- og adgangsstyring (JEG ER) rolle for at få adgang til data - nemlig klyngens Amazon Elastic Compute Cloud (Amazon EC2) instansprofil. Derfor at køre job, der havde brug for adgang til forskellige datakilder såsom forskellige Amazon Simple Storage Service (Amazon S3) buckets, skulle du konfigurere EC2-instansprofilen med politikker, der tillod adgang til foreningen af ​​alle sådanne datakilder. Derudover, for at aktivere grupper af brugere med forskellig adgang til data, skulle du oprette flere separate klynger, en for hver gruppe, hvilket resulterede i driftsomkostninger. Separat var job, der blev sendt til Amazon EMR fra Studio-notebooks, ikke i stand til at anvende finkornet dataadgangskontrol med Lake Formation.

Fra og med udgivelsen af ​​Amazon EMR 6.9, når du opretter forbindelse til EMR-klynger fra Studio-notebooks, kan du visuelt browse og vælge en IAM-rolle i farten kaldet runtime IAM-rolle. Efterfølgende vil alle dine Apache Spark-, Apache Hive- eller Presto-job, der er oprettet fra Studio-notesbøger, kun få adgang til de data og ressourcer, der er tilladt af politikker knyttet til runtime-rollen. Når der også tilgås data fra datasøer, der administreres med Lake Formation, kan du gennemtvinge adgang på tabelniveau og kolonneniveau ved hjælp af politikker knyttet til runtime-rollen.

Med denne nye funktion kan flere Studio-brugere oprette forbindelse til den samme EMR-klynge, hver ved at bruge en runtime IAM-rolle med tilladelser, der matcher deres individuelle adgangsniveau til data. Deres brugersessioner er også fuldstændig isoleret fra hinanden på den delte klynge. Med denne evne til at kontrollere finmasket adgang til data på den samme delte klynge kan du forenkle leveringen af ​​EMR-klynger og derved reducere driftsoverhead og spare omkostninger.

I dette indlæg demonstrerer vi, hvordan man bruger en Studio notesbog at oprette forbindelse til en EMR-klynge ved hjælp af runtime-roller. Vi leverer et eksempel på Studio Lifecycle Configuration, der kan hjælpe med at konfigurere de EMR-runtime-roller, som en Studio-brugerprofil har adgang til. Derudover administrerer vi dataadgang i en datasø via Lake Formation ved at håndhæve tilladelser på række- og kolonneniveau til EMR-runtime-rollerne.

Løsningsoversigt

Vi demonstrerer denne løsning med en end-to-end use case ved hjælp af et eksempeldatasæt, den TPC datamodel. Disse data repræsenterer transaktionsdata for produkter og inkluderer oplysninger såsom kundedemografi, lagerbeholdning, websalg og kampagner. For at demonstrere finkornede dataadgangstilladelser overvejer vi følgende to brugere:

  • David, en dataforsker på marketingteamet. Han har til opgave at opbygge en model for kundesegmentering og har kun adgang til ikke-følsomme kundedata.
  • Tina, en dataforsker på salgsteamet. Hun har til opgave at bygge salgsprognosemodellen og har brug for adgang til salgsdata for den pågældende region. Hun hjælper også produktteamet med innovation og har derfor også brug for adgang til produktdata.

Arkitekturen er implementeret som følger:

  • Lake Formation administrerer datasøen, og rådataene er tilgængelige i S3-bøtter
  • Amazon EMR bruges til at forespørge dataene fra datasøen og udføre dataforberedelse ved hjælp af Spark
  • IAM-roller bruges til at administrere dataadgang ved hjælp af Lake Formation
  • Studio bruges som den enkelte visuelle grænseflade til interaktivt at forespørge og forberede dataene

Følgende diagram illustrerer denne arkitektur.

De følgende afsnit gennemgår de nødvendige trin for at aktivere runtime IAM-roller for Amazon EMR-integration med et eksisterende Studio-domæne. Du kan bruge den medfølgende AWS CloudFormation stak i Implementer løsningen afsnittet nedenfor for at opsætte de arkitektoniske komponenter til denne løsning.

Forudsætninger

Før du går i gang, skal du sørge for at have følgende forudsætninger:

Konfigurer Amazon EMR med runtime-roller

EMR-klyngen skal oprettes med IAM-runtime-roller aktiveret. For flere detaljer om brug af runtime-roller med Amazon EMR, se Konfigurer runtime-roller for Amazon EMR-trin. At knytte runtime-roller til EMR-klynger understøttes i Amazon EMR 6.9. Sørg for, at følgende konfiguration er på plads:

  • EMR-runtime-rollens tillidspolitik bør tillade EMR EC2-instansprofilen at påtage sig rollen
  • EMR EC2-instansprofilrollen bør være i stand til at påtage sig EMR-runtime-rollerne
  • EMR-klyngen skal oprettes med kryptering under transit

Du kan valgfrit vælge at bestå SourceIdentity (Studio-brugerprofilnavnet) til overvågning af brugerressourceadgangen. Følg trinene beskrevet i Overvågning af brugerressourceadgang fra Amazon SageMaker Studio at muliggøre SourceIdentity for dit Studio-domæne.

Til sidst henvises til Forbered data ved hjælp af Amazon EMR for detaljerede opsætnings- og netværksinstruktioner om integration af Studio med EMR-klynger.

Opret bootstrap-handling for klyngen

Du skal køre en bootstrap-handling på klyngen for at sikre Studio notebook's forbindelse med EMR gennem runtime roller. Udfør følgende trin:

  1. Download bootstrap-scriptet fra s3://emr-data-access-control-/customer-bootstrap-actions/gcsc/replace-rpms.sh, erstatter region med din region
  2. Download denne RPM-fil fra s3://emr-data-access-control-/customer-bootstrap-actions/gcsc/emr-secret-agent-1.18.0-SNAPSHOT20221121212949.noarch.rpm
  3. Upload begge filer til en S3-bøtte i din konto og område
  4. Når du opretter din EMR-klynge, skal du inkludere følgende bootstrap-handling:
    --bootstrap-actions "Path=,Args=[]"

Opdater Studio-udførelsesrollen

Din Studio-brugers udførelsesrolle skal opdateres for at tillade GetClusterSessionCredentials API handling. Føj følgende politik til Studio-udførelsesrollen, og udskift ressourcen med de klynge-ARN'er, du ønsker at tillade dine brugere at oprette forbindelse til:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowEMRRuntimeRole",
            "Effect": "Allow", 
            "Action": "elasticmapreduce:GetClusterSessionCredentials",
            "Resource": [
"arn:aws:elasticmapreduce:::cluster/"
],
            "Condition": {
                "StringLike": {
                    "elasticmapreduce:ExecutionRoleArn": [
                        "arn:aws:iam:::role/"
                    ]
                }
            }
        }
    ]
}

Du kan også bruge betingelser at kontrollere, hvilke EMR-udførelsesroller, der kan bruges af Studio-udførelsesrollen.

Alternativt kan du vedhæfte en rolle som nedenfor, som begrænser adgangen til klynger baseret på ressource-tags. Dette giver mulighed for tag-baseret adgangskontrol, og du kan bruge de samme politikerklæringer på tværs af brugerroller i stedet for eksplicit at tilføje klynge-ARN'er.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowEMRRuntimeRole",
            "Effect": "Allow", 
            "Action": "elasticmapreduce:GetClusterSessionCredentials",
            "Resource": “*”,
            "Condition": {
                "StringEquals": {
                    "elasticmapreduce:ResourceTag/": ""
                }
            }
        }
    ]
}

Konfigurer rollekonfigurationer gennem Studio LCC

Som standard bruger Studio-brugergrænsefladen Studio-udførelsesrollen til at oprette forbindelse til EMR-klyngen. Hvis din bruger kan få adgang til flere roller, kan de opdatere EMR-klyngeforbindelseskommandoer med den rolle ARN, de ønsker at videregive som en runtime-rolle. For en bedre brugeroplevelse kan du konfigurere en konfigurationsfil på brugerens hjemmemappe på Amazon Elastic File System (Amazon EFS), som automatisk informerer Studio UI om de roller, der er tilgængelige for at forbinde for brugeren. Du kan også automatisere denne proces igennem Studio livscykluskonfigurationer. Vi leverer følgende eksempel på Lifecycle Configuration script til at konfigurere rollerne:

#!/bin/bash

set -eux

FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE"
FILE_NAME="emr-configurations-DO_NOT_DELETE.json"
FILE="$FILE_DIRECTORY/$FILE_NAME"

mkdir -p $FILE_DIRECTORY

cat < "$FILE"
{
    "emr-execution-role-arns":
    {
      "": [
          "arn:aws:iam:::role/",
          "arn:aws:iam:::role/"
      ]
    }
}
EOF

Opret forbindelse til klynger fra Studio UI

Efter rolle- og livscykluskonfigurationsscripts er konfigureret, kan du starte Studio UI og oprette forbindelse til klyngerne, når du opretter en ny notesbog ved hjælp af en af ​​følgende kerner:

  • DataScience – Python 3-kerne
  • DataScience 2.0 – Python 3-kerne
  • DataScience 3.0 – Python 3-kerne
  • SparkAnalytics 1.0 – SparkMagic og PySpark kerner
  • SparkAnalytics 2.0 – SparkMagic og PySpark kerner
  • SparkMagic – PySpark-kernen

Bemærk: Studio UI til at oprette forbindelse til EMR-klynger ved hjælp af runtime-roller fungerer kun på JupyterLab version 3. Se Jupyter versionering for detaljer om opgradering til JL3.

Implementer løsningen

For at teste løsningen fra ende til anden leverer vi en CloudFormation-skabelon, der opsætter de tjenester, der er inkluderet i arkitekturen, for at muliggøre gentagelige implementeringer. Denne skabelon opretter følgende ressourcer:

  • En S3-spand til datasøen.
  • En EMR-klynge med EMR-runtime-roller aktiveret.
  • IAM-roller til at få adgang til data i data lake, med finkornede tilladelser:
    • Marketing-data-access-role
    • Sales-data-access-role
    • Electronics-data-access-role
  • Et Studio-domæne og to brugerprofiler. Studio-udførelsesrollerne for brugerne giver brugerne mulighed for at påtage sig deres tilsvarende EMR-runtime-roller.
  • En livscykluskonfiguration for at muliggøre valg af den rolle, der skal bruges til EMR-forbindelsen.
  • En søformationsdatabase fyldt med TPC-data.
  • Netværksressourcer, der kræves til opsætningen, såsom VPC, undernet og sikkerhedsgrupper.

Udfør følgende trin for at implementere løsningen:

  1. Vælg Start Stack for at starte CloudFormation-stakken:
    Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  2. Indtast et staknavn, angiv følgende parametre –
    • En inaktiv timeout for EMR-klyngen (for at undgå at betale for klyngen, når den ikke bliver brugt).
    • En S3 URI med EMR-krypteringsnøglen. Du kan følge trinene i EMR-dokumentationen link. for at generere en nøgle- og zip-fil, der er specifik for din region. Hvis du implementerer i US East (N. Virginia), skal du huske at bruge CN=*.ec2.internal, som angivet i dokumentationen link.. Sørg for at uploade zip-filen på en S3-bøtte i samme område som din CloudFormation-stackimplementering.
  3. Type Jeg anerkender, at AWS CloudFormation kan skabe IAM-ressourcer med brugerdefinerede navne.
  4. Vælg Opret stak.

Når stakken er oprettet, skal du tillade Amazon EMR at forespørge Lake Formation ved at opdatere indstillingerne for ekstern datafiltrering på Lake Formation. Følg instruktionerne i Lake Formation guiden link., og vælg 'Amazon EMR' for Session tag værdier, og indtast dit AWS-konto-id under AWS-konto-id'er.

Test rollebaseret dataadgang

Med infrastrukturen på plads er du klar til at teste den finmaskede dataadgang for de to Studio-brugere. For at opsummere skal brugeren David kun have adgang til ikke-følsomme kundedata. Tina kan få adgang til data i to tabeller: salgs- og produktinformation. Lad os teste hver brugerprofil.

Davids brugerprofil

For at teste din dataadgang med Davids brugerprofil skal du udføre følgende trin:

  1. Log ind på AWS-konsollen.
  2. Fra det oprettede Studio-domæne skal du starte Studio fra brugerprofilen david-non-sensitive-customer.
  3. Start en notesbog med en af ​​de understøttede kerner i Studio UI, f.eks. SparkMagic-billede med PySpark-kernen.

Klyngen er på forhånd oprettet på kontoen.

  1. Opret forbindelse til klyngen ved at vælge Cluster i din notesbog og vælge klyngen -emr-cluster. I pop op-vinduet til rollevælger skal du vælge -marketing-data-access-role.
  2. Vælg Tilslut.
    Dette vil automatisk oprette en notesbogscelle med magiske kommandoer til at oprette forbindelse til klyngen. Vent på, at cellen udføres, og forbindelsen er etableret, før du fortsætter med de resterende trin.

Lad os nu forespørge marketingtabellen fra notesbogen.

  1. Indtast følgende forespørgsel i en ny celle og kør cellen:
    sqlContext.sql("show databases").show()
    # use the TPC dataset
    sqlContext.sql("use tpc")
    sqlContext.sql("select * from dl_tpc_customer limit 10").show()

Når cellen er kørt korrekt, kan du se de første 10 poster i tabellen. Bemærk, at du ikke kan se kundernes navn, da brugeren kun har tilladelse til at læse ikke-følsomme data, gennem filtrering på kolonneniveau.

Lad os teste for at sikre, at David ikke kan læse følsomme kundedata.

  1. Kør følgende forespørgsel i en ny celle:
    sqlContext.sql("select * from dl_tpc_customer_address limit 10").show()

Denne celle skulle give en Adgang nægtet fejl.

Tinas brugerprofil

Tinas Studio-udførelsesrolle giver hende adgang til Lake Formation-databasen ved hjælp af to EMR-udførelsesroller. Dette opnås ved at angive rollen ARN'er i en konfigurationsfil i Tinas filmappe. Disse roller kan indstilles vha Studio livscykluskonfigurationer for at bevare rollerne på tværs af app-genstarter. For at teste Tinas adgang skal du udføre følgende trin:

  1. Start Studio fra brugerprofilen tina-sales-electronics.

Det er en god praksis at lukke alle tidligere Studio-sessioner på din browser, når du skifter brugerprofil. Der kan kun være én aktiv Studio-brugersession ad gangen.

  1. Start en notesbog med en af ​​de understøttede kerner i Studio UI, f.eks. SparkMagic-billede med PySpark-kernen.
  2. Opret forbindelse til klyngen ved at vælge Cluster i din notesbog og vælge klyngen -emr-cluster.
  3. Vælg Tilslut.

Fordi Tinas profil er sat op med flere EMR-roller, bliver du bedt om en UI-rullemenu, der giver dig mulighed for at oprette forbindelse ved hjælp af flere roller.

  1. Vælg rollen -sales-data-access-role Og vælg Tilslut.
    Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Studio-udførelsesrollen er også tilgængelig i rullemenuen, da klyngerne forbinder ved at bruge brugerens udførelsesrolle som standard for at oprette forbindelse til klyngen.

Du kan også give Lake Formation direkte adgang til brugerens udførelsesrolle. Dette vil automatisk oprette en notesbogscelle med magiske kommandoer til at oprette forbindelse til klyngen ved hjælp af den valgte rolle. Lad os nu forespørge salgstabellen fra notesbogen.

  1. Indtast følgende forespørgsel i en ny celle og kør cellen:
    sqlContext.sql("show databases").show()
    # use the TPC dataset
    sqlContext.sql("use tpc")
    sqlContext.sql("select * from dl_tpc_web_sales limit 10").show()

Når cellen er kørt korrekt, kan du se de første 10 poster i tabellen.

Lad os nu prøve at få adgang til produkttabellen.

  1. Vælg Cluster igen, og vælg klyngen.
  2. Vælg rollen i pop op-vinduet med rolleprompt -electronics-data-access-role og opret forbindelse til klyngen.
  3. Når du har oprettet forbindelse til klyngen med elektronikdataadgangsrollen, skal du oprette en ny celle og køre følgende forespørgsel:
    sqlContext.sql("select * from dl_tpc_item limit 10").show()

Denne celle skulle fuldføres med succes, og du kan se de første 10 poster i produkttabellen.

Med en enkelt Studio-brugerprofil har du nu påtaget dig flere roller og forespurgt data i Lake Formation ved hjælp af flere roller uden behov for at genstarte notesbøgerne eller oprette yderligere klynger. Nu hvor du er i stand til at få adgang til dataene ved hjælp af passende roller, kan du interaktivt udforske dataene, visualisere dataene og forberede data til træning. Du brugte også forskellige brugerprofiler til at give dine brugere i forskellige teams adgang til en specifik tabel eller kolonner og rækker uden behov for yderligere klynger.

Ryd op

Når du er færdig med at eksperimentere med denne løsning, skal du rydde op i dine ressourcer:

  1. Luk Studio-apps for brugerprofilerne. Se Luk ned og opdater SageMaker Studio- og Studio-apps for instruktioner. Sørg for, at alle apps er slettet, før du sletter stakken.

EMR-klyngen slettes automatisk efter timeout-værdien for tomgang.

  1. Slet den EFS-volumen, der er oprettet for domænet. Du kan se den EFS-volumen, der er knyttet til domænet, ved at bruge en Beskriv domæne API-kald.
  2. Sørg for at tøm S3-spandene skabt af denne stak.
  3. Slet stakken fra AWS CloudFormation-konsollen.

Konklusion

Dette indlæg viste dig, hvordan du kan bruge runtime-roller til at forbinde Studio med Amazon EMR for at anvende finkornet dataadgangskontrol med Lake Formation. Vi demonstrerede også, hvordan flere Studio-brugere kan oprette forbindelse til den samme EMR-klynge, hver ved at bruge en runtime IAM-rolle med tilladelser, der matcher deres individuelle adgangsniveau til data. Vi detaljerede de nødvendige trin for manuelt at konfigurere integrationen og leverede en CloudFormation-skabelon til at opsætte infrastrukturen fra ende til anden. Denne funktion er tilgængelig i følgende AWS-regioner: Europa (Paris), US East (N. Virginia og Ohio) og US West (Oregon), og CloudFormation-skabelonen vil blive implementeret i US East (N. Virginia og Ohio) og US West (Oregon).

For at lære mere om brug af EMR med SageMaker Studio, besøg Forbered data ved hjælp af Amazon EMR. Vi opfordrer dig til at prøve denne nye funktionalitet og oprette forbindelse til Machine Learning & AI samfund hvis du har spørgsmål eller feedback!


Om forfatterne

Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Durga Sury er en ML Solutions Architect i Amazon SageMaker Service SA-teamet. Hun brænder for at gøre machine learning tilgængelig for alle. I sine 3 år hos AWS har hun været med til at opsætte AI/ML-platforme til virksomhedskunder. Når hun ikke arbejder, elsker hun motorcykelture, mysterieromaner og vandreture med sin fireårige husky.

Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sriharsh Adari er Senior Solutions Architect hos Amazon Web Services (AWS), hvor han hjælper kunder med at arbejde baglæns fra forretningsresultater for at udvikle innovative løsninger på AWS. I årenes løb har han hjulpet adskillige kunder med transformationer af dataplatforme på tværs af brancher. Hans kerneområde omfatter teknologistrategi, dataanalyse og datavidenskab. I sin fritid kan han lide at spille tennis, se tv-serier og spille Tabla.

Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Maira Ladeira Tanke er ML Specialist Solutions Architect hos AWS. Med en baggrund i data science har hun 9 års erfaring med at arkitekte og bygge ML-applikationer med kunder på tværs af brancher. Som teknisk leder hjælper hun kunder med at accelerere deres opnåelse af forretningsværdi gennem nye teknologier og innovative løsninger. I sin fritid nyder Maira at rejse og tilbringe tid med sin familie et varmt sted.

Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sumedha Swamy er hovedproduktchef hos Amazon Web Services. Han leder SageMaker Studio-teamet til at bygge det ind i den foretrukne IDE til interaktive datavidenskab og dataingeniørarbejdsgange. Han har brugt de sidste 15 år på at bygge kundebesatte forbruger- og virksomhedsprodukter ved hjælp af Machine Learning. I sin fritid kan han godt lide at fotografere den fantastiske geologi i det amerikanske sydvest.

Anvend finkornede dataadgangskontroller med AWS Lake Formation og Amazon EMR fra Amazon SageMaker Studio PlatoBlockchain Data Intelligence. Lodret søgning. Ai.juni Lyu er softwareingeniør på SageMaker Notebooks-teamet. Han har en kandidatgrad i ingeniør fra Duke University. Han har arbejdet for Amazon siden 2015 og har bidraget til AWS-tjenester som Amazon Machine Learning, Amazon SageMaker Notebooks og Amazon SageMaker Studio. I sin fritid nyder han at bruge tid med sin familie, læse, lave mad og spille videospil.

Tidsstempel:

Mere fra AWS maskinindlæring