Så här konfigurerar du åtkomstkontroll för Azure Synapse-arbetsytan

I den här artikeln får du lära dig hur du styr åtkomsten till en Microsoft Azure Synapse-arbetsyta. Vi använder en kombination av Azure-roller, Azure Synapse-roller, SQL-behörigheter och Git-behörigheter för att uppnå detta.

I den här guiden konfigurerar du en arbetsyta och konfigurerar ett grundläggande åtkomstkontrollsystem. Du kan använda den här informationen i många typer av Synapse-projekt. Du hittar även avancerade alternativ för finkornig kontroll om du behöver den.

Synapse-åtkomstkontroll kan förenklas genom att roller och personer i din organisation justeras med säkerhetsgrupper. På så sätt kan du hantera åtkomst till säkerhetsgrupper genom att lägga till och ta bort användare.

Innan du påbörjar den här genomgången läser du översikten över Åtkomstkontroll i Azure Synapse för att bekanta dig med mekanismer för åtkomstkontroll som används av Synapse Analytics.

Mekanismer för åtkomstkontroll

Kommentar

Metoden i denna guide är att skapa säkerhetsgrupper. När du tilldelar roller till dessa säkerhetsgrupper behöver du endast hantera medlemskap inom dessa grupper för att styra åtkomst till arbetsytor.

Konfigurera följande objekt om du vill skydda en Synapse-arbetsyta:

  • Säkerhetsgrupper för att gruppera användare med liknande åtkomstbehov.
  • Azure-roller för att styra vem som kan skapa och hantera SQL-pooler, Apache Spark-pooler och integreringskörningar samt få åtkomst till ADLS Gen2-lagring.
  • Synapse-roller för att styra åtkomsten till publicerade kodartefakter, användning av Apache Spark-beräkningsresurser och integreringskörningar.
  • SQL behörigheter för att kontrollera administrations- och dataplanåtkomst till SQL-pooler.
  • Git-behörigheter för att styra vem som kan komma åt kodartefakter i källkontrollen om du konfigurerar Git-stöd för arbetsytor.

Steg för att skydda en Synapse-arbetsyta

Det här dokumentet använder standardnamn för att förenkla instruktionerna. Ersätt dem med valfria namn.

Inställning Standardnamn Beskrivning
Synapse-arbetsyta workspace1 Namnet som Azure Synapse-arbetsytan ska ha.
ADLSGEN2 konto storage1 Det ADLS-konto som ska användas med din arbetsyta.
Container container1 Containern i storage1 som arbetsytan ska använda som standard.
Microsoft Entra ID-klientorganisation contoso Microsoft Entra-ID:ts klientnamn.
Tjänstens huvud SERVICEPRINCIPAL Ett huvudnamn för tjänsten i din Microsoft Entra ID-klientorganisation.

Steg 1: Konfigurera säkerhetsgrupper

Dricks

Du bör använda detaljerade alternativ för att styra åtkomsten till din arbetsyta, ge utvecklare åtkomst till enskilda resurser i stället för en hel arbetsyta. Läs mer om Synapse RBAC.

Skapa följande säkerhetsgrupper för din arbetsyta:

  • workspace1_SynapseAdministrators, för användare som behöver fullständig kontroll över en arbetsyta. Lägg till dig själv i den här säkerhetsgruppen, åtminstone från början.
  • workspace1_SynapseContributors, för utvecklare som behöver utveckla, felsöka och publicera kod till en tjänst.
  • workspace1_SynapseComputeOperators, för användare som behöver hantera och övervaka Apache Spark-pooler och integrationskörningar.
  • workspace1_SynapseCredentialUsers, för användare som behöver felsöka och köra orkestreringspipelines med autentiseringsuppgifter för arbetsytans MSI (hanterad tjänstidentitet) och avbryta pipelinekörningar.

Du tilldelar Synapse-roller till dessa grupper i arbetsytans omfång inom kort.

