Zephyrnet-logotyp

Hur BMO förbättrade datasäkerheten med Amazon Redshift och AWS Lake Formation | Amazon webbtjänster

Datum:

Det här inlägget är skrivet med Amy Tseng, Jack Lin och Regis Chow från BMO.

BMO är den 8:e största banken i Nordamerika efter tillgångar. Det tillhandahåller personliga och kommersiella banktjänster, globala marknader och investeringsbanktjänster till 13 miljoner kunder. När de fortsätter att implementera sin Digital First-strategi för hastighet, skalning och eliminering av komplexitet, letar de alltid efter sätt att förnya, modernisera och även effektivisera dataåtkomstkontrollen i molnet. BMO har samlat på sig känslig finansiell data och behövt bygga en analytisk miljö som var säker och presterande. En av bankens viktigaste utmaningar relaterade till strikta krav på cybersäkerhet är att implementera kryptering på fältnivå för personligt identifierbar information (PII), Payment Card Industry (PCI) och data som klassificeras som hög integritetsrisk (HPR). Data med denna säkrade dataklassificering lagras i krypterad form både i datalagret och i deras datasjö. Endast användare med nödvändiga behörigheter får komma åt data i klartext.

Amazon RedShift är en helt hanterad datalagertjänst som tiotusentals kunder använder för att hantera analyser i stor skala. Amazon Redshift stöder branschledande säkerhet med inbyggd identitetshantering och federation för enkel inloggning (SSO) tillsammans med multifaktorautentisering. De Amazon Redshift Spectrum funktionen möjliggör direkt fråga om din Amazon Simple Storage Service (Amazon S3) data lake, och många kunder använder detta för att modernisera sin dataplattform.

AWS Lake Formation är en helt hanterad tjänst som förenklar att bygga, säkra och hantera datasjöar. Det ger finkornig åtkomstkontroll, taggning (taggbaserad åtkomstkontroll (TBAC)), och integration mellan analytiska tjänster. Det möjliggör förenkling av styrningen av datakatalogobjekt och åtkomst till säkrad data från tjänster som Amazon Redshift Spectrum.

I det här inlägget delar vi lösningen med hjälp av Amazon Redshift rollbaserad åtkomstkontroll (RBAC) och AWS Lake Formation-taggbaserad åtkomstkontroll för federerade användare att fråga din datasjö med Amazon Redshift Spectrum.

Användningsfall

BMO hade mer än Petabyte(PB) finansiell känslig data klassificerad enligt följande:

  1. Personligt identifierbar information (PII)
  2. Payment Card Industry (PCI)
  3. Hög integritetsrisk (HPR)

Banken siktar på att lagra data i deras Amazon Redshift data warehouse och Amazon S3 data lake. De har en stor, varierad slutanvändarbas inom försäljning, marknadsföring, kreditrisker och andra affärsområden och personas:

  1. Affärsanalytiker
  2. Dataingenjörer
  3. Datavetare

Finkornig åtkomstkontroll måste tillämpas på data på både Amazon Redshift- och datasjödata som nås med Amazon Redshift Spectrum. Banken utnyttjar AWS-tjänster som AWS-lim och Amazon SageMaker på denna analysplattform. De använder också en extern identitetsleverantör (IdP) för att hantera sin föredragna användarbas och integrera den med dessa analysverktyg. Slutanvändare får åtkomst till denna data med hjälp av tredjeparts SQL-klienter och affärsinformationsverktyg.

Lösningsöversikt

I det här inlägget kommer vi att använda syntetiska data som mycket liknar BMO-data med data klassificerade som PII, PCI eller HPR. Användare och grupper finns i Externt IdP. Dessa användare federerar för enkel inloggning till Amazon Redshift med hjälp av infödd IdP-federation. Vi kommer att definiera behörigheterna med hjälp av Redshift-rollbaserad åtkomstkontroll (RBAC) för användarrollerna. För användare som kommer åt data i datasjö med Amazon Redshift Spectrum kommer vi att använda Lake Formation-policyer för åtkomstkontroll.

