Zephyrnet-logo

Centraliseer het beheer van uw datameer met AWS Lake Formation en maak tegelijkertijd een moderne data-architectuur mogelijk met Amazon Redshift Spectrum

Datum:

Veel klanten moderniseren hun data-architectuur met Amazon Redshift om toegang tot al hun data mogelijk te maken vanaf een centrale datalocatie. Ze zijn op zoek naar een eenvoudigere, schaalbare en gecentraliseerde manier om toegangsbeleid op hun datameren te definiëren en af ​​te dwingen Amazon eenvoudige opslagservice (Amazon S3). Ze willen toegangsbeleid zodat hun data lake-consumenten de analyseservice van hun keuze kunnen gebruiken, die het beste past bij de bewerkingen die ze op de gegevens willen uitvoeren. Hoewel de bestaande methode om het Amazon S3-bucketbeleid te gebruiken om toegangscontrole te beheren een optie is, kan het zijn dat wanneer het aantal combinaties van toegangsniveaus en gebruikers toeneemt, het beheer van het bucketniveaubeleid mogelijk niet wordt geschaald.

AWS Lake-formatie stelt u in staat het toegangsbeheer te vereenvoudigen en te centraliseren. Hiermee kunnen organisaties de toegangscontrole voor op Amazon S3 gebaseerde datameren beheren met behulp van bekende concepten van databases, tabellen en kolommen (met meer geavanceerde mogelijkheden zoals beveiliging op rij- en celniveau). Lake Formation gebruikt de AWS lijm Data Catalog om toegangscontrole te bieden voor Amazon S3-datameer met de meest gebruikte AWS-analyseservices, zoals: Amazon roodverschuiving (via Amazon Roodverschuivingsspectrum), Amazone Athene, AWS Lijm ETL, en Amazon EMR (voor op Spark gebaseerde notebooks). Deze services voldoen standaard aan het Lake Formation-machtigingsmodel, waardoor het voor klanten gemakkelijk wordt om het gegevensbeveiligingsbeheer voor datameren te vereenvoudigen, standaardiseren en schalen.

Met Amazon Redshift kun je een moderne data-architectuur bouwen om je datawarehouse naadloos uit te breiden naar je data lake en alle data te lezen – data in je datawarehouse en data in je data lake – zonder meerdere kopieën van data te maken. De Amazon Redshift Spectrum-functie maakt directe bevraging van uw S3-datameer mogelijk, en veel klanten maken hiervan gebruik om hun dataplatform te moderniseren. U kunt door Amazon Redshift beheerde opslag gebruiken voor veelgebruikte gegevens en minder vaak gebruikte gegevens verplaatsen naar Amazon S3-datameer en deze veilig openen met Redshift Spectrum.

In dit bericht bespreken we hoe u AWS Lake Formation kunt gebruiken om gegevensbeheer en gegevenstoegangsbeheer te centraliseren terwijl u Amazon Redshift Spectrum gebruikt om uw gegevensmeer te doorzoeken. Met Lake Formation kunt u machtigingen verlenen en intrekken voor databases, tabellen en kolomcatalogusobjecten die zijn gemaakt op Amazon S3-datameer. Dit is gemakkelijker voor klanten, omdat het vergelijkbaar is met het beheren van machtigingen voor relationele databases.

In het eerste bericht van deze tweedelige serie richten we ons op bronnen binnen hetzelfde AWS-account. In de tweede post breiden we de oplossing uit over AWS-accounts met behulp van de Lake Formation functie voor het delen van gegevens.

Overzicht oplossingen

Het volgende diagram illustreert onze oplossingsarchitectuur.

