Zephyrnet-logo

Federeer single sign-on toegang tot Amazon Redshift query-editor v2 met Okta

Datum:

Amazon Redshift-query-editor v2 is een webgebaseerde SQL-clienttoepassing die u kunt gebruiken om query's te schrijven en uit te voeren op uw Amazon roodverschuiving datawarehouse. U kunt queryresultaten visualiseren met grafieken en samenwerken door query's te delen met leden van uw team. U kunt query-editor v2 gebruiken om databases, schema's, tabellen te maken en gegevens te laden van Amazon eenvoudige opslagservice (Amazon S3) met behulp van de COPY-opdracht of met behulp van een wizard. U kunt door meerdere databases bladeren en query's uitvoeren op uw Amazon Redshift-datawarehouse of datameer, of federatieve query's uitvoeren naar operationele databases zoals Amazon Aurora. Omdat het een beheerde SQL-editor in uw browser is en is geïntegreerd met uw single sign-on (SSO)-provider, vermindert Amazon Redshift-query-editor v2 het aantal stappen naar de eerste query, zodat u sneller inzicht krijgt.

Amazon Redshift query-editor v2-integratie met uw identiteitsprovider (IdP) leidt de browser van de gebruiker automatisch om naar de query-editor v2-console in plaats van de Amazon Redshift-console. Hierdoor kunnen uw gebruikers eenvoudig toegang krijgen tot Amazon Redshift-clusters via query-editor v2 met behulp van federatieve inloggegevens zonder databasegebruikers en wachtwoorden te hoeven beheren.

In dit bericht richten we ons op Okta als de IdP en illustreren we hoe u uw Okta-toepassing instelt en AWS Identiteits- en toegangsbeheer (IAM)-machtigingen. We laten ook zien hoe u de toegang voor uw gebruikers kunt beperken om alleen query-editor v2 te gebruiken zonder hen toegang te geven om beheerdersfuncties uit te voeren op de AWS-beheerconsole.

Overzicht oplossingen

De stappen op hoog niveau in dit bericht zijn als volgt:

  1. Stel Okta in, waarin uw gebruikers zijn georganiseerd in logische groepen en de AWS-accountfederatietoepassing.
  2. Stel twee IAM-rollen in: een die een vertrouwensrelatie tot stand brengt tussen uw IdP en AWS, en een tweede rol die Okta gebruikt om toegang te krijgen tot Amazon Redshift.
  3. Voltooi de geavanceerde configuratie van Okta:
    1. Voltooi de Okta-configuratie door de rollen in te voeren die u zojuist hebt gemaakt.
    2. Definieer een standaard relay-status om gebruikers naar Amazon Redshift-query-editor v2 te leiden na succesvolle SAML-authenticatie.
    3. Configureer de SAML PrincipalTagAttribuut. Met dit element kunt u attributen doorgeven als sessietags in de SAML-bevestiging. Voor meer informatie over sessietags, zie Sessietags doorgeven in AWS STS.
  4. Stel Amazon Redshift-databasegroepen in:
    1. Creëer groepen binnen de Amazon Redshift-database die overeenkomen met de Okta-groepen.
    2. Autoriseer deze groepen om toegang te krijgen tot bepaalde schema's en tabellen.
    3. Open de Amazon Redshift-query-editor v2 met uw bedrijfsgegevens en doorzoek uw Amazon Redshift-database.
  5. Log in op uw Okta-account en open de applicatie die aan u is toegewezen. De applicatie leidt u naar Amazon Redshift-query-editor v2 met behulp van federatieve login.
  6. Open en bevraag uw Amazon Redshift-database.

Voorwaarden

In dit bericht wordt ervan uitgegaan dat je aan de volgende vereisten voldoet:

Okta . instellen