Teknisk lösning

För att implementera kundbehov för att säkra olika kategorier av data, kräver det definitionen av flera AWS IAM-roller, vilket kräver kunskap om IAM-policyer och underhåll av dem när behörighetsgränsen ändras.

I det här inlägget visar vi hur vi förenklade hanteringen av dataklassificeringspolicyerna med minsta antal Amazon Redshift AWS IAM-roller anpassade efter dataklassificering, istället för permutationer och kombinationer av roller efter branscher och dataklassificeringar. Andra organisationer (t.ex. Financial Service Institute [FSI]) kan dra nytta av BMO:s implementering av datasäkerhet och efterlevnad.

Som en del av den här bloggen kommer data att laddas upp till Amazon S3. Åtkomst till data styrs med hjälp av policyer som definieras med Redshift RBAC för motsvarande användargrupper för identitetsleverantörer och TAG-baserad åtkomstkontroll kommer att implementeras med AWS Lake Formation för data på S3.

Lösningsarkitektur

Följande diagram illustrerar lösningsarkitekturen tillsammans med de detaljerade stegen.

  1. IdP-användare med grupper som lob_risk_public, Lob_risk_pci, hr_publicoch hr_hpr tilldelas i Extern IdP (Identity Provider).
  2. Varje användare mappas till Amazon Redshift lokala roller som skickas från IdP, och inklusive aad:lob_risk_pci, aad:lob_risk_public, aad:hr_publicoch aad:hr_hpr i Amazon Redshift. Till exempel Användare1 som ingår i Lob_risk_public och hr_hpr kommer att bevilja rollanvändning i enlighet med detta.
  3. Bifoga iam_redshift_hpr, iam_redshift_pcipiioch iam_redshift_public AWS IAM-roller till Amazon Redshift-kluster.
  4. AWS Glue-databaser som är säkerhetskopierade på s3 (t.ex. lobrisk,lobmarket,hr och deras respektive tabeller) refereras till i Amazon Redshift. Med Amazon Redshift Spectrum kan du fråga dessa externa tabeller och databaser (t.ex. external_lobrisk_pci, external_lobrisk_public, external_hr_publicoch external_hr_hpr), som skapas med AWS IAM-roller iam_redshift_pcipii, iam_redshift_hpr, iam_redshift_public som visas i lösningsstegen.
  5. AWS Lake Formation används för att kontrollera åtkomsten till de externa schemana och tabellerna.
  6. Med AWS Lake Formation-taggar tillämpar vi den finkorniga åtkomstkontrollen på dessa externa tabeller för AWS IAM-roller (t.ex. iam_redshift_hpr, iam_redshift_pcipiioch iam_redshift_public).
  7. Slutligen, bevilja användning för dessa externa scheman till deras Amazon Redshift-roller.

genomgång

Följande avsnitt leder dig genom att implementera lösningen med hjälp av syntetiska data.

Ladda ner datafilerna och placera dina filer i hinkar

Amazon S3 fungerar som en skalbar och hållbar datasjö på AWS. Genom att använda Data Lake kan du överföra alla öppna formatdata som CSV, JSON, PARQUET eller ORC till Amazon S3 och utföra analyser på dina data.

Lösningarna använder CSV-datafiler som innehåller information klassificerad som PCI, PII, HPR eller Public. Du kan ladda ner indatafiler med hjälp av länkarna nedan. Använd de nedladdade filerna ladda upp till Amazon S3 genom att skapa mapp och filer som visas i skärmdumpen nedan genom att följa instruktionerna här.. Detaljerna för varje fil finns i följande lista:

Registrera filerna i AWS Glue Data Catalog med hjälp av sökrobotar