De workflow van de oplossing bestaat uit de volgende stappen:

  1. Gegevens die zijn opgeslagen in een Amazon S3-datameer worden gecrawld met behulp van een AWS Glue-crawler.
  2. De crawler leidt de metadata van gegevens op Amazon S3 af en slaat deze op in de vorm van een database en tabellen in de AWS Glue Data Catalog.
  3. U registreert de Amazon S3-bucket als de locatie van het datameer bij Lake Formation. Het is standaard geïntegreerd met de gegevenscatalogus.
  4. U gebruikt Lake Formation om machtigingen te verlenen op database-, tabel- en kolomniveau om te definiëren AWS Identiteits- en toegangsbeheer (IAM) rollen.
  5. Je maakt externe schema's binnen Amazon Redshift om de toegang voor marketing- en financiële teams te beheren.
  6. Je geeft toegang tot de marketing- en financiële groepen tot hun respectievelijke externe schema's en koppelt de juiste IAM-rollen die moeten worden aangenomen. De beheerdersrol en beheerdersgroep is beperkt voor administratief werk.
  7. Gebruikers van marketing en financiën kunnen nu hun respectievelijke IAM-rollen op zich nemen en gegevens doorzoeken met behulp van de SQL-query-editor naar hun externe schema's in Amazon Redshift.

Standaard beveiligingsinstellingen van Lake Formation

Om achterwaartse compatibiliteit met AWS Glue te behouden, heeft Lake Formation de volgende initiële beveiligingsinstellingen:

  • De supertoestemming wordt verleend aan de groep IAMAllowedPrincipals op alle bestaande Data Catalog-resources.
  • Instellingen om alleen IAM-toegangsbeheer te gebruiken, zijn ingeschakeld voor nieuwe Data Catalog-resources.

Om de beveiligingsinstellingen te wijzigen, zie De standaardbeveiligingsinstellingen voor uw Data Lake wijzigen.

Opmerking: laat de standaardinstellingen ongewijzigd totdat u klaar bent om volledig over te gaan naar het Lake Formation-machtigingsmodel. U kunt instellingen op databaseniveau bijwerken als u wilt dat machtigingen die door Lake Formation zijn ingesteld, van kracht worden. Voor meer details over upgrades, zie: AWS Glue-gegevensmachtigingen upgraden naar het AWS Lake Formation-model.

We raden af ​​om terug te gaan van het Lake Formation-machtigingsmodel naar een IAM-only-machtigingsmodel. Mogelijk wilt u de oplossing ook eerst in een nieuw testaccount implementeren.

Voorwaarden

Om deze oplossing in te stellen, moet u basiskennis hebben van de AWS-beheerconsoleeen AWS-accounten toegang tot de volgende AWS-services:

De data lake-beheerder maken

Data Lake-beheerders zijn in eerste instantie de enige IAM-gebruikers of -rollen die Lake Formation-machtigingen op datalocaties en Data Catalog-resources kunnen verlenen aan elke principal.

Als u een IAM-gebruiker wilt instellen als data lake-beheerder, voegt u het verstrekte inline-beleid toe aan de IAM-gebruiker of IAM-rol die u gebruikt om de bronnen voor deze blogoplossing in te richten. Voor meer details, zie: Een Data Lake-beheerder maken.

  1. Kies op de IAM-console Gebruikersen kies de IAM-gebruiker die u wilt aanwijzen als data lake-beheerder.
  2. Kies Een inline-beleid toevoegen op de machtigingen tabblad en voeg het volgende beleid toe:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "lakeformation:GetDataLakeSettings", "lakeformation:PutDataLakeSettings" ], "Resource": "*" } ]
    }

  3. Geef een beleidsnaam op.
  4. Controleer en sla uw instellingen op.

Opmerking: als u een bestaande beheerdersgebruiker/-rol gebruikt, heeft u deze mogelijk al ingericht.

  1. Meld u aan bij de AWS-beheerconsole als de aangewezen IAM-gebruiker of rol van de Data Lake-beheerder voor deze oplossing.

Opmerking: de CloudFormation-sjabloon werkt niet als u de onderstaande stap overslaat.

  1. Als dit de eerste keer is dat u op de Lake Formation-console bent, selecteert u mezelf toevoegen En kies Start.

U kunt uzelf ook toevoegen als data lake-beheerder door naar . te gaan Administratieve rollen en taken voor machtigingenselecteer Kies beheerders, en jezelf toe te voegen als beheerder als je dit hebt gemist in het eerste welkomstscherm.

Resources inrichten met CloudFormation

