Zephyrnet-logo

Vereenvoudig het toegangsbeheer met Amazon Redshift en AWS Lake Formation voor gebruikers in een externe identiteitsprovider | Amazon-webservices

Datum:

Veel organisaties gebruiken identiteitsproviders (IdP's) om gebruikers te authenticeren, hun kenmerken te beheren en groepslidmaatschappen te gebruiken voor veilig, efficiënt en gecentraliseerd identiteitsbeheer. Mogelijk moderniseert u uw data-architectuur met behulp van Amazon roodverschuiving om toegang tot uw datameer en gegevens in uw datawarehouse mogelijk te maken, en zijn op zoek naar een gecentraliseerde en schaalbare manier om de gegevenstoegang te definiëren en te beheren op basis van IdP-identiteiten. AWS Lake-formatie maakt het eenvoudig om gegevens centraal te beheren, beveiligen en wereldwijd te delen voor analyse en machine learning (ML). Momenteel moet u mogelijk gebruikersidentiteiten en -groepen toewijzen AWS Identiteits- en toegangsbeheer (IAM)-rollen en machtigingen voor gegevenstoegang worden gedefinieerd op het IAM-rolniveau binnen Lake Formation. Deze opzet is niet efficiënt omdat het opzetten en onderhouden van IdP-groepen met IAM-roltoewijzing wanneer er nieuwe groepen worden aangemaakt tijdrovend is en het moeilijk maakt om af te leiden welke gegevens op dat moment vanuit welke service werden benaderd.

Amazon Roodverschuiving, Amazon QuickSight, en Lake Formation zijn nu geïntegreerd met de nieuwe vertrouwde mogelijkheid voor identiteitspropagatie in AWS IAM Identiteitscentrum om gebruikers naadloos te authenticeren binnen verschillende services. In dit bericht bespreken we twee gebruiksscenario's om vertrouwde identiteitspropagatie te configureren met Amazon Redshift en Lake Formation.

Overzicht oplossingen

Vertrouwde identiteitsdoorgifte biedt een nieuwe authenticatieoptie voor organisaties die het beheer van gegevensrechten willen centraliseren en verzoeken willen autoriseren op basis van hun IdP-identiteit over de servicegrenzen heen. Met IAM Identity Center kunt u een bestaande IdP configureren om gebruikers en groepen te beheren en Lake Formation gebruiken om gedetailleerde toegangscontrolemachtigingen te definiëren voor catalogusbronnen voor deze IdP-identiteiten. Amazon Redshift ondersteunt identiteitspropagatie bij het opvragen van gegevens Amazon Roodverschuivingsspectrum en Amazon Redshift-gegevens delen, en u kunt gebruiken AWS CloudTrail om de gegevenstoegang via IdP-identiteiten te controleren om uw organisatie te helpen voldoen aan hun wettelijke en nalevingsvereisten.

Met deze nieuwe mogelijkheid kunnen gebruikers vanuit QuickSight verbinding maken met Amazon Redshift met een eenmalige aanmelding en directe query-datasets creëren. Dit wordt mogelijk gemaakt door IAM Identity Center te gebruiken als gedeelde identiteitsbron. Bij vertrouwde identiteitsdoorgifte worden, wanneer QuickSight-middelen zoals dashboards worden gedeeld met andere gebruikers, de databasemachtigingen van elke QuickSight-gebruiker toegepast door de identiteit van de eindgebruiker door te geven van QuickSight naar Amazon Redshift en hun individuele gegevensmachtigingen af ​​te dwingen. Afhankelijk van de gebruikssituatie kan de auteur extra beveiliging op rij- en kolomniveau toepassen in QuickSight.

Het volgende diagram illustreert een voorbeeld van de oplossingsarchitectuur.

In dit bericht laten we zien hoe u vertrouwde identiteitspropagatie kunt configureren met Amazon Redshift en Lake Formation. We behandelen de volgende gebruiksscenario's:

  • Roodverschuivingsspectrum met meervorming
  • Roodverschuivingsgegevens delen met Lake Formation

Voorwaarden

Bij deze walkthrough wordt ervan uitgegaan dat u een Lake Formation-beheerdersrol of een soortgelijke rol hebt ingesteld om de instructies in dit bericht te volgen. Zie voor meer informatie over het instellen van machtigingen voor een data lake-beheerder Maak een data lake-beheerder aan.

Bovendien moet u de volgende resources maken, zoals beschreven in Integreer Okta met Amazon Redshift Query Editor V2 met behulp van AWS IAM Identity Center voor naadloze Single Sign-On:

  • Een Okta-account geïntegreerd met IAM Identity Center om gebruikers en groepen te synchroniseren
  • Een door Redshift beheerde applicatie met IAM Identity Center
  • Een Redshift-broncluster waarvoor IAM Identity Center-integratie is ingeschakeld
  • Een Redshift-doelcluster met IAM Identity Center-integratie ingeschakeld (u kunt de sectie overslaan om op rollen gebaseerde toegang van Amazon Redshift in te stellen)
  • Gebruikers en groepen uit IAM Identity Center toegewezen aan de Redshift-applicatie
  • Een machtigingenset toegewezen aan AWS-accounts om toegang tot Redshift Query Editor v2 mogelijk te maken
  • Voeg de onderstaande machtiging toe aan de IAM-rol die wordt gebruikt in de door Redshift beheerde applicatie voor integratie met IAM Identity Center.
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "lakeformation:GetDataAccess",
                    "glue:GetTable",
                    "glue:GetTables",
                    "glue:SearchTables",
                    "glue:GetDatabase",
                    "glue:GetDatabases",
                    "glue:GetPartitions",
                    "lakeformation:GetResourceLFTags",
                    "lakeformation:ListLFTags",
                    "lakeformation:GetLFTag",
                    "lakeformation:SearchTablesByLFTags",
                    "lakeformation:SearchDatabasesByLFTags"
               ],
                "Resource": "*"
            }
        ]
    }