Följande instruktioner visar hur man registrerar filer som laddats ner till AWS Glue Data Catalog med hjälp av sökrobotar. Vi organiserar filer i databaser och tabeller med hjälp av AWS Glue Data Catalog, enligt följande steg. Det rekommenderas att du granskar dokumentationen för att lära dig hur du ställer in en AWS Glue Database. Sökrobotar kan automatisera processen att registrera våra nedladdade filer i katalogen istället för att göra det manuellt. Du skapar följande databaser i AWS Glue Data Catalog:

  • lobrisk
  • lobmarket
  • hr

Exempel på steg för att skapa en AWS Glue-databas för lobrisk data är följande:

  • Gå till AWS limkonsol.
  • Välj sedan Databaser under Datakatalog.
  • Välja Lägg till databas och ange namnet på databaserna som lobrisk.
  • Välja Skapa databas, som visas i följande skärmdump.

Upprepa stegen för att skapa en annan databas som lobmarket och hr.

En AWS Glue Crawler skannar filerna ovan och katalogiserar metadata om dem i AWS Glue Data Catalog. Glue Data Catalog organiserar denna Amazon S3-data i tabeller och databaser, tilldelar kolumner och datatyper så att data kan frågas med hjälp av SQL som Amazon Redshift Spectrum kan förstå. Vänligen granska AWS Glue dokumentation om att skapa Glue Crawler. När AWS Glue-crawler har körts färdigt ser du följande respektive databas och tabeller:

  • lobrisk
    • lob_risk_high_confidential_public
    • lob_risk_high_confidential
  • lobmarket
    • credit_card_transaction_pci
    • credit_card_transaction_pci_public
  • hr
    • customers_pii_hpr_public
    • customers_pii_hpr

Exempel på steg för att skapa en AWS Glue Crawler för lobrisk data är följande:

  • Välja crawlers under Datakatalog i AWS Glue Console.
  • Välj sedan Skapa sökrobot. Ange sökrobotens namn som lobrisk_crawler Och välj Nästa.

Se till att välja datakällan som Amazon S3 och bläddra på Amazon S3-vägen till lob_risk_high_confidential_public mapp och välj en Amazon S3-datakälla.

  • Sökrobotar kan genomsöka flera mappar i Amazon S3. Välja Lägg till en datakälla och inkludera sökväg S3://<<Your Bucket >>/ lob_risk_high_confidential.

  • När du har lagt till en annan Amazon S3-mapp, välj sedan Nästa.

  • Skapa sedan en ny IAM-roll i Konfigurationssäkerhet inställningar.
  • Välja Nästa.

  • Välj måldatabasen som lobrisk. Välj Nästa.

  • Nästa, under översynväljer Skapa sökrobot.
  • Välja Kör sökrobot. Detta skapar två tabeller: lob_risk_high_confidential_public och lob_risk_high_confidential under databas lobrisk.

Skapa på samma sätt en AWS Glue-crawler för lobmarket och hr data med hjälp av stegen ovan.

Skapa AWS IAM-roller

Använd AWS IAM och skapa följande IAM-roller med behörigheter Amazon Redshift, Amazon S3, AWS Glue och AWS Lake Formation.

Du kan skapa AWS IAM-roller i den här tjänsten med den här länken. Senare kan du bifoga en hanterad policy till dessa IAM-roller:

  • iam_redshift_pcipii (AWS IAM-roll kopplad till Amazon Redshift-kluster)
    • AmazonRedshiftFullAccess
    • AmazonS3FullAccess
    • Lägg till inline-policy (Lakeformation-inline) för Lake Formation-tillstånd enligt följande:
      {
         "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "RedshiftPolicyForLF",
                  "Effect": "Allow",
                  "Action": [
                      "lakeformation:GetDataAccess"
                  ],
                  "Resource": "*"
              }
          ]

    • iam_redshift_hpr (AWS IAM-roll kopplad till Amazon Redshift-kluster): Lägg till följande hanterade:
      • AmazonRedshiftFullAccess
      • AmazonS3FullAccess
      • Lägg till inline policy (Lakeformation-inline), som skapades tidigare.
    • iam_redshift_public (AWS IAM-roll kopplad till Amazon Redshift-kluster): Lägg till följande hanterade policy:
      • AmazonRedshiftFullAccess
      • AmazonS3FullAccess
      • Lägg till inline policy (Lakeformation-inline), som skapades tidigare.
    • LF_admin (Lake Formation Administrator): Lägg till följande hanterade policy:
      • AWSLakeFormationDataAdmin
      • AWSLakeFormationCrossAccountManager
      • AWSGlueConsoleFullAccess