In deze stap maken we de oplossingsbronnen met behulp van a CloudFormation-sjabloon. De sjabloon voert de volgende acties uit:

  • Creëert een S3-bucket om voorbeeldgegevensbestanden en SQL-scripts te kopiëren
  • Registreert de locatie van het S3-datameer bij Lake Formation
  • Creëert IAM-rollen en -beleid indien nodig voor de omgeving
  • Wijs principals (IAM-rollen) toe om data lake-instellingen te verwerken
  • Maakt Lambda- en Step Functions-bronnen om de benodigde gegevens te laden
  • Voert AWS Glue-crawlertaken uit om Data Catalog-tabellen te maken
  • Configureert Lake Formation-machtigingen
  • Creëert een Amazon Redshift-cluster
  • Voert een SQL-script uit om de databasegroep, databasegebruiker en externe schema's te maken voor de beheerders-, marketing- en financiële groepen

Voer de volgende stappen uit om uw bronnen te maken:

  1. Start de meegeleverde sjabloon in AWS Region us-east-1.
  2. Kies Volgende.
  3. Voor Stack naam, kunt u de standaard stacknaam behouden of wijzigen.
  4. Voor DbWachtwoord, geef een veilig wachtwoord op in plaats van het standaard opgegeven wachtwoord te gebruiken.
  5. Voor Inkomend Verkeer, wijzigt u het IP-adresbereik in het IP-adres van uw lokale computer in CIDR-indeling in plaats van de standaard te gebruiken.
  6. Kies Volgende.
  7. Kies Volgende totdat u op de beoordelingspagina komt.
  8. kies Ik erken dat AWS CloudFormation IAM-bronnen met aangepaste namen kan maken.
  9. Kies Maak een stapel.

Het duurt ongeveer 10 minuten voordat de stack succesvol is geïmplementeerd. Wanneer het voltooid is, kunt u de uitvoer bekijken op de AWS CloudFormation-console.

Standaardinstellingen van Lake Formation bijwerken

U moet ook de standaardinstellingen bijwerken op het databaseniveau van Lake Formation. Dit zorgt ervoor dat de Lake Formation-machtigingen die de CloudFormation-sjabloon instelt tijdens het inrichten, van kracht kunnen worden over de standaardinstellingen.

  1. Op de Lake Formation-console, onder Data catalogus in het navigatievenster, kies databases.
  2. Kies de database die u hebt gemaakt met de CloudFormation-sjabloon.
  3. Kies Edit.
  4. deselecteren Gebruik alleen IAM-toegangscontrole voor nieuwe tabellen in de database.
  5. Kies Bespaar.

Deze actie is belangrijk omdat het het IAM-besturingsmodel uit deze database verwijdert en alleen Lake Formation toegang tot de database kan verlenen/intrekken. Deze stap zorgt ervoor dat andere stappen in deze oplossing succesvol zijn.

  1. Kies databases in het navigatievenster.
  2. Selecteer dezelfde database.
  3. Op de Acties menu, kies Bekijk machtigingen.

U kunt de machtigingen bekijken die voor deze database zijn ingeschakeld.

  1. Selecteer het IAMAllowedPrincipals groep en kies Intrekken om standaardmachtigingsinstellingen voor deze individuele database te verwijderen.

De IAMAllowedPrincipal rij verschijnt niet meer in de lijst op de machtigingen pagina.

Evenzo moeten we de verwijderen IAMAllowedPrincipal groep op tafelniveau. De CloudFormation-sjabloon heeft zes tabellen gemaakt voor deze database. Laten we eens kijken hoe u data lake-machtigingen kunt gebruiken om toegang op tabelniveau te verwijderen.

  1. Kies op de Lake Formation-console Data lake-machtigingen in het navigatievenster.
  2. Filteren op Principal:IAMAllowedPrincipals en Database:<<database name>>.

U kunt alle tabellen bekijken waarvoor we de machtigingen moeten bijwerken.

  1. Selecteer elke tafel één voor één en kies Intrekken.

Met deze stappen hebben we ervoor gezorgd dat de standaardinstellingen op het accountniveau van Lake Formation nog steeds aanwezig zijn en alleen handmatig zijn bijgewerkt voor de database en tabellen waarmee we in dit bericht gaan werken. Wanneer u klaar bent om volledig over te stappen op een Lake Formation-machtigingsmodel, kunt u de instellingen op accountniveau bijwerken in plaats van ze afzonderlijk bij te werken. Voor meer details, zie Het standaard machtigingsmodel wijzigen.