Gebruiksscenario 1: Roodverschuivingsspectrum met meervorming

In deze gebruikssituatie wordt ervan uitgegaan dat u aan de volgende vereisten voldoet:

  1. Meld u aan bij de AWS-beheerconsole als IAM-beheerder.
  2. Ga naar CloudShell of uw AWS CLI en voer de volgende AWS CLI-opdracht uit, waarbij u uw bucketnaam opgeeft om de gegevens te kopiëren:
aws s3 sync s3://redshift-demos/data/NY-Pub/ s3://<bucketname>/data/NY-Pub/

In dit bericht gebruiken we een AWS lijmcrawler om de externe tabel te maken ny_pub opgeslagen in Apache Parquet-indeling op de Amazon S3-locatie s3://<bucketname>/data/NY-Pub/. In de volgende stap maken we de oplossingsresources met behulp van AWS CloudFormatie om een ​​stapel met de naam te maken CrawlS3Source-NYTaxiData in us-east-1.

  1. Download de .yml-bestand or start de CloudFormation-stack.

De stapel creëert de volgende bronnen:

  • De rups NYTaxiCrawler samen met de nieuwe IAM-rol AWSGlueServiceRole-RedshiftAutoMount
  • De AWS Glue-database automountdb

Wanneer de stapel compleet is, gaat u verder met de volgende stappen om het instellen van uw bronnen te voltooien:

  1. Op de AWS Glue-console, onder Gegevenscatalogus in het navigatievenster, kies crawlers.
  2. Openen NYTaxiCrawler En kies Edit.
  1. Onder Kies gegevensbronnen en classificaties, kiezen Edit.
  1. Voor Databron, kiezen S3.
  2. Voor S3-pad, ga naar binnen s3://<bucketname>/data/NY-Pub/.
  3. Kies Update de S3-gegevensbron.
  1. Kies Volgende En kies bijwerken.
  2. Kies Voer de crawler uit.

Nadat de crawler is voltooid, ziet u een nieuwe tabel genaamd ny_pub in de Gegevenscatalogus onder de automountdb database.