Eerst stellen we de Okta-applicatie in en maken we gebruikers en groepen aan. Voer de volgende stappen uit:

  1. Log in op uw Okta-beheerconsole met behulp van de URL https://<prefix>-admin.okta.com/admin/dashboard, Waar is specifiek voor uw account en is gemaakt bij het instellen van uw account.
  2. Kies in de beheerdersconsole beheerder.
  3. Onder Directory in het navigatievenster, kies Mensen.
  4. Om gebruikers toe te voegen, kies Persoon toevoegen.
    De volgende schermafbeelding toont de gebruikers die we hebben gemaakt.
  5. Om groepen toe te voegen aan Okta, kies Groepen in het navigatievenster en kies vervolgens Groep toevoegen.
    De volgende schermafbeelding toont twee groepen die we hebben gemaakt. We hebben toegevoegd Jane naar analyst_users en Mike naar bi_users.
  6. Onder Toepassingen in het navigatievenster, kies Toepassingen En kies Blader door de app-catalogus.
  7. Zoek naar AWS-accountfederatie En kies Toevoegen.
  8. Nadat u de toepassing heeft toegevoegd, kiest u AWS-accountfederatie.
  9. Laat de waarden in Algemene instellingen op hun standaard en kies Volgende.
  10. Onder Aanmeldingsoptiesselecteer SAML2.0.
  11. Kies de Metadata van identiteitsprovider link om het metadatabestand in .xml-formaat te downloaden.

IAM-rollen configureren

Vervolgens stelt u een IAM-rol in die een vertrouwensrelatie tot stand brengt tussen de IdP en AWS. U maakt ook een IAM-rol die Okta gebruikt om toegang te krijgen tot Amazon Redshift-queryeditor v2.

  1. Op de IAM-console onder Toegangsbeheer in het navigatievenster, kies Identiteitsproviders.
  2. Kies Aanbieder toevoegen.
  3. Voor Aanbiedertype:¸ selecteren SAML.
  4. Voor Provider naamvoer een naam in.
  5. Kies Kies bestand en upload het metadatabestand dat je hebt gedownload.
  6. Kies Aanbieder toevoegen.

    Nu maakt u de IAM SAML 2.0-federatierol.
  7. Kies op de IAM-console rollen in het navigatievenster.
  8. Kies Rol creëren.
  9. Voor Vertrouwd entiteitstypeselecteer SAML 2.0-federatie.
  10. Voor Op SAML 2.0 gebaseerde provider, kies de IdP die u in de vorige stap hebt gemaakt.
  11. kies Programmatische en AWS Management Console-toegang toestaan.
  12. Kies Volgende en kies dan Beleid maken.

Amazon Redshift-query-editor v2 biedt meerdere beheerde beleidsregels voor toegang tot de query-editor. Raadpleeg voor een lijst met beheerde beleidsregels: Uw AWS-account configureren. Met het beheerde beleid kunt u de toegang voor uw gebruikers beperken om alleen query-editor v2 te gebruiken zonder hen toegang te geven om beheerdersfuncties op de console uit te voeren. Voor dit bericht gebruiken we de AmazonRedshiftQueryEditorV2ReadSharing beheerd beleid en maak een aangepast beleid.

Geef in de volgende code uw regio-, account- en clusterparameters op om toegang te verlenen tot Amazon Redshift om clusterreferenties te verkrijgen, gebruikers aan te maken en gebruikers toe te staan ​​lid te worden van groepen:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RedshiftClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials",
                "redshift:CreateClusterUser",
                "redshift:JoinGroup"
            ],
            "Resource": [
                "arn:aws:redshift:<region>:<account>:cluster:<cluster>,
                "arn:aws:redshift:<region>:<account>:dbuser:<cluster>/${aws:PrincipalTag/RedshiftDbUser}",
                "arn:aws:redshift:<region>:<account>:dbgroup:<cluster>/analyst_users",
                "arn:aws:redshift:<region>:<account>:dbgroup:<cluster>/bi_users",
                "arn:aws:redshift:<region>:<account>:dbname:<cluster>/${redshift:DBName}"
            ]
        }
    ]
}

Het groepslidmaatschap duurt alleen voor de duur van de gebruikerssessie. Bovendien is er geen CreateGroup omdat groepen handmatig moeten worden gemaakt en DB-rechten moeten worden verleend.

  1. Voeg het beleid dat u hebt gemaakt toe aan de rol.
    De volgende schermafbeelding toont de overzichtspagina voor de rol.
  2. Wijzig de vertrouwensrelaties voor uw rol en voeg sts:TagSession toestemming.
    Bij het gebruik van sessietags moet het vertrouwensbeleid voor alle rollen die zijn gekoppeld aan de IdP-passingtags de sts:TagSessie toestemming. Voor rollen zonder deze toestemming in het vertrouwensbeleid, de AssumeRole operatie mislukt.
  3. Kies Beleid bijwerken.

