Einrichten der Zugriffssteuerung für Ihren Azure Synapse-Arbeitsbereich
In diesem Artikel erfahren Sie, wie Sie den Zugriff auf einen Microsoft Azure Synapse-Arbeitsbereich kontrollieren können. Wir verwenden eine Kombination aus Azure-Rollen, Azure-Synapse-Rollen, SQL-Berechtigungen und Git-Berechtigungen, um dies zu erreichen.
In dieser Anleitung richten Sie einen Arbeitsbereich ein und konfigurieren ein grundlegendes Zugriffssteuerungssystem. Sie können diese Informationen in vielen Arten von Synapse-Projekten verwenden. Außerdem finden Sie erweiterte Optionen für eine feinere Steuerung, falls Sie diese benötigen.
Die Synapse-Zugriffssteuerung lässt sich vereinfachen, indem Sie die Rollen und Personas in Ihrer Organisation mit Sicherheitsgruppen abgleichen. So können Sie den Zugriff auf Sicherheitsgruppen verwalten, indem Sie einfach Benutzer hinzufügen und entfernen.
Bevor Sie mit dieser Übung beginnen, lesen Sie die Übersicht über die Azure Synapse-Zugriffssteuerung, um sich mit den von Synapse Analytics verwendeten Zugriffssteuerungsmechanismen vertraut zu machen.
Zugriffssteuerungsmechanismen
Hinweis
Der Ansatz dieses Leitfadens besteht darin, Sicherheitsgruppen zu erstellen. Wenn Sie diesen Sicherheitsgruppen Rollen zuweisen, müssen Sie nur die Mitgliedschaften innerhalb dieser Gruppen verwalten, um den Zugriff auf Arbeitsbereiche zu kontrollieren.
Um einen Synapse-Arbeitsbereich zu sichern, müssen Sie die folgenden Elemente konfigurieren:
- Sicherheitsgruppen, um Benutzer mit ähnlichen Zugriffsanforderungen zusammenzufassen
- Azure-Rollen, um zu steuern, wer SQL-Pools, Apache Spark-Pools und Integration Runtimes erstellen und verwalten kann und wer Zugriff auf ADLS Gen2-Speicher hat
- Synapse-Rollen, um den Zugriff auf veröffentlichte Codeartefakte und die Verwendung von Apache Spark-Compute-Ressourcen und Integration Runtimes zu steuern
- SQL-Berechtigungen, um den Zugriff auf Verwaltungs- und Datenebene auf SQL-Pools zu steuern
- Git-Berechtigungen, um den Zugriff auf Codeartefakte in der Quellcodeverwaltung zu steuern, wenn Sie Git-Unterstützung für Arbeitsbereiche konfigurieren
Schritte zur Sicherung eines Synapse-Arbeitsbereichs
In diesem Dokument werden Standardnamen verwendet, um Anweisungen zu vereinfachen. Ersetzen Sie sie durch Namen Ihrer Wahl.
Einstellung | Standardname | Beschreibung |
---|---|---|
Synapse-Arbeitsbereich | workspace1 |
Der Name, den der Azure Synapse-Arbeitsbereich erhält. |
ADLSGEN2-Konto | storage1 |
Das ADLS-Konto, das mit Ihrem Arbeitsbereich verwendet werden soll. |
Container | container1 |
Der Container in storage1, der vom Arbeitsbereich standardmäßig verwendet wird. |
Microsoft Entra ID-Mandant | contoso |
Der Name des Microsoft Entra ID-Mandanten. |
Dienstprinzipal | SERVICEPRINCIPAL |
Ein Dienstprinzipal in Ihrem Microsoft Entra ID-Mandanten. |
Schritt 1: Einrichten von Sicherheitsgruppen
Tipp
Sie können granulare Optionen verwenden, um den Zugriff auf Ihren Arbeitsbereich zu steuern, und Entwicklern Zugriff auf einzelne Ressourcen statt auf einen gesamten Arbeitsbereich gewähren. Erfahren Sie mehr über Synapse RBAC.
Erstellen Sie die folgenden Sicherheitsgruppen für Ihren Arbeitsbereich:
workspace1_SynapseAdministrators
für Benutzer, die vollständige Kontrolle über den Arbeitsbereich benötigen Fügen Sie sich selbst dieser Sicherheitsgruppe hinzu (zumindest anfänglich).workspace1_SynapseContributors
für Entwickler, die Code für den Dienst entwickeln, debuggen und veröffentlichen müssenworkspace1_SynapseComputeOperators
für Benutzer, die Apache Spark-Pools und Integration Runtimes verwalten und überwachen müssenworkspace1_SynapseCredentialUsers
für Benutzer, die Orchestrierungspipelines mithilfe der Anmeldeinformationen der Arbeitsbereichs-MSI (Managed Service Identity, verwaltete Dienstidentität) debuggen und ausführen und Pipelineausführungen abbrechen müssen.
Sie weisen diesen Gruppen in Kürze Synapse-Rollen auf Arbeitsbereichsebene zu.
Erstellen Sie außerdem diese Sicherheitsgruppe:
workspace1_SQLAdmins
für Benutzer, die SQL Active Directory-Administratorrechte innerhalb von SQL-Pools im Arbeitsbereich benötigen.
Die workspace1_SQLAdmins
-Gruppe zur Konfiguration der SQL-Berechtigungen bei der Erstellung von SQL-Pools.
Diese fünf Gruppen sind für eine grundlegende Einrichtung ausreichend. Später können Sie Sicherheitsgruppen hinzufügen, um Benutzer zu verwalten, die einen spezielleren Zugriff benötigen, oder den Zugriff auf einzelne Ressourcen zu beschränken.
Hinweis
- Unter Erstellen einer Basisgruppe und Hinzufügen von Mitgliedern mithilfe von Microsoft Entra ID in diesem Artikel erfahren Sie, wie Sie eine Sicherheitsgruppe erstellen.
- Unter Hinzufügen oder Entfernen einer Gruppe aus einer anderen Gruppe mithilfe von Microsoft Entra ID in diesem Artikel erfahren Sie, wie Sie eine Sicherheitsgruppe aus einer anderen Sicherheitsgruppe hinzufügen.
- Achten Sie beim Erstellen einer Sicherheitsgruppe darauf, dass der GruppentypSicherheit lautet. Gruppen vom Typ Microsoft 365 werden für Azure SQL nicht unterstützt.
Tipp
Einzelne Synapse-Benutzer*innen können Microsoft Entra ID im Azure-Portal verwenden, um ihre Gruppenmitgliedschaften anzuzeigen. So können sie feststellen, welche Rollen ihnen zugewiesen wurden.
Schritt 2: Vorbereiten Ihres ADLS Gen2-Speicherkontos
Synapse-Arbeitsbereiche verwenden Standard-Speichercontainer für:
- Speicherung von Sicherungsdateien für Spark-Tabellen
- Ausführungsprotokolle für Spark-Aufträge
- Verwaltung der Bibliotheken, die Sie installieren möchten
Ermitteln Sie diese Informationen zu Ihrem Speicher:
Das ADLS Gen2-Konto, das mit Ihrem Arbeitsbereich verwendet werden soll. In diesem Dokument ist dies
storage1
.storage1
wird als „primäres“ Speicherkonto für Ihren Arbeitsbereich betrachtet.Der Container innerhalb von
storage1
, der von Ihrem Arbeitsbereich standardmäßig verwendet wird. In diesem Dokument ist diescontainer1
.Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus, um den Bereich „Rollenzuweisung hinzufügen“ zu öffnen.
Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Einstellung Wert Role Mitwirkender an Storage-Blobdaten Zugriff zuweisen zu SERVICEPRINCIPAL
Member workspace1_SynapseAdministrators, workspace1_SynapseContributors und workspace1_SynapseComputeOperators
Schritt 3: Erstellen und Konfigurieren Ihres Synapse-Arbeitsbereichs
Erstellen Sie im Azure-Portal einen Synapse-Arbeitsbereich:
Wählen Sie Ihr Abonnement aus.
Wählen Sie eine Ressourcengruppe aus, für die Sie über die Azure-Rolle Besitzer verfügen, oder erstellen Sie sie.
Geben Sie dem Arbeitsbereich den Namen
workspace1
.Wählen Sie
storage1
als Speicherkonto aus.Wählen Sie
container1
als den Container aus, der als „Dateisystem“ verwendet wird.Öffnen Sie
workspace1
im Synapse StudioNavigieren Sie in Synapse Studio zu Verwalten>Zugriffssteuerung. Weisen Sie im Arbeitsbereich Synapse-Rollen den Sicherheitsgruppen wie folgt zu:
- Weisen Sie
workspace1_SynapseAdministrators
die Rolle Synapse-Administrator zu. - Weisen Sie
workspace1_SynapseContributors
die Rolle Synapse-Mitwirkender zu. - Weisen Sie
workspace1_SynapseComputeOperators
die Rolle Operator von Synapse-Computeressourcen zu.
- Weisen Sie
Schritt 4: Gewähren von Zugriff auf den Standardspeichercontainer für die Arbeitsbereichs-MSI
Zur Ausführung von Pipelines und Systemaufgaben benötigt Azure Synapse eine verwaltete Dienstidentität (MSI), um im Arbeitsbereich Zugriff auf container1
über das Standardkonto ADLS Gen2 zu haben. Weitere Informationen finden Sie unter Vom Azure Synapse-Arbeitsbereich verwaltete Identität.
Öffnen Sie das Azure-Portal.
Ermitteln Sie das Speicherkonto
storage1
und danncontainer1
.Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Um die Seite Rollenzuweisung hinzufügen zu öffnen, wählen Sie Hinzufügen von >Rollenzuweisung hinzufügen.
Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Einstellung Wert Role Mitwirkender an Storage-Blobdaten Zugriff zuweisen zu MANAGEDIDENTITY Member Name der verwalteten Identität Hinweis
Der Name der verwalteten Identität ist auch der Name des Arbeitsbereichs.
Schritt 5: Erteilen der Azure-Rolle „Mitwirkender“ für den Arbeitsbereich an Synapse-Administrator*innen
Um SQL-Pools, Apache Spark-Pools und Integrationslaufzeiten zu erstellen, benötigen Benutzer mindestens eine Azure Contributor-Rolle für den Arbeitsbereich. Eine Contributor-Rolle ermöglicht es Benutzern auch, Ressourcen zu verwalten, einschließlich Pausieren und Skalieren. Um das Azure-Portal oder Synapse Studio zur Erstellung von SQL-Pools, Apache Spark-Pools und Integrationslaufzeiten zu verwenden, benötigen Sie eine Contributor-Rolle auf der Ebene der Ressourcengruppe.
Öffnen Sie das Azure-Portal.
Suchen Sie den Arbeitsbereich
workspace1
.Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Um die Seite Rollenzuweisung hinzufügen zu öffnen, wählen Sie Hinzufügen von >Rollenzuweisung hinzufügen.
Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Einstellung Wert Role Mitwirkender (unter „Privilegierte Administratorrollen“ aufgeführt) Zugriff zuweisen zu SERVICEPRINCIPAL
Member workspace1_SynapseAdministrators
Schritt 6: Zuweisen einer SQL Active Directory-Administratorrolle
Der Ersteller des Arbeitsbereichs wird automatisch als SQL Active Directory Admin für den Arbeitsbereich zugewiesen. Diese Rolle kann nur einem einzigen Benutzer oder einer einzigen Gruppe gewährt werden. In diesem Schritt weisen Sie der Sicherheitsgruppe workspace1_SQLAdmins
die Rolle „SQL Active Directory-Administrator“ für den Arbeitsbereich zu. Dadurch erhält die Gruppe absolute Admin-Zugriffsberechtigung auf alle SQL-Pools und Datenbanken im Arbeitsbereich.
- Öffnen Sie das Azure-Portal.
- Navigieren Sie zu
workspace1
. - Wählen Sie unter Einstellungen die Option Microsoft Entra ID aus.
- Wählen Sie Administrator festlegen und dann
workspace1_SQLAdmins
aus.
Hinweis
Schritt 6 ist optional. Sie können der Gruppe workspace1_SQLAdmins
eine weniger privilegierte Rolle gewähren. Wenn Sie db_owner
oder andere SQL-Rollen zuweisen möchten, müssen Sie Skripts für jede SQL-Datenbank ausführen.
Schritt 7: Gewähren des Zugriffs auf SQL-Pools
Dem Synapse-Administrator wird standardmäßig in SQL auch die db_owner
-Rolle für serverlose SQL-Pools im Arbeitsbereich zugewiesen.
Der Zugriff auf SQL-Pools für andere Benutzer wird durch SQL-Berechtigungen gesteuert. Die Zuweisung von SQL-Berechtigungen erfordert die Ausführung von SQL-Skripts für jede SQL-Datenbank nach der Erstellung. Im Folgenden finden Sie Beispiele, bei denen Sie diese Skripte ausführen müssen:
Um Benutzern Zugriff auf den serverlosen SQL-Pool 'Built-in' und seine Datenbanken zu gewähren.
Um Benutzern Zugriff auf spezielle SQL-Pool-Datenbanken zu gewähren. Beispiel SQL-Skripts sind später in diesem Artikel enthalten.
Um Zugriff auf eine Datenbank im dedizierten SQL-Pool zu gewähren, können Skripts vom Ersteller des Arbeitsbereichs oder von einem beliebigen Mitglied der Gruppe
workspace1_SynapseAdministrators
ausgeführt werden.Zum Gewähren des Zugriffs auf den serverlosen SQL-Pool „Built-in“ können Skripts von jedem Mitglied der Gruppen
workspace1_SQLAdmins
oderworkspace1_SynapseAdministrators
ausgeführt werden.
Tipp
Sie können den Zugriff auf alle SQL-Datenbanken gewähren, indem Sie die folgenden Schritte für jeden SQL-Pool ausführen. Der Abschnitt Arbeitsbereich-übergreifende Berechtigungen konfigurieren ist eine Ausnahme von der Regel und ermöglicht es Ihnen, einem Benutzer die Rolle des Systemadministrators auf Arbeitsbereichsebene zuzuweisen.
Schritt 7a: Serverloser SQL-Pool, integriert
Sie können die Skriptbeispiele in diesem Abschnitt verwenden, um Benutzern die Berechtigung zum Zugriff auf eine einzelne Datenbank oder auf alle Datenbanken im serverlosen SQL-Pool zu erteilen, Built-in
.
Hinweis
Ersetzen Sie in den Skriptbeispielen Alias durch den Alias des Benutzers oder der Gruppe, dem/der Zugriff gewährt wird. Ersetzen Sie Domain durch die Unternehmensdomain, die Sie verwenden.
Datenbank-übergreifende Berechtigungen konfigurieren
Mit den in diesem Beispiel beschriebenen Schritten können Sie Benutzern Zugriff auf eine einzelne serverlose SQL-Datenbank gewähren:
Erstellen Sie einen Anmeldenamen. Wechseln Sie in den
master
-Datenbankkontext.--In the master database CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
Erstellen Sie einen Benutzer in Ihrer Datenbank. Ändern Sie den Kontext in Ihre Datenbank.
-- In your database CREATE USER alias FROM LOGIN [alias@domain.com];
Fügen Sie den Benutzer der angegebenen Rolle als Mitglied in Ihrer Datenbank hinzu (in diesem Fall die db_owner-Rolle).
ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
Arbeitsbereich-übergreifende Berechtigungen konfigurieren
Sie können vollen Zugriff auf alle serverlosen SQL-Pools im Arbeitsbereich gewähren. Führen Sie das Skript in diesem Beispiel in der master
Datenbank aus:
CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];
Schritt 7b: Konfigurieren dedizierter SQL-Pools
Sie können Zugriff auf eine einzelne, dedizierte SQL Pool-Datenbank gewähren. Verwenden Sie die folgenden Schritte im Azure Synapse SQL Skript-Editor:
Erstellen Sie einen Benutzer in der Datenbank, indem Sie die folgenden Befehle ausführen. Wählen Sie die Zieldatenbank in der Dropdown-Liste Verbinden mit aus:
--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
Weisen Sie dem Benutzer eine Rolle für den Zugriff auf die Datenbank zu:
--Grant role to the user in the database EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
Wichtig
db_datareader und db_datawriter Datenbankrollen stellen Lese-/Schreibrechte bereit, wenn Sie keine db_owner-Rechte erteilen wollen. Die db_owner-Berechtigung ist jedoch für Spark-Benutzer erforderlich, um direkt von Spark in einen SQL-Pool zu lesen oder zu schreiben.
Sie können Abfragen durchführen, um zu bestätigen, dass serverlose SQL-Pools Speicherkonten abfragen können, nachdem Sie Ihre Benutzer erstellt haben.
Schritt 8: Hinzufügen von Benutzer*innen zu Sicherheitsgruppen
Die Erstkonfiguration Ihres Zugriffssteuerungssystem ist nun abgeschlossen.
Sie können jetzt Benutzer zu den von Ihnen eingerichteten Sicherheitsgruppen hinzufügen und entfernen, um den Zugriff auf diese Gruppen zu verwalten. Sie können Benutzern manuell Azure Synapse-Rollen zuweisen, dies legt jedoch Berechtigungen nicht einheitlich fest. Fügen Sie stattdessen nur Benutzer zu Ihren Sicherheitsgruppen hinzu oder entfernen Sie sie.
Schritt 9: Netzwerksicherheit
Als letzten Schritt sollten Sie zum Schützen Ihres Arbeitsbereichs den Netzwerkzugriff mithilfe der Arbeitsbereichsfirewall absichern.
- Sowohl mit als auch ohne ein verwaltetes virtuelles Netzwerk können Sie aus öffentlichen Netzwerken eine Verbindung mit Ihrem Arbeitsbereich herstellen. Weitere Informationen finden Sie unter Konnektivitätseinstellungen.
- Der Zugriff aus öffentlichen Netzwerken lässt sich kontrollieren, indem Sie das Feature für den Zugriff auf öffentliche Netzwerke oder die Arbeitsbereichsfirewall aktivieren.
- Alternativ können Sie auch über einen verwalteten privaten Endpunkt und Private Link eine Verbindung mit Ihrem Arbeitsbereich herstellen. Azure Synapse Arbeitsbereiche ohne das verwaltete virtuelle Netzwerk von Azure Synapse Analytics können keine Verbindung über verwaltete private Endpunkte herstellen.
Schritt 10: Abschluss
Ihr Arbeitsbereich ist jetzt vollständig konfiguriert und geschützt.
Unterstützung komplexerer Szenarien
In diesem Leitfaden ging es um die Einrichtung eines grundlegenden Zugriffssteuerungssystems. Für komplexere Szenarien können Sie andere Sicherheitsgruppen erstellen und diesen präzisere Rollen in spezifischeren Gültigkeitsbereichen zuweisen. Betrachten Sie folgende Fälle:
Aktivieren der Git-Unterstützung für den Arbeitsbereich für erweiterte Entwicklungsszenarien, einschließlich CI/CD. Im Git-Modus bestimmen Git-Berechtigungen und Synapse-RBAC, ob ein*e Benutzer*in Änderungen an seinem bzw. ihrem Arbeitsbranch ausführen kann. Die Veröffentlichung im Dienst erfolgt nur über den Kollaborationsbranch. Erstellen Sie ggf. eine Sicherheitsgruppe für Entwickler, die Updates in einem Arbeitsbranch entwickeln und debuggen müssen, aber keine Änderungen am Livedienst veröffentlichen müssen.
Einschränken des Entwicklerzugriffs auf bestimmte Ressourcen. Erstellen Sie andere differenziertere Sicherheitsgruppen für Entwickler, die nur auf bestimmte Ressourcen Zugriff benötigen. Weisen Sie diesen Gruppen geeignete Azure Synapse-Rollen zu, die nur für bestimmte Spark-Pools, Integration Runtimes oder Anmeldeinformationen gelten.
Beschränken des Operatorzugriffs auf Codeartefakte. Erstellen Sie Sicherheitsgruppen für Operatoren, die den Betriebsstatus von Synapse-Computeressourcen überwachen und Protokolle anzeigen müssen, jedoch keinen Zugriff auf den Code benötigen und keine Updates am Dienst veröffentlichen müssen. Weisen Sie diese Gruppen der Rolle „Operator von Synapse-Computeressourcen“ zu, die auf bestimmte Spark-Pools und Integration Runtimes beschränkt ist.
Deaktivieren der lokalen Authentifizierung. Indem Sie nur die Microsoft Entra-Authentifizierung zulassen, können Sie den Zugriff auf Azure Synapse-Ressourcen, wie z. B. SQL-Pools, zentral verwalten. Die lokale Authentifizierung für alle Ressourcen im Arbeitsbereich kann während oder nach der Erstellung des Arbeitsbereichs deaktiviert werden. Weitere Informationen zur Authentifizierung nur über Microsoft Entra finden Sie unter Deaktivieren der lokalen Authentifizierung in Azure Synapse Analytics.