Nadat u de bronnen hebt gemaakt, voltooit u de stappen in de volgende secties om Lake Formation-machtigingen in te stellen in de AWS Glue-tabel ny_pub voor de sales IdP-groep en krijg toegang tot deze via Redshift Spectrum.

Schakel de doorgifte van Lake Formation in voor de door Redshift beheerde toepassing

Voer de volgende stappen uit om de doorgifte van Lake Formation in te schakelen voor de door Redshift beheerde toepassing die is gemaakt in Integreer Okta met Amazon Redshift Query Editor V2 met behulp van AWS IAM Identity Center voor naadloze Single Sign-On:

  1. Meld u als beheerder aan bij de console.
  2. Kies op de Amazon Redshift-console IAM Identity Center-verbinding in het navigatievenster.
  3. Selecteer de beheerde applicatie die begint met redshift-iad En kies Edit.
  1. kies Schakel toegangsverleningen voor AWS Lake Formation in voor Vertrouwde identiteitspropagatie en sla uw wijzigingen op.

Stel Lake Formation in als een IAM Identity Center-toepassing

Voer de volgende stappen uit om Lake Formation in te stellen als een IAM Identity Center-applicatie:

  1. Op de Lake Formation-console, onder Administratie in het navigatievenster, kies IAM Identity Center-integratie.
  1. Bekijk de opties en maak een keuze Verzenden om Lake Formation-integratie mogelijk te maken.

De integratiestatus wordt bijgewerkt naar Succes.
Als alternatief kunt u de volgende opdracht uitvoeren:

aws lakeformation create-lake-formation-identity-center-configuration 
--cli-input-json '{"CatalogId": "<catalog_id>","InstanceArn": "<identitycenter_arn>"}'

Registreer de gegevens bij Lake Formation

In deze sectie registreren we de gegevens bij Lake Formation. Voer de volgende stappen uit:

  1. Op de Lake Formation-console, onder Administratie in het navigatievenster, kies Data Lake-locaties.
  2. Kies Registreer locatie.
  3. Voor Amazon S3-pad, voer de bucket in waarin de tabelgegevens zich bevinden (s3://<bucketname>/data/NY-Pub/).
  4. Voor IAM-rol, kiest u een door de gebruiker gedefinieerde rol van Lake Formation. Voor meer informatie, zie Vereisten voor rollen die worden gebruikt om locaties te registreren.
  5. Voor Toestemmingsmodusselecteer Vorming van het meer.
  6. Kies Registreer locatie.

Controleer vervolgens of de IAMAllowedPrincipal groep heeft geen toestemming voor de database.

  1. Op de Lake Formation-console, onder Data catalogus in het navigatievenster, kies databases.
  2. kies automountdb en in de Acties menu, kies Bekijk machtigingen.
  3. If IAMAllowedPrincipal wordt vermeld, selecteert u de opdrachtgever en kiest u Intrekken.
  4. Herhaal deze stappen om de machtigingen voor de tabel te verifiëren ny_pub.

Verleen de IAM Identity Center-groep machtigingen voor de AWS Glue-database en -tabel

Voer de volgende stappen uit om databasemachtigingen te verlenen aan de IAM Identity Center-groep:

  1. Op de Lake Formation-console, onder Data catalogus in het navigatievenster, kies databases.
  2. Selecteer de database automountdb en in de Acties menu, kies Grant.
  3. Kies Subsidiedatabase.
  4. Selecteer onder Principals IAM Identiteitscentrum En kies Toevoegen.
  5. Als dit de eerste keer is dat u gebruikers en groepen toewijst, kiest u in het pop-upvenster Start.
  6. Voer de IAM Identity Center-groep in de zoekbalk in en kies de groep.
  7. Kies Toewijzen.
  8. Onder LF-tags of catalogusbronnen, automountdb is al geselecteerd voor databases.
  9. kies Beschrijven For Databasemachtigingen.
  10. Kies Grant om de machtigingen toe te passen.

Als alternatief kunt u de volgende opdracht uitvoeren:

aws lakeformation grant-permissions --cli-input-json '
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:identitystore:::group/<identitycenter_group_name>"
    },
    "Resource": {
        "Database": {
            "Name": "automountdb"
        }
    },
    "Permissions": [
        "DESCRIBE"
    ]
}'