Valideer de ingerichte resources

De CloudFormation-sjabloon voorziet automatisch in veel resources om uw omgeving te creëren. In deze sectie bekijken we enkele van de belangrijkste bronnen om ze beter te begrijpen.

Middelen van Lake Formation

Controleer in de Lake Formation-console of er een nieuwe data lake-locatie is geregistreerd met een IAM-rol op de Data Lake-locaties pagina.

Dit is de IAM-rol die elke geïntegreerde service zoals Amazon Redshift op zich neemt om toegang te krijgen tot gegevens op de geregistreerde Amazon S3-locatie. Deze integratie gebeurt out-of-the-box wanneer de juiste rollen en beleid worden toegepast. Voor meer details, zie Vereisten voor rollen die worden gebruikt om locaties te registreren.

Controleer de Administratieve rollen en taken pagina bevestigen dat de ingelogde gebruiker is toegevoegd als de data lake-beheerder en IAMAllowedPrincipals wordt toegevoegd als database-maker.

Controleer vervolgens de tabellen die de AWS Glue-crawlers hebben gemaakt in de Data Catalog-database. Deze tabellen zijn logische entiteiten, omdat de gegevens zich op een Amazon S3-locatie bevinden. Nadat u deze objecten hebt gemaakt, kunt u ze via verschillende services benaderen.

Controleer ten slotte de machtigingen die zijn ingesteld door de sjabloon met behulp van het Lake Formation-machtigingsmodel op de tabellen die toegankelijk zijn voor financiële en marketinggebruikers van Amazon Redshift.

De volgende schermafbeelding laat zien dat de financiële rol toegang heeft tot alle kolommen voor de store en item tabellen, maar alleen de vermelde kolommen voor de store_sales tafel.

Op dezelfde manier kunt u de toegang voor de marketingrol bekijken, die toegang heeft tot alle kolommen in de customer_activity en store_sales tabellen.

Amazon S3-bronnen

De CloudFormation-sjabloon maakt twee S3-buckets:

  • datameer – Bevat de gegevens die voor dit bericht zijn gebruikt
  • script – Bevat de SQL die we gebruiken om Amazon Redshift-databaseobjecten te maken

Open de script bucket om de scripts te zien. U kunt ze downloaden en openen om de gebruikte SQL-code te bekijken.

De setup_lakeformation_demo.sql script geeft u de SQL-code om het externe databaseschema te maken en verschillende rollen toe te wijzen voor gegevensbeheerdoeleinden. Het externe schema is voor op AWS Glue Data Catalog gebaseerde objecten die verwijzen naar gegevens in het datameer. Vervolgens verlenen we toegang aan verschillende databasegroepen en gebruikers om de beveiliging voor financiële en marketinggebruikers te beheren.

De scripts worden in de volgende volgorde uitgevoerd:

  1. sp_create_db_group.sql
  2. sp_create_db_user.sql
  3. setup_lakeformation_demo.sql

Amazon Redshift-bronnen

Kies op de Amazon Redshift-console Clusters in het navigatiedeelvenster en kies het cluster dat u hebt gemaakt met de CloudFormation-sjabloon. Kies dan de Properties Tab.

De Clustermachtigingen sectie vermeldt drie bijgevoegde rollen. De sjabloon gebruikte de beheerdersrol om Amazon Redshift-objecten op databaseniveau in te richten. De financiële rol is gekoppeld aan het financiële schema in Amazon Redshift en de marketingrol is gekoppeld aan het marketingschema.

Elk van deze rollen krijgt zo'n machtiging dat ze de Amazon Redshift-query-editor kunnen gebruiken om Data Catalog-tabellen te doorzoeken met Redshift Spectrum. Voor meer details, zie Roodverschuivingsspectrum gebruiken met AWS Lake Formation en Vraag de gegevens in het datameer op met behulp van Amazon Redshift Spectrum.

De gegevens opvragen