Skapa även den här säkerhetsgruppen:

  • workspace1_SQLAdmins, grupp för användare som behöver SQL Active Directory Admin-utfärdare i SQL-pooler på arbetsytan.

Gruppen workspace1_SQLAdmins som konfigurerar SQL-behörigheter när du skapar SQL-pooler.

Dessa fem grupper räcker för en grundläggande konfiguration. Senare kan du lägga till säkerhetsgrupper för att hantera användare som behöver mer specialiserad åtkomst eller endast begränsa åtkomsten till enskilda resurser.

Kommentar

Dricks

Enskilda Synapse-användare kan använda Microsoft Entra-ID i Azure Portal för att visa sina gruppmedlemskap. På så sätt kan de avgöra vilka roller de har beviljats.

Steg 2: Förbered ditt ADLS Gen2-lagringskonto

Synapse-arbetsytor använder standardlagringscontainrar för:

  • Lagring av säkerhetskopiering av datafiler för Spark-tabeller
  • Körningsloggar för Spark-jobb
  • Hantering av bibliotek som du väljer att installera

Identifiera följande information om lagringen:

  • Det ADLS Gen2-konto som ska användas för din arbetsyta. Det här dokumentet anropar det storage1. storage1 anses vara det "primära" lagringskontot för din arbetsyta.

  • Containern i storage1 synapse-arbetsytan används som standard. Det här dokumentet anropar det container1.

  • Välj Åtkomstkontroll (IAM) .

  • Klicka på Lägg till>Lägg till rolltilldelning för att öppna sidan Lägg till rolltilldelning.

  • Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Storage blobb data-deltagare
    Tilldela åtkomst till SERVICEPRINCIPAL
    Medlemmar workspace1_SynapseAdministrators, workspace1_SynapseContributors och workspace1_SynapseComputeOperators

    Lägg till rolltilldelningssida i Azure Portal.

Steg 3: Skapa och konfigurera din Synapse-arbetsyta

I Azure Portal skapar du en Synapse-arbetsyta:

  • Välj din prenumeration

  • Välj eller skapa en resursgrupp som du har en Azure-ägarroll för.

  • Namnge arbetsytan workspace1

  • Välj storage1 för lagringskontot

  • Välj container1 den container som används som "filsystem".

  • Öppna workspace1 i Synapse Studio

  • I Synapse Studio navigerar du till Hantera>åtkomstkontroll. I arbetsytans omfång tilldelar du Synapse-roller till säkerhetsgrupper på följande sätt:

    • Tilldela rollen Synapse-administratör tillworkspace1_SynapseAdministrators
    • Tilldela rollen Synapse-deltagare tillworkspace1_SynapseContributors
    • Tilldela rollen Synapse Compute Operator tillworkspace1_SynapseComputeOperators

Steg 4: Ge arbetsytan MSI åtkomst till standardlagringscontainern

För att kunna köra pipelines och utföra systemuppgifter kräver Azure Synapse att hanterad tjänstidentitet (MSI) har åtkomst till container1 i ADLS Gen2-standardkontot för arbetsytan. Mer information finns i Hanterad identitet för Azure Synapse-arbetsyta.

  • Öppna Azure-portalen

  • Leta upp lagringskontot , storage1och sedan container1.

  • Välj Åtkomstkontroll (IAM) .

  • Öppna sidan Lägg till rolltilldelning genom att välja Lägg till>rolltilldelning .

  • Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Storage blobb data-deltagare
    Tilldela åtkomst till MANAGEDIDENTITY
    Medlemmar hanterat identitetsnamn

    Kommentar

    Namnet på den hanterade identiteten är också arbetsytans namn.

    Lägg till rolltilldelningssida i Azure Portal.

Steg 5: Bevilja Synapse-administratörer en Azure-deltagarroll för arbetsytan