Okta geavanceerde configuratie instellen

In deze sectie voltooit u de Okta-configuratie door de IAM-rollen toe te voegen die u zojuist hebt gemaakt. U stelt SAML in PrincipalTag attributen zoals RedshiftDbUser en RedshiftDbGroups, die worden doorgegeven in de SAML-bevestiging om de toegang tot Amazon Redshift-queryeditor v2. U definieert ook een standaardrelaystatus, de URL waarnaar gebruikers worden omgeleid na een succesvolle authenticatie via SAML.

  1. Open in uw Okta-account de AWS Account Federation-app.
  2. Op de Ondertekenen op tabblad, instellen Standaard relaisstatus naar de URL van de query-editor, met behulp van de indeling https://<region>.console.aws.amazon.com/sqlworkbench/home. Voor dit bericht gebruiken we https://eu-west-1.console.aws.amazon.com/sqlworkbench/home.
  3. Kies Attributen en stel de volgende attribuuttoewijzingen in:
    1. Stel de DB-gebruiker in met PrincipalTag:RedshiftDbUser. Deze gebruikt de gebruikersnaam in de directory. Dit is een vereiste tag en definieert de databasegebruiker die wordt gebruikt door query-editor v2.
    2. Stel de DB-groepen in met PrincipalTag:RedshiftDbGroups. Dit gebruikt de Okta-groepen om de hoofdtags te vullen. De waarde moet een door dubbele punten gescheiden lijst zijn.
    3. Stel de transitieve sleutels in met TransitiveTagKeys. Dit voorkomt dat gebruikers de sessietags wijzigen in het geval van role chaining.

Deze tags worden doorgestuurd naar de redshift:GetClusterCredentials API om referenties voor uw cluster op te halen. De volgende tabel geeft een overzicht van hun kenmerkconfiguratie.

  1. Onder Geavanceerde aanmeldingsinstellingen¸ selecteren Groepstoewijzing gebruiken.
  2. Voer de IdP- en IAM-rol ARN's in, die wereldwijd uniek zijn, en zorg ervoor dat Okta naar uw AWS-account wordt geleid.
  3. Autoriseer gebruikers om de AWS Account Federation-applicatie te gebruiken door hun respectievelijke groepen of individuele gebruikersaccounts te selecteren. In dit voorbeeld hebben we gebruikers per groep geautoriseerd.

Amazon Redshift-databasegroepen instellen

Vervolgens stelt u groepen in de Amazon Redshift-database in die overeenkomen met de Okta-groepen. U machtigt deze groepen ook om toegang te krijgen tot bepaalde schema's en tabellen.

  1. Log in op uw Amazon Redshift-cluster met een beheerdersaccount.
  2. Maak groepen die overeenkomen met de IdP-groepsnamen en verleen de juiste machtigingen aan tabellen en schema's:
CREATE GROUP analyst_users;
CREATE GROUP bi_users;

ALTER DEFAULT PRIVILEGES IN SCHEMA sales_analysis
GRANT SELECT on TABLES to GROUP analyst_users;
GRANT USAGE on SCHEMA sales_analysis to GROUP analyst_users;
GRANT SELECT on ALL TABLES in SCHEMA sales_analysis to GROUP analyst_users;

ALTER DEFAULT PRIVILEGES IN SCHEMA sales_bi
GRANT SELECT on TABLES to GROUP bi_users;
GRANT USAGE on SCHEMA sales_bi to GROUP bi_users;
GRANT SELECT on ALL TABLES in SCHEMA sales_bi to GROUP bi_users;

In Okta heb je de gebruiker gemaakt Jane en toegewezen Jane aan de analyst_users groep.

In de Amazon Redshift-database hebt u twee databasegroepen gemaakt: analyst_users en bi_users.

Wanneer gebruiker Jane logt in via federatieve authenticatie bij Amazon Redshift met behulp van query-editor v2, de gebruiker wordt aangemaakt als deze nog niet bestaat en de analyst_users databasegroep wordt aangenomen. De gebruiker Jane kan tabellen alleen opvragen in sales_analysis schema.

Omdat gebruiker Jane maakt geen deel uit van de bi_users groep, wanneer ze proberen toegang te krijgen tot de sales_bi schema, krijgen ze de foutmelding Permissie geweigerd.

