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 personas 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 börjar denna genomgång, läs Azure Synapse workspace access control-översikt för att bekanta dig med åtkomstkontrollmekanismer som används av Synapse Analytics.

Mekanismer för åtkomstkontroll

Obs!

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 Integration runtimes samt få åtkomst till ADLS Gen2-lagring.
  • Synapse-roller används 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 säkra 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 Description
Synapse-arbetsyta workspace1 Namnet som Azure Synapse-arbetsytan ska ha.
ADLSGEN2 konto storage1 Det ADLS-konto som ska användas med din arbetsyta.
Behållare container1 Containern i storage1 som arbetsytan ska använda som standard.
Microsoft Entra ID-klientorganisation contoso Microsoft Entra ID-klientorganisationens namn.
Tjänsthuvudnamn SERVICEPRINCIPAL Ett tjänsthuvudnamn i din Microsoft Entra ID-klientorganisation.

Steg 1: Konfigurera säkerhetsgrupper

Tips

Använd detaljerade alternativ för att kontrollera åtkomsten till din arbetsyta. Ge utvecklare tillgång till individuella resurser istället för en hel arbetsyta. Mer information om Synapse RBAC finns i Vad är Synapse rollbaserad åtkomststyrning (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 inledningsvis.
  • workspace1_SynapseContributors, för utvecklare som behöver utveckla, felsöka och driftsätta kod till en tjänst.
  • workspace1_SynapseComputeOperators, för användare som behöver hantera och övervaka Apache Spark-pooler och integreringsruntimes.
  • 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 kommer snart att tilldela Synapse-roller till dessa grupper på arbetsytenivå.

Skapa även den här säkerhetsgruppen:

  • workspace1_SQLAdmins, grupp för användare som behöver administratörsbehörighet för SQL služba Active Directory Admin inom SQL-poolerna i arbetsytan.

Gruppen workspace1_SQLAdmins för att konfigurera 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 för att begränsa åtkomsten enbart till enskilda resurser.

Obs!

Tips

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 som har beviljats dem.

Steg 2: Förbered ditt ADLS Gen2-lagringskonto

Synapse-arbetsytor använder standardlagringscontainrar för:

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

Ange följande information om din lagring:

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

  • Containern i storage1 som Synapse-arbetsytan använder som standard. Det här dokumentet kallar det container1.

  • Välj Åtkomstkontroll (IAM) .

  • Välj 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 Blob Data Contributor
    Tilldela åtkomst till SERVICEPRINCIPAL
    Medlemmar workspace1_SynapseAdministrators, workspace1_SynapseContributors och workspace1_SynapseComputeOperators

    Lägg till sidan för rolltilldelning i Azure portal.

Steg 3: Skapa och konfigurera din Synapse-arbetsyta

I Azure-portalen skapar du en Synapse-arbetsyta:

  • Välj din prenumeration

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

  • Namnge arbetsytan workspace1

  • Välj storage1 för lagringskontot

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

  • Öppna workspace1 i Synapse Studio

  • I Synapse Studio navigerar du till Hantera>åtkomstkontroll. I arbetsytans omfattning 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 till workspace1_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 standardkontot för ADLS Gen2 för arbetsytan. För mer information, se Managed identities for Azure Synapse Analytics.

  • Ö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>Lägg till rolltilldelning .

  • Tilldela följande roll. Detaljerade steg finns i Tilldela Azure-roller via Azure Portal.

    Inställning Värde
    Roll Storage Blob Data Contributor
    Tilldela åtkomst till Hanterad identitet
    Medlemmar namn på hanterad identitet

    Obs!

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

    Lägg till sidan för rolltilldelning i Azure portal.

Steg 5: Bevilja Synapse-administratörer rollen Azure Contributor för arbetsytan

För att skapa SQL-pooler, Apache Spark-pooler och Integration Runtime behöver användarna som minimum rollen Azure Contributor för arbetsytan. Rollen Deltagare gör det också möjligt för användare att hantera resurser, inklusive pausning och skalning. Om du vill använda Azure-portalen eller Synapse Studio för att skapa SQL-pooler, Apache Spark-pooler och Integration Runtime behöver du rollen Deltagare på resursgruppsnivå.

  • Öppna Azure-portalen

  • Leta upp arbetsytan, workspace1

  • Välj Åtkomstkontroll (IAM) .

  • Om du vill öppna sidan Lägg till rolltilldelning väljer du Lägg till>Lägg till rolltilldelning.

  • Tilldela följande roll. Detaljerade anvisningar finns i Tilldela Azure-roller med Azure-portalen.

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

    Lägg till en rolltilldelningssida i Azure portal.

Steg 6: Tilldela en SQL Microsoft Entra ID-administratörsroll

Skaparen av arbetsytan tilldelas automatiskt som SQL služba 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 služba Active Directory-administratören för arbetsytan till workspace1_SQLAdmins säkerhetsgruppen. Detta ger gruppen mycket privilegierad administratörså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 som administratör och sedan workspace1_SQLAdmins

Obs!

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. Detta ger användare åtkomst till den serverlösa SQL-poolen, ”Built-in” 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 'Built-in' kan skript köras av alla medlemmar i workspace1_SQLAdmins-gruppen eller workspace1_SynapseAdministrators-gruppen.

Tips

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 är ett undantag från regeln och gör det möjligt att tilldela en användare en sysadmin-roll på arbetsytenivå.

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.

Obs!

I skriptexemplen ersätter du alias 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 databasomfattande behörigheter

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

  1. Skapa ett konto. Ändra till master databaskontexten.

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

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Lägg till en 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 arbetsytebegränsade behörigheter

Du kan ge fullständig åtkomst till alla serverlösa SQL-pooler i 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 rullgardinsmenyn Connect to :

    --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. Dock krävs db_owner behörighet för att Spark-användare ska kunna läsa och skriva direkt från Spark in i 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 från 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 medför inkonsekventa behörigheter. 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 skyddar du nätverksåtkomsten genom att använda brandväggen för arbetsytan.

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 omfattningar. Ö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 checka in ä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 produktionstjä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, Integration runtimes eller autentiseringsuppgifter.

Begränsa operatorers åtkomst till 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 Compute Operator som är begränsad till specifika Spark-pooler och Integration Runtime.

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.