För att skapa SQL-pooler, Apache Spark-pooler och integrationskörningar behöver användarna en Azure-deltagarroll för arbetsytan, som minst. En deltagarroll gör det också möjligt för användare att hantera resurser, inklusive pausning och skalning. Om du vill använda Azure Portal eller Synapse Studio för att skapa SQL-pooler, Apache Spark-pooler och integrationskörningar behöver du en deltagarroll på resursgruppsnivå.

  • Öppna Azure-portalen

  • Leta upp arbetsytan, workspace1

  • Välj Åtkomstkontroll (IAM) .

  • Öppna sidan Lägg till rolltilldelning genom att välja Lägg till>rolltilldelning.

  • Tilldela följande roll. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Deltagare (listad under "Privilegierade administratörsroller")
    Tilldela åtkomst till SERVICEPRINCIPAL
    Medlemmar workspace1_SynapseAdministrators

    Lägg till rolltilldelningssida i Azure Portal.

Steg 6: Tilldela en SQL Active Directory-administratörsroll

Skaparen av arbetsytan tilldelas automatiskt som SQL Active Directory-administratör för arbetsytan. Endast en enskild användare eller en grupp kan beviljas den här rollen. I det här steget tilldelar du SQL Active Directory-administratören för arbetsytan till workspace1_SQLAdmins säkerhetsgruppen. Detta ger gruppen mycket privilegierad administratör åtkomst till alla SQL-pooler och databaser på arbetsytan.

  • Öppna Azure-portalen
  • Navigera till workspace1
  • Under Inställningar väljer du Microsoft Entra-ID
  • Välj Ange administratör och välj workspace1_SQLAdmins

Kommentar

Steg 6 är valfritt. Du kan välja att ge gruppen workspace1_SQLAdmins en mindre privilegierad roll. Om du vill tilldela db_owner eller andra SQL-roller måste du köra skript på varje SQL-databas.

Steg 7: Bevilja åtkomst till SQL-pooler

Synapse-administratören ges som standard SQL-rollen db_owner för serverlösa SQL-pooler även på arbetsytan.

Åtkomst till SQL-pooler för andra användare styrs av SQL-behörigheter. Tilldelning av SQL-behörigheter kräver att SQL-skript körs på varje SQL-databas efter skapandet. Följande är exempel som kräver att du kör dessa skript:

  1. För att ge användare åtkomst till den serverlösa SQL-poolen, "Inbyggd" och dess databaser.

  2. Ge användare åtkomst till dedikerade SQL-pooldatabaser. Exempel på SQL-skript ingår senare i den här artikeln.

  3. För att ge åtkomst till en dedikerad SQL-pooldatabas kan skript köras av arbetsytans skapare eller någon medlem i workspace1_SynapseAdministrators gruppen.

  4. Om du vill bevilja åtkomst till den serverlösa SQL-poolen inbyggd kan skript köras av alla medlemmar workspace1_SQLAdmins i gruppen eller workspace1_SynapseAdministrators gruppen.

Dricks

Du kan ge åtkomst till alla SQL-databaser genom att utföra följande steg för varje SQL-pool. Avsnittet Configure Workspace-scoped permissions is a exception to the rule and it allows you to assign a user a sysadmin role at the workspace level.

Steg 7a: Serverlös SQL-pool, inbyggd

Du kan använda skriptexemplen i det här avsnittet för att ge användarna behörighet att komma åt en enskild databas eller alla databaser i den serverlösa SQL-poolen. Built-in

Kommentar

I skriptexemplen ersätter du aliaset med aliaset för den användare eller grupp som beviljas åtkomst. Ersätt domänen med den företagsdomän som du använder.

Konfigurera behörigheter med databasomfattning

Du kan ge användare åtkomst till en enda serverlös SQL-databas med stegen som beskrivs i det här exemplet:

  1. Skapa en inloggning. Ändra till databaskontexten master .

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Skapa användare i databasen. Ändra kontext till databasen.

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Lägg till användare som medlem i den angivna rollen i databasen (i det här fallet db_owner rollen).

    ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
    