Vervolgens verleent u tabelmachtigingen aan de IAM Identity Center-groep.

  1. Onder Data catalogus in het navigatievenster, kies databases.
  2. Selecteer de database automountdb en in de Acties menu, kies Grant.
  3. Onder opdrachtgeversselecteer IAM Identiteitscentrum En kies Toevoegen.
  4. Voer de IAM Identity Center-groep in de zoekbalk in en kies de groep.
  5. Kies Toewijzen.
  6. Onder LF-tags of catalogusbronnen, automountdb is al geselecteerd voor databases.
  7. Voor Tafels, kiezen ny_pub.
  8. kies Beschrijven en kies For Tabelrechten.
  9. Kies Grant om de machtigingen toe te passen.

Als alternatief kunt u de volgende opdracht uitvoeren:

aws lakeformation grant-permissions --cli-input-json '
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:identitystore:::group/<identitycenter_group_name>"
    },
    "Resource": {
        "Table": {
            "DatabaseName": "automountdb",
            "Name": "ny_pub "
        }
    },
    "Permissions": [
        "SELECT",
        "DESCRIBE"

    ]
}'

Stel Redshift Spectrum-tabeltoegang in voor de IAM Identity Center-groep

Voer de volgende stappen uit om toegang tot de Redshift Spectrum-tabel in te stellen:

  1. Meld u aan bij de Amazon Redshift-console met de beheerdersrol.
  2. Navigeer naar Query-editor v2.
  3. Kies het optiemenu (drie stippen) naast het cluster en kies Verbinding maken.
  4. Maak verbinding als admin-gebruiker en voer de volgende opdrachten uit om de ny_pub gegevens in het S3-datameer beschikbaar voor de verkoopgroep:
    create external schema if not exists nyc_external_schema from DATA CATALOG database 'automountdb' catalog_id '<accountid>'; 
    grant usage on schema nyc_external_schema to role "awsidc:awssso-sales"; 
    grant select on all tables in schema nyc_external_schema to role "awsidc:awssso- sales";

Valideer Redshift Spectrum-toegang als IAM Identity Center-gebruiker

Voer de volgende stappen uit om de toegang te valideren:

  1. Navigeer op de Amazon Redshift-console naar Query Editor v2.
  2. Kies het optiemenu (drie stippen) naast het cluster en kies Verbinding maken
  3. Kies de optie IAM Identity Center voor de Connect-optie. Geef de Okta-gebruikersnaam en het wachtwoord op in de browserpop-up.
  4. Eenmaal verbonden als een federatieve gebruiker, voert u de volgende SQL-opdrachten uit om de ny_pub data lake-tabel op te vragen:
select * from nyc_external_schema.ny_pub;

Gebruiksscenario 2: Het delen van roodverschuivingsgegevens met Lake Formation

In dit gebruiksscenario wordt ervan uitgegaan dat je IAM Identity Center-integratie met Amazon Redshift hebt ingesteld, waarbij Lake Formation-propagatie is ingeschakeld volgens de instructies in de vorige sectie.

Maak een gegevensshare met objecten en deel deze met de gegevenscatalogus

Voer de volgende stappen uit om een ​​gegevensshare te maken:

  1. Meld u aan bij de Amazon Redshift-console met de beheerdersrol.
  2. Navigeer naar Query-editor v2.
  3. Kies het optiemenu (drie stippen) naast het roodverschuivingsbroncluster en kies Verbinding maken.
  4. Maak verbinding als admin-gebruiker met tijdelijke referenties met behulp van een database-gebruikersnaamoptie en voer de volgende SQL-opdrachten uit om een ​​gegevensshare te maken:
    CREATE DATASHARE salesds; 
    ALTER DATASHARE salesds ADD SCHEMA sales_schema; 
    ALTER DATASHARE salesds ADD TABLE store_sales; 
    GRANT USAGE ON DATASHARE salesds TO ACCOUNT ‘<accountid>’ via DATA CATALOG;

  5. Autoriseer het delen van gegevens door te kiezen Gegevensaandelen op de navigatiepagina en selecteer de gegevensshare salesdb.
  6. Selecteer de gegevensshare en kies machtigen.