Wij gebruiken Amazon Redshift-query-editor v2 om het externe schema en de Data Catalog-tabellen (externe tabellen) te doorzoeken. Het externe schema is al gemaakt als onderdeel van de CloudFormation-sjabloon. Wanneer het externe schema wordt gemaakt met behulp van de gegevenscatalogus, worden de tabellen in de database automatisch gemaakt en zijn ze beschikbaar via Amazon Redshift als externe tabellen.

  1. Kies op de Amazon Redshift-console Query-editor v2.
  2. Kies Account configureren.
  3. Kies het databasecluster.
  4. Voor Database, ga naar binnen dev.
  5. Voor gebruikersnaam, ga naar binnen awsuser.
  6. Voor authenticatieselecteer Tijdelijke inloggegevens.
  7. Kies Verbinding maken.

Wanneer u bent verbonden en bent aangemeld als beheerder, kunt u zowel lokale als externe schema's en tabellen zien, zoals weergegeven in de volgende schermafbeelding.

Valideer op rollen gebaseerde machtigingen voor meervorming in Amazon Redshift

Vervolgens valideren we hoe de beveiligingsinstellingen van Lake Formation werken voor de marketing- en financiële gebruikers.

  1. Kies in de query-editor (klik met de rechtermuisknop) de databaseverbinding.
  2. Kies Bewerk verbinding.
  3. Voor gebruikersnaam, ga naar binnen marketing_ro.
  4. Kies Bewerk verbinding.
  5. Na verbonden als maketing_ro, kies de dev-database onder het cluster en navigeer naar de customer_activity tafel.
  6. Kies het vernieuwingspictogram.
  7. Herhaal deze stappen om de verbinding te bewerken en de gebruiker bij te werken naar: finance_ro.
  8. Probeer opnieuw om de . te vernieuwen dev database.

Zoals verwacht heeft deze gebruiker alleen toegang tot het toegestane schema en de tabellen.

Met deze oplossing kun je verschillende gebruikers scheiden op schemaniveau en Lake Formation gebruiken om ervoor te zorgen dat ze alleen de tabellen en kolommen kunnen zien die hun rol toestaat.

Beveiliging op kolomniveau met machtigingen voor Lake Formation

Met Lake Formation kun je ook instellen welke kolommen een principal wel of niet kan zien in een tabel. Als u bijvoorbeeld . selecteert store_sales de marketing_ro gebruiker, je ziet veel kolommen, zoals customer_purchase_estimate. Echter, als de finance_ro gebruiker, u ziet deze kolommen niet.

Handmatige toegangscontrole via de Lake Formation-console

In dit bericht hebben we gewerkt met een CloudFormation-sjabloon
-gebaseerde omgeving, wat een geautomatiseerde manier is om omgevingssjablonen te maken en bewerkingen te vereenvoudigen.

In dit gedeelte laten we zien hoe u alle configuraties via de console kunt instellen, en we gebruiken een andere tabel als voorbeeld om u door de stappen te leiden.

Zoals in eerdere stappen is aangetoond, heeft de marketinggebruiker in deze omgeving alle kolomtoegang tot de tabellen customer_activity en store_sales in het externe schema retail_datalake_marketing. We veranderen een deel daarvan handmatig om te zien hoe het werkt met de console.

  1. Kies op de Lake Formation-console Data lake-machtigingen.
  2. Filteren op de opdrachtgever RedshiftMarketingRole.
  3. Selecteer de opdrachtgever voor de store_sales tafel en kies Intrekken.
  4. Bevestig door te kiezen Intrekken weer.

Er wordt een succesbericht weergegeven en de machtigingsrij wordt niet langer weergegeven.

  1. Kies Grant om een ​​nieuw machtigingsniveau voor de marketinggebruiker te configureren op de store_sales tabel op kolomniveau.
  2. kies IAM-gebruikers en -rollen en kies je rol.
  3. In het LF-tags of catalogusbronnen sectie, selecteer Benoemde gegevenscatalogusbronnen.
  4. Voor databases, kies uw database.
  5. Voor Tafels, kies de store_sales tafel.
  6. Voor Tabelrechtencontroleren kies.
  7. In het Gegevensmachtigingen sectie, selecteer Eenvoudige toegang op basis van kolommen.
  8. kies Kolommen uitsluiten.
  9. Kies de kolommen zoals weergegeven in de volgende schermafbeelding.
  10. Kies Grant.