Använd Lake Formation-taggbaserad åtkomstkontroll (LF-TBAC) för åtkomstkontroll av AWS Glue-datakatalogtabellerna.

LF-TBAC är en auktoriseringsstrategi som definierar behörigheter baserat på attribut. Använder sig av LF_admin Lake Formation administratör, du kan skapa LF-taggar, som nämns i följande detaljer:

Nyckel Värde
Klassificering: HPR Nej Ja
Klassificering: PCI Nej Ja
Klassificering: PII Nej Ja
klassificeringar icke-känslig, känslig

Följ instruktionerna nedan för att skapa Lake Formation-taggar:

  • Logga in på Lake Formation Console (https://console.aws.amazon.com/lakeformation/) med LF-Admin AWS IAM-rollen.
  • Gå till LF-taggar och behörigheter in Behörighetssektioner.
  • Välja Lägg till LF-Tag.

  • Skapa de återstående LF-taggarna enligt anvisningarna i tabellen tidigare. När du skapat hittar du LF-taggarna som visas nedan.

Tilldela LF-TAG till AWS Glue-katalogtabellerna

Att tilldela Lake Formation-taggar till tabeller innebär vanligtvis ett strukturerat tillvägagångssätt. Lake Formation Administrator kan tilldela taggar baserat på olika kriterier, såsom datakälla, datatyp, affärsdomän, dataägare eller datakvalitet. Du har möjlighet att allokera LF-taggar till datakatalogtillgångar, inklusive databaser, tabeller och kolumner, vilket gör att du kan hantera resursåtkomst effektivt. Tillgång till dessa resurser är begränsad till huvudmän som har fått motsvarande LF-taggar (eller de som har beviljats ​​åtkomst genom den namngivna resursmetoden).

Följ instruktionerna i länken ge för att tilldela LF-TAGS till lim Datakatalogtabeller:

Limkatalogtabeller Nyckel Värde
customers_pii_hpr_public Klassificering okänslig
customers_pii_hpr Klassificering: HPR ja
credit_card_transaction_pci Klassificering: PCI ja
credit_card_transaction_pci_public klassificeringar okänslig
lob_risk_high_confidential_public klassificeringar okänslig
lob_risk_high_confidential Klassificering: PII ja

Följ instruktionerna nedan för att tilldela en LF-tagg till limbord från AWS-konsolen enligt följande:

  • För att komma åt databaserna i Lake Formation Console, gå till Datakatalog avsnitt och välj Databaser.
  • Välj lobrisk databas och välj Visa tabeller.
  • Välja lob_risk_high_confidential tabell och redigera LF-taggar.
  • Tilldela Klassificering: HPR as Tilldelade nycklar och värden som Ja. Välj Save.

  • Tilldela på samma sätt klassificeringen Nyckel och Värde som okänslig för lob_risk_high_confidential_public tabell.

Följ instruktionerna ovan för att tilldela tabeller till återstående tabeller för lobmarket och hr databaser.

Bevilja behörigheter till resurser med hjälp av ett LF-Tag-uttryck bevilja Redshift IAM-roller

Grant välj, beskriva Lake Formation-behörighet till LF-taggar och Redshift IAM-roll med Lake Formation Administrator i Lake-formationskonsolen. För att bevilja, följ dokumentation.

Använd följande tabell för att ge motsvarande IAM-roll till LF-taggar:

IAM-roll LF-taggar nyckel LF-taggar värde tillstånd
iam_redshift_pcipii Klassificering: PII ja Beskriv, välj
. Klassificering: PCI ja .
iam_redshift_hpr Klassificering: HPR ja Beskriv, välj
iam_redshift_public klassificeringar okänslig Beskriv, välj

Följ instruktionerna nedan för att ge behörigheter till LF-taggar och IAM-roller:

  • Välja Data Lake-behörigheter in behörigheter avsnitt i AWS Lake Formation Console.
  • Välja Grants. Välj IAM-användare och roller i Main.
  • Välj i LF-taggar eller katalogresurser Nyckel as Classifications och värden as non-sensitive.

  • Välj sedan Tabellbehörigheter as Välj & Beskriv. Välj bidrag.

Följ instruktionerna ovan för återstående LF-taggar och deras IAM-roller, som visas i föregående tabell.

Mappa IdP-användargrupperna till Redshift-rollerna

I Redshift, använd Native IdP-federation för att mappa IdP-användargrupperna till Redshift-rollerna. Använda sig av Frågeredigerare V2.

create role aad:rs_lobrisk_pci_role;
create role aad:rs_lobrisk_public_role;
create role aad:rs_hr_hpr_role;
create role aad:rs_hr_public_role;
create role aad:rs_lobmarket_pci_role;
create role aad:rs_lobmarket_public_role;

Skapa externa scheman

I Redshift skapar du externa scheman med AWS IAM-roller och använder AWS Glue Catalog-databaser. Externa scheman skapas enligt dataklassificering med hjälp av iam_role.

create external schema external_lobrisk_pci
from data catalog
database 'lobrisk'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_pcipii';

create external schema external_hr_hpr
from data catalog
database 'hr'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_hpr';

create external schema external_lobmarket_pci
from data catalog
database 'lobmarket'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_pcipii';

create external schema external_lobrisk_public
from data catalog
database 'lobrisk'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

create external schema external_hr_public
from data catalog
database 'hr'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

create external schema external_lobmarket_public
from data catalog
database 'lobmarket'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

Verifiera listan med tabeller

Verifiera listan över tabeller i varje externt schema. Varje schema listar endast de tabeller som Lake Formation har beviljat IAM_ROLES används för att skapa externa scheman. Nedan är listan över tabeller i Redshift query edit v2 output längst upp till vänster.

Bevilja användning på externa scheman till olika Redshift lokala roller

I Redshift, bevilja användning på externa scheman till olika Redshift lokala roller enligt följande:

grant usage on schema external_lobrisk_pci to role aad:rs_lobrisk_pci_role;
grant usage on schema external_lobrisk_public to role aad:rs_lobrisk_public_role;

grant usage on schema external_lobmarket_pci to role aad:rs_lobmarket_pci_role;
grant usage on schema external_lobmarket_public to role aad:rs_lobmarket_public_role;

grant usage on schema external_hr_hpr_pci to role aad:rs_hr_hpr_role;
grant usage on schema external_hr_public to role aad:rs_hr_public_role;

Verifiera åtkomst till externt schema

Verifiera åtkomst till externt schema med användare från Lob Risk-teamet. Användare lobrisk_pci_user federerad till Amazon Redshift lokal roll rs_lobrisk_pci_role. Roll rs_lobrisk_pci_role har endast tillgång till externt schema external_lobrisk_pci.

set session_authorization to creditrisk_pci_user;
select * from external_lobrisk_pci.lob_risk_high_confidential limit 10;

På frågetabell från external_lobmarket_pci schema kommer du att se att din behörighet nekas.

set session_authorization to lobrisk_pci_user;
select * from external_lobmarket_hpr.lob_card_transaction_pci;

BMO:s automatiska åtkomstförsörjning

Tillsammans med banken utvecklade vi ett ramverk för åtkomstförsörjning som gör att banken kan skapa ett centralt arkiv med användare och vilken data de har tillgång till. Policyfilen lagras i Amazon S3. När filen är uppdaterad bearbetas den, meddelanden placeras i Amazon SQS. AWS Lambda använder Data API används för att tillämpa åtkomstkontroll på Amazon Redshift-roller. Samtidigt, AWS Lambda används för att automatisera taggbaserad åtkomstkontroll i AWS Lake Formation.

Fördelarna med att använda denna modell var:

  1. Skapat en skalbar automatiseringsprocess för att dynamiskt kunna tillämpa ändrade policyer.
  2. Effektiviserad användaråtkomst ombord på och bearbetning med befintlig företagsåtkomsthantering.
  3. Bemyndigat varje bransch att begränsa åtkomsten till känslig data de äger och skydda kundernas data och integritet på företagsnivå.
  4. Förenklade AWS IAM rollhantering och underhåll genom att kraftigt minska antalet roller som krävs.

Med den senaste utgåvan av Amazon Redshift-integrering med AWS kan Identity Center som tillåter identitetsspridning över AWS-tjänster utnyttjas för att förenkla och skala detta genomförande.

Slutsats

I det här inlägget visade vi dig hur du implementerar robusta åtkomstkontroller för känslig kunddata i Amazon Redshift, vilket var utmanande när du försökte definiera många distinkta AWS IAM-roller. Lösningen som presenteras i det här inlägget visar hur organisationer kan möta behov av datasäkerhet och efterlevnad med ett konsoliderat tillvägagångssätt – genom att använda en minimal uppsättning AWS IAM-roller organiserade efter dataklassificering snarare än affärslinjer.

Genom att använda Amazon Redshifts inbyggda integration med External IdP och definiera RBAC-policyer i både Redshift och AWS Lake Formation, kan granulära åtkomstkontroller tillämpas utan att skapa ett överdrivet antal distinkta roller. Detta möjliggör fördelarna med rollbaserad åtkomst samtidigt som den administrativa omkostnaden minimeras.

Andra finansiella tjänsteinstitutioner som vill säkra kunddata och uppfylla efterlevnadsbestämmelser kan följa en liknande konsoliderad RBAC-metod. Noggrann policydefinition, anpassad till datakänslighet snarare än affärsfunktioner, kan bidra till att minska spridningen av AWS IAM-roller. Denna modell balanserar säkerhet, efterlevnad och hanterbarhet för styrning av känslig data i Amazon Redshift och bredare molndataplattformar.

Kort sagt, en centraliserad RBAC-modell baserad på dataklassificering effektiviserar åtkomsthanteringen samtidigt som den ger robust datasäkerhet och efterlevnad. Detta tillvägagångssätt kan gynna alla organisationer som hanterar känslig kundinformation i molnet.


Om författarna

Amy Tseng är en Managing Director för Data and Analytics(DnA) Integration på BMO. Hon är en av AWS Data Hero. Hon har över 7 års erfarenhet av data- och analysmolnmigrering i AWS. Utanför jobbet älskar Amy att resa och vandra.

Jack Lin är en Director of Engineering på dataplattformen på BMO. Han har över 20 års erfarenhet av att arbeta inom plattformsteknik och mjukvaruteknik. Utanför jobbet älskar Jack att spela fotboll, titta på fotbollsmatcher och att resa.

Regis Chow är direktör för DNA-integration på BMO. Han har över 5 års erfarenhet av att arbeta i molnet och tycker om att lösa problem genom innovation i AWS. Utanför jobbet älskar Regis allt utomhus, han brinner särskilt för golf och gräsvård.

Nishchai JM är en Analytics Specialist Solutions Architect på Amazon Web Services. Han är specialiserad på att bygga Big-data-applikationer och hjälpa kunder att modernisera sina applikationer på molnet. Han tycker att Data är en ny olja och ägnar det mesta av sin tid åt att hämta insikter ur data.

Harshida Patel är en Principal Solutions Architect, Analytics med AWS.

Raghu Kuppala är en analytisk specialistlösningsarkitekt med erfarenhet av att arbeta inom databaser, datalagring och analysutrymme. Utanför jobbet tycker han om att prova olika maträtter och umgås med familj och vänner.

plats_img

Senaste intelligens

plats_img