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
- Lär dig hur du skapar en säkerhetsgrupp i den här artikeln: Skapa en grundläggande grupp och lägg till medlemmar med hjälp av Microsoft Entra-ID.
- Lär dig hur du lägger till en säkerhetsgrupp från en annan säkerhetsgrupp i den här artikeln: Lägg till eller ta bort en grupp från en annan grupp med hjälp av Microsoft Entra-ID.
- När du skapar en säkerhetsgrupp kontrollerar du att grupptypen är Säkerhet. Microsoft 365-grupper stöds inte för Azure SQL.
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 detcontainer1
.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
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 lagringskontotVälj
container1
den container som används som "filsystem".Öppna
workspace1
i Synapse StudioI 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 till
workspace1_SynapseAdministrators
- Tilldela rollen Synapse-deltagare till
workspace1_SynapseContributors
- Tilldela rollen Synapse Compute Operator till
workspace1_SynapseComputeOperators
- Tilldela rollen Synapse-administratör till
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 ,
storage1
och sedancontainer1
.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.
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
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:
För att ge användare åtkomst till den serverlösa SQL-poolen, "Inbyggd" och dess databaser.
Ge användare åtkomst till dedikerade SQL-pooldatabaser. Exempel på SQL-skript ingår senare i den här artikeln.
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.Om du vill bevilja åtkomst till den serverlösa SQL-poolen inbyggd kan skript köras av alla medlemmar
workspace1_SQLAdmins
i gruppen ellerworkspace1_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:
Skapa en inloggning. Ändra till databaskontexten
master
.--In the master database CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
Skapa användare i databasen. Ändra kontext till databasen.
-- In your database CREATE USER alias FROM LOGIN [alias@domain.com];
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:
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
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.
- Med och utan ett hanterat virtuellt nätverk kan du ansluta till din arbetsyta från offentliga nätverk. Mer information finns i Anslutningsinställningar.
- Åtkomst från offentliga nätverk kan styras genom att aktivera funktionen för åtkomst till det offentliga nätverket eller brandväggen för arbetsytan.
- Du kan också ansluta till din arbetsyta med hjälp av en hanterad privat slutpunkt och en privat länk. Azure Synapse-arbetsytor utan Azure Synapse Analytics Managed Virtual Network har inte möjlighet att ansluta via hanterade privata slutpunkter.
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.