We vragen nu opnieuw de tabel van Amazon Redshift om te bevestigen dat de effectieve wijzigingen overeenkomen met de controles die door Lake Formation zijn geplaatst. In de volgende query selecteren we een kolom die niet is geautoriseerd:

/* Selecting columns not authorized will result in error. */
select s_country, ss_net_profit from retail_datalake_marketing.store_sales;

Zoals verwacht krijgen we een foutmelding.

Opruimen

Ruim bronnen op die zijn gemaakt door de CloudFormation-sjabloon om onnodige kosten voor uw AWS-account te voorkomen. U kunt de CloudFormation-stack verwijderen door de stapel op de AWS CloudFormation-console te selecteren en te kiezen voor Verwijder. Met deze actie worden alle resources verwijderd die zijn ingericht. Als u handmatig een door een sjabloon ingerichte bron heeft bijgewerkt, ziet u mogelijk enkele problemen tijdens het opschonen en moet u deze handmatig opschonen.

Samengevat

In dit bericht hebben we laten zien hoe je Lake Formation kunt integreren met Amazon Redshift om de toegang tot Amazon S3-datameer naadloos te regelen. We hebben ook laten zien hoe u uw data lake kunt opvragen met behulp van Redshift Spectrum en externe tabellen. Dit is een krachtig mechanisme dat u helpt bij het bouwen van een moderne data-architectuur om eenvoudig gegevens op uw data lake en datawarehouses samen op te vragen. We hebben ook gezien hoe je CloudFormation-sjablonen kunt gebruiken om het maken van bronnen te automatiseren met infrastructuur als code. U kunt dit gebruiken om uw activiteiten te vereenvoudigen, vooral wanneer u de resource-setup van ontwikkeling naar productielandschap wilt repliceren tijdens uw projectcycli.

Ten slotte hebben we besproken hoe beheerders van data lakes handmatig het zoeken op datacatalogusobjecten kunnen beheren en toegang kunnen verlenen of intrekken op database-, tabel- en kolomniveau. We raden je aan om de stappen die we in dit bericht hebben beschreven uit te proberen en de CloudFormation-sjabloon te gebruiken om beveiliging in Lake Formation in te stellen om de toegang tot data lakes vanuit Redshift Spectrum te regelen.

In het tweede bericht van deze serie richten we ons op hoe u dit concept kunt gebruiken en toepassen op accounts met behulp van een Lake Formation-functie voor het delen van gegevens in een hub-and-spoke-topografie.


Over de auteurs

Vaibhav Agrawal is een Analytics Specialist Solutions Architect bij AWS. Gedurende zijn carrière heeft hij zich gericht op het helpen van klanten bij het ontwerpen en bouwen van goed ontworpen analyse- en beslissingsondersteunende platforms.

Jason Pedreza is een Analytics Specialist Solutions Architect bij AWS met meer dan 13 jaar datawarehousing-ervaring. Voordat hij bij AWS kwam, bouwde hij datawarehouse-oplossingen bij Amazon.com. Hij is gespecialiseerd in Amazon Redshift en helpt klanten schaalbare analytische oplossingen te bouwen.

Rajesh Franciscus is Senior Analytics Customer Experience Specialist bij AWS. Hij is gespecialiseerd in Amazon Redshift en richt zich op het helpen stimuleren van de AWS-markt en technische strategie voor datawarehousing- en analysediensten. Rajesh werkt nauw samen met grote strategische klanten om hen te helpen bij het adopteren van onze nieuwe diensten en functies, het ontwikkelen van langetermijnpartnerschappen en het terugkoppelen van klantvereisten naar onze productontwikkelingsteams om onze productroadmap te begeleiden.

Bron: https://aws.amazon.com/blogs/big-data/centralize-governance-for-your-data-lake-using-aws-lake-formation-while-enabling-a-modern-data-architecture- met-amazon-roodverschuiving-spectrum/

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?