Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 exemplarischen Vorgehensweise beginnen, lesen Sie die Übersicht über die Zugriffskontrolle für Azure Synapse-Arbeitsbereiche, um sich mit den von Synapse Analytics verwendeten Zugriffskontrollmechanismen vertraut zu machen.
Zugriffssteuerungsmechanismen
Hinweis
Der Ansatz in diesem Leitfaden ist, 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 | Description |
|---|---|---|
| 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, den der Arbeitsbereich standardmäßig verwenden 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
Verwenden Sie detaillierte Optionen, um den Zugriff auf Ihren Arbeitsbereich zu steuern. Erlauben Sie Entwicklern Zugang zu einzelnen Ressourcen statt zu einem kompletten Arbeitsbereich. Weitere Informationen zu Synapse RBAC finden Sie unter Was ist rollenbasierte Zugriffskontrolle in Synapse (RBAC)?
Erstellen Sie die folgenden Sicherheitsgruppen für Ihren Arbeitsbereich:
-
workspace1_SynapseAdministratorsfür Benutzer, die vollständige Kontrolle über den Arbeitsbereich benötigen Fügen Sie sich selbst dieser Sicherheitsgruppe hinzu (zumindest anfänglich). -
workspace1_SynapseContributorsfür Entwickler, die Code für den Dienst entwickeln, debuggen und veröffentlichen müssen. -
workspace1_SynapseComputeOperatorsfür Benutzer, die Apache Spark-Pools und Integration Runtimes verwalten und überwachen müssen -
workspace1_SynapseCredentialUsersfü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, Gruppe für Benutzer, die SQL Active Directory-Administratorrechte innerhalb von SQL-Pools im Arbeitsbereich benötigen.
Verwenden Sie die workspace1_SQLAdmins-Gruppe, um SQL-Berechtigungen zu konfigurieren, wenn Sie SQL-Pools erstellen.
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 einfachen Gruppe 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 zu 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: Bereiten Sie Ihr ADLS Gen2-Speicherkonto vor
Synapse-Arbeitsbereiche verwenden Standard-Speichercontainer für:
- Speicherung von zugrunde liegenden Datendateien 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 für Ihren Arbeitsbereich verwendet werden soll. In diesem Dokument wird es
storage1genannt.storage1wird 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 die Seite „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 Rolle Mitwirkender an Storage-Blobdaten Zugriff zuweisen zu SERVICEPRINCIPALMitglieder workspace1_SynapseAdministrators, workspace1_SynapseContributors und workspace1_SynapseComputeOperators
Schritt 3: Erstellen und konfigurieren Sie Ihren Synapse-Arbeitsbereich
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
storage1für das Speicherkonto aus.Wählen Sie
container1für den Container aus, der als „Dateisystem“ verwendet wird.Öffnen Sie
workspace1im Synapse StudioNavigieren Sie in Synapse Studio zu Verwalten>Zugriffssteuerung. Weisen Sie im Arbeitsbereich Synapse-Rollen den Sicherheitsgruppen wie folgt zu:
- Weisen Sie
workspace1_SynapseAdministratorsdie Rolle Synapse Administrator zu. - Weisen Sie die Rolle Synapse Contributor
workspace1_SynapseContributorszu. - Weisen Sie
workspace1_SynapseComputeOperatorsdie 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 Verwaltete Identitäten für Azure Synapse Analytics.
Öffnen Sie das Azure-Portal
Ermitteln Sie das Speicherkonto
storage1und danncontainer1.Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Um die Seite Rollenzuweisung hinzufügen zu öffnen, wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus.
Weisen Sie die folgende Rolle zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Einstellung Wert Rolle Mitwirkender an Storage-Blobdaten Zugriff zuweisen zu MANAGEDIDENTITY Mitglieder 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.
Azure-Portal öffnen
Suchen Sie den Arbeitsbereich,
workspace1Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Um die Seite Rollenzuweisung hinzufügen zu öffnen, wählen Sie Hinzufügen>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 Rolle Mitwirkende (unter „Privilegierte Administratorrollen“ aufgeführt) Zugriff zuweisen zu SERVICEPRINCIPALMitglieder workspace1_SynapseAdministrators
Schritt 6: Eine SQL Microsoft Entra ID Admin-Rolle zuweisen
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_SQLAdminsaus.
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: Zugriff auf SQL-Pools gewähren
Dem Synapse-Administrator wird standardmäßig auch die SQL-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
workspace1_SynapseAdministrators-Gruppe ausgeführt werden.Zum Gewähren des Zugriffs auf den serverlosen SQL-Pool, „Built-in“, können Skripts von jedem Mitglied der Gruppe
workspace1_SQLAdminsoder der Gruppeworkspace1_SynapseAdministratorsausgefü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 arbeitsbereichsbezogene Berechtigungen konfigurieren ist eine Ausnahme von der Regel und ermöglicht es Ihnen, einem Benutzer die Rolle des Systemadministrators auf Arbeitsbereichsebene zuzuweisen.
Schritt 7a: Serverless 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.
Datenbankbezogene 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;Benutzer in Ihrer Datenbank erstellen. Ä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
Arbeitsbereichsbezogene 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 requiredWeisen 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. Allerdings ist die db_owner-Berechtigung notwendig, damit Spark-Nutzer direkt von Spark in oder aus einem SQL-Pool lesen und schreiben können.
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 oder aus ihnen entfernen, um den Zugriff auf sie 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 daraus.
Schritt 9: Netzwerksicherheit
Als abschließenden Schritt, um Ihren Arbeitsbereich zu schützen, sichern Sie den Netzwerkzugang mit der Workspace-Firewall.
- Sowohl mit als auch ohne ein verwaltetes virtuelles Netzwerk können Sie von öffentlichen Netzwerken aus eine Verbindung mit Ihrem Arbeitsbereich herstellen. Weitere Informationen finden Sie unter Azure Synapse Analytics Verbindungseinstellungen.
- Kontrollieren Sie den Zugriff aus öffentlichen Netzwerken, indem Sie das Feature für den öffentlichen Netzwerkzugriff oder die Firewall des Arbeitsbereichs aktivieren.
- Alternativ können Sie mithilfe eines verwalteten privaten Endpunkts und Azure Private Link for Azure Synapse Analytics eine Verbindung mit Ihrem Arbeitsbereich herstellen. Azure Synapse Arbeitsbereiche, die das Azure Synapse Analytics Managed Virtual Network nicht verwenden, können sich nicht über verwaltete private Endpunkte verbinden.
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:
Git-Unterstützung für den Arbeitsbereich für erweiterte Entwicklungsszenarien einschließlich CI/CD aktivieren. Im Git-Modus bestimmen Git-Berechtigungen und Synapse-RBAC, ob ein*e Benutzer*in Änderungen in seinem bzw. ihrem Arbeitsbranch committen 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.
Schränken Sie den Entwicklerzugriff auf bestimmte Ressourcen ein. 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.
Zugriff von Operatoren auf Codeartefakte einschränken. 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.
Lokale Authentifizierung deaktivieren. 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.