Het volgende diagram illustreert deze configuratie.

Toegang tot Amazon Redshift-query-editor v2

Nu ben je klaar om verbinding te maken met je Amazon Redshift-cluster met behulp van Amazon Redshift-query-editor v2 met gefedereerde login. Log in op uw Okta-account met uw gebruikersgegevens en onder Mijn appsKiezen Amazon Redshift Query-editor V2.

U wordt doorgestuurd naar de Amazon Redshift-query-editor v2-URL die u hebt opgegeven als de standaardrelaystatus.

Maak verbinding met een Amazon Redshift-database en voer zoekopdrachten uit

Laten we nu de verbinding met uw Amazon Redshift-cluster opzetten.

  1. Kies in de query-editor uw cluster (klik met de rechtermuisknop) en kies Verbinding maken.
  2. Voor Database, voer een naam in.
  3. Voor authenticatieselecteer Federatieve gebruiker.
    De gebruikersnaam is vooraf ingevuld met uw federatieve inloggegevens.
  4. Kies Verbinding maken.

Wanneer u bent verbonden met uw Amazon Redshift-database, kunt u de verbindingsdetails controleren, zoals weergegeven in de volgende schermafbeelding. Let op de groepskoppeling op sessieniveau volgens de groepstoewijzing in uw Okta-toepassingsconfiguratie. In dit geval wordt gebruiker Jane toegewezen aan de analyst_users groep.

Deze gebruiker heeft toegang tot SELECTEER alle tabellen in de sales_analysis schema en geen toegang tot de sales_bi schema. U kunt de volgende instructies uitvoeren om uw toegang te testen.

De volgende schermafbeelding toont de resultaten van een zoekopdracht naar de sales_analysis.store_sales_us tafel.

Wanneer gebruiker Jane probeert toegang te krijgen tot de tabellen in de sales_bi schema, krijgen ze de foutmelding Permissie geweigerd.

Samengevat

In dit bericht hebben we laten zien hoe u SSO-toegang tot Amazon Redshift-query-editor v2 kunt bundelen met Okta als uw IdP. We hebben laten zien hoe je Okta instelt, anders instellen PrinicpalTag attributen voor query-editor v2 en geef groepslidmaatschappen gedefinieerd in uw Okta IdP door aan uw Amazon Redshift-cluster. We hebben laten zien hoe u zich kunt aanmelden bij Amazon Redshift-query-editor v2 met gefedereerde login en hoe u de configuratie kunt valideren door een paar zoekopdrachten uit te voeren. Met deze oplossing kunt u de toegang tot Amazon Redshift-databaseobjecten beheren, en uw gebruikers kunnen eenvoudig toegang krijgen tot Amazon Redshift-clusters via query-editor v2 met behulp van federatieve inloggegevens zonder databasegebruikers en wachtwoorden te hoeven beheren.

Als je feedback of vragen hebt, laat ze dan achter in de comments.


Over de auteurs

Sumeet Joshi is een Analytics Specialist Solutions Architect gevestigd in New York. Hij is gespecialiseerd in het bouwen van grootschalige datawarehousing-oplossingen. Hij heeft meer dan 16 jaar ervaring in de datawarehousing en analytische ruimte.

Bhanu Pittamally is een Analytics Specialist Solutions Architect gevestigd in Dallas. Hij is gespecialiseerd in het bouwen van analytische oplossingen. Zijn achtergrond ligt al meer dan 14 jaar in data en analytics. Zijn LinkedIn-profiel is te vinden hier.

Erol Murtezaoglu, Technisch Product Manager bij AWS, is een leergierige en enthousiaste denker met een drive voor zelfverbetering en leren. Hij heeft een sterke en bewezen technische achtergrond in softwareontwikkeling en architectuur, in evenwicht met een drive om commercieel succesvolle producten te leveren. Erol hecht veel waarde aan het proces om de behoeften en problemen van de klant te begrijpen, om oplossingen te leveren die de verwachtingen overtreffen.

Yanis Teloumaten is een Software Development Engineer bij AWS. Zijn passies zijn het bouwen van betrouwbare software en het maken van tools waarmee andere engineers efficiënter kunnen werken. De afgelopen jaren werkte hij aan identiteit, veiligheid en betrouwbaarheid van Redshift-diensten

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?