Nu kunt u de gegevensshare in Lake Formation registreren als een AWS Glue-database.

  1. Meld u aan bij de Lake Formation-console als de IAM-gebruiker of -rol van de data lake-beheerder.
  2. Onder Data catalogus in het navigatievenster, kies Het delen van gegevens en bekijk de uitnodigingen voor het delen van Redshift-gegevens op de Configuratie Tab.
  3. Selecteer de datashare-verkopen en kies Uitnodiging bekijken.
  4. Nadat u de details heeft bekeken, kiest u ACCEPTEREN.
  5. Geef een naam op voor de AWS Glue-database (bijvoorbeeld salesds) en kies Ga naar Bekijken en maken.

Nadat de AWS Glue-database is aangemaakt op de Redshift-gegevensshare, kunt u deze bekijken onder Gedeelde databases.

Verleen de IAM Identity Center-gebruikersgroep toestemming voor de AWS Glue-database en -tabel

Voer de volgende stappen uit om databasemachtigingen te verlenen aan de IAM Identity Center-groep:

  1. Op de Lake Formation-console, onder Data catalogus in het navigatievenster, kies databases.
  2. Selecteer de database salesds en op de Acties menu, kies Grant.
  3. Kies Subsidiedatabase.
  4. Selecteer onder Principals IAM Identiteitscentrum En kies Toevoegen.
  5. Voer in het pop-upvenster de IAM Identity Center-groep awssso in de zoekbalk in en kies de awssso-sales-groep.
  6. Kies Toewijzen.
  7. Onder LF-tags of catalogusbronnen, waarvoor salesds al is geselecteerd databases.
  8. kies Beschrijven For Databasemachtigingen.
  9. Kies Grant om de machtigingen toe te passen.

Verleen vervolgens tabelmachtigingen aan de IAM Identity Center-groep.

  1. Onder Data catalogus in het navigatievenster, kies databases.
  2. Selecteer de database salesds en op de Acties menu, kies Grant.
  3. Onder opdrachtgeversselecteer IAM Identiteitscentrum En kies Toevoegen.
  4. Voer in het pop-upvenster de IAM Identity Center-groep awssso in de zoekbalk in en kies de awssso-sales-groep.
  5. Kies Toewijzen.
  6. Onder LF-tags of catalogusbronnen, waarvoor salesds al is geselecteerd databases.
  7. Voor Tafels, kies sales_schema.store_sales.
  8. kies Beschrijven en kies For Tabelrechten.
  9. Kies Grant om de machtigingen toe te passen.

Koppel het externe schema in het doel-Redshift-cluster en schakel toegang in voor de IAM Identity Center-gebruiker

Voer de volgende stappen uit:

  1. Meld u aan bij de Amazon Redshift-console met de beheerdersrol.
  2. Navigeer naar Query-editor v2.
  3. Maak verbinding als admin-gebruiker en voer de volgende SQL-opdrachten uit om de AWS Glue-databaseklanten als een extern schema te koppelen en toegang tot de verkoopgroep mogelijk te maken:
create external schema if not exists sales_datashare_schema from DATA CATALOG database salesds catalog_id '<accountid>';
create role "awsidc:awssso-sales"; # If the role was not already created 
grant usage on schema sales_datashare_schema to role "awsidc:awssso-sales";
grant select on all tables in schema sales_datashare_schema to role "awsidc:awssso- sales";

Krijg toegang tot Redshift-gegevensshares als IAM Identity Center-gebruiker

Voer de volgende stappen uit om toegang te krijgen tot de gegevensshares:

  1. Navigeer op de Amazon Redshift-console naar Query Editor v2.
  2. Kies het optiemenu (drie stippen) naast het cluster en kies Verbinding maken.
  3. Maak verbinding met IAM Identity Center en geef de IAM Identity Center-gebruiker en het wachtwoord op in de browseraanmelding.
  4. Voer de volgende SQL-opdrachten uit om de data lake-tabel te doorzoeken:
SELECT * FROM "dev"."sales_datashare_schema"."sales_schema.store_sales";

Met Transitive Identity Propagation kunnen we nu de gebruikerstoegang tot de dataset controleren vanaf het Lake Formation-dashboard en de service die wordt gebruikt voor toegang tot de dataset, waardoor volledige traceerbaarheid wordt geboden. Voor federatieve gebruiker Ethan wiens Identity Center-gebruikers-ID '459e10f6-a3d0-47ae-bc8d-a66f8b054014' is, kunt u het onderstaande gebeurtenislogboek bekijken.

"eventSource": "lakeformation.amazonaws.com",
    "eventName": "GetDataAccess",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "redshift.amazonaws.com",
    "userAgent": "redshift.amazonaws.com",
    "requestParameters": {
        "tableArn": "arn:aws:glue:us-east-1:xxxx:table/automountdb/ny_pub",
        "durationSeconds": 3600,
        "auditContext": {
            "additionalAuditContext": "{"invokedBy":"arn:aws:redshift:us-east-1:xxxx:dbuser:redshift-consumer/awsidc:ethan.doe@gmail.com", "transactionId":"961953", "queryId":"613842", "isConcurrencyScalingQuery":"false"}"
        },
        "cellLevelSecurityEnforced": true
    },
    "responseElements": null,
    "additionalEventData": {
        "requesterService": "REDSHIFT",
        "LakeFormationTrustedCallerInvocation": "true",
        "lakeFormationPrincipal": "arn:aws:identitystore:::user/459e10f6-a3d0-47ae-bc8d-a66f8b054014",
        "lakeFormationRoleSessionName": "AWSLF-00-RE-726034267621-K7FUMxovuq"
    }

Opruimen

Voer de volgende stappen uit om uw bronnen op te schonen:

  1. Verwijder de gegevens uit de S3-bucket.
  2. Verwijder de Lake Formation-toepassing en het door Redshift ingerichte cluster die u hebt gemaakt om te testen.
  3. Meld u aan bij de CloudFormation-console als de IAM-beheerder die heeft gebruikt voor het maken van de CloudFormation-stack en verwijder de door u gemaakte stack.

Conclusie

In dit bericht hebben we besproken hoe we het toegangsbeheer voor analyses kunnen vereenvoudigen door de gebruikersidentiteit over Amazon Redshift en Lake Formation te verspreiden met behulp van IAM Identity Center. We hebben geleerd hoe we aan de slag kunnen gaan met vertrouwde identiteitspropagatie door verbinding te maken met Amazon Redshift en Lake Formation. We hebben ook geleerd hoe we Redshift Spectrum en het delen van gegevens kunnen configureren om de verspreiding van vertrouwde identiteiten te ondersteunen.

Lees meer over IAM Identity Center met Amazon roodverschuiving en AWS Lake-formatie. Laat uw vragen en feedback achter in het opmerkingengedeelte.


Over de auteurs

Harshida Patel is een Analytics Specialist Principal Solutions Architect, bij AWS.

Srividya Parthasarathy is een Senior Big Data Architect in het AWS Lake Formation-team. Ze vindt het leuk om data mesh-oplossingen te bouwen en deze te delen met de community.

Maneesh Sharma is een Senior Database Engineer bij AWS met meer dan tien jaar ervaring in het ontwerpen en implementeren van grootschalige datawarehouse- en analyseoplossingen. Hij werkt samen met verschillende Amazon Redshift Partners en klanten om een ​​betere integratie te bewerkstelligen.

Poulomi Dasgupta is Senior Analytics Solutions Architect bij AWS. Ze heeft een passie voor het helpen van klanten bij het bouwen van cloudgebaseerde analyseoplossingen om hun zakelijke problemen op te lossen. Naast haar werk houdt ze van reizen en tijd doorbrengen met haar gezin.

spot_img

Laatste intelligentie

spot_img