Konfigurera behörigheter med arbetsytans omfattning

Du kan ge fullständig åtkomst till alla serverlösa SQL-pooler på arbetsytan. Kör skriptet i det här exemplet i master databasen:

CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];

Steg 7b: Konfigurera dedikerade SQL-pooler

Du kan ge åtkomst till en enda dedikerad SQL-pooldatabas. Följ dessa steg i Azure Synapse SQL-skriptredigeraren:

  1. Skapa en användare i databasen genom att köra följande kommandon. Välj måldatabasen i listrutan Anslut till :

    --Create user in the database
    CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER;
    -- For Service Principals you would need just the display name and @domain.com is not required
    
  2. Ge användaren en roll för att få åtkomst till databasen:

    --Grant role to the user in the database
    EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
    

Viktigt!

db_datareader och db_datawriter databasroller kan ge läs-/skrivbehörighet när du inte vill ge db_owner behörigheter. Men db_owner behörighet krävs för att Spark-användare ska kunna läsa och skriva direkt från Spark till eller från en SQL-pool.

Du kan köra frågor för att bekräfta att serverlösa SQL-pooler kan köra frågor mot lagringskonton när du har skapat dina användare.

Steg 8: Lägga till användare i säkerhetsgrupper

Den första konfigurationen för ditt åtkomstkontrollsystem är nu klar.

Du kan nu lägga till och ta bort användare till de säkerhetsgrupper som du har konfigurerat för att hantera åtkomst till dem. Du kan tilldela användare till Azure Synapse-roller manuellt, men detta anger behörigheter inkonsekvent. Lägg i stället bara till eller ta bort användare i dina säkerhetsgrupper.

Steg 9: Nätverkssäkerhet

Som ett sista steg för att skydda din arbetsyta bör du skydda nätverksåtkomsten med hjälp av arbetsytans brandvägg.

Steg 10: Slutförande

Arbetsytan är nu helt konfigurerad och skyddad.

Stöd för mer avancerade scenarier

Den här guiden har fokuserat på att konfigurera ett grundläggande åtkomstkontrollsystem. Du kan stödja mer avancerade scenarier genom att skapa andra säkerhetsgrupper och tilldela dessa grupper mer detaljerade roller i mer specifika omfång. Överväg följande fall:

Aktivera Git-stöd för arbetsytan för mer avancerade utvecklingsscenarier, inklusive CI/CD. I Git-läge avgör Git-behörigheter och Synapse RBAC om en användare kan genomföra ändringar i sin arbetsgren. Publicering till tjänsten sker endast från samarbetsgrenen. Överväg att skapa en säkerhetsgrupp för utvecklare som behöver utveckla och felsöka uppdateringar i en arbetsgren men inte behöver publicera ändringar i livetjänsten.

Begränsa utvecklaråtkomst till specifika resurser. Skapa andra detaljerade säkerhetsgrupper för utvecklare som bara behöver åtkomst till specifika resurser. Tilldela dessa grupper lämpliga Azure Synapse-roller som är begränsade till specifika Spark-pooler, integrationskörningar eller autentiseringsuppgifter.

Begränsa operatorer från att komma åt kodartefakter. Skapa säkerhetsgrupper för operatörer som behöver övervaka driftstatusen för Synapse-beräkningsresurser och visa loggar men som inte behöver åtkomst till kod eller publicera uppdateringar till tjänsten. Tilldela dessa grupper rollen Beräkningsoperator som är begränsad till specifika Spark-pooler och integrationskörningar.

Inaktivera lokal autentisering. Genom att endast tillåta Microsoft Entra-autentisering kan du centralt hantera åtkomst till Azure Synapse-resurser, till exempel SQL-pooler. Lokal autentisering för alla resurser på arbetsytan kan inaktiveras under eller efter att arbetsytan har skapats. Mer information om Microsoft Entra-autentisering finns i Inaktivera lokal autentisering i Azure Synapse Analytics.