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üssen
  • workspace1_SynapseComputeOperators für Benutzer, die Apache Spark-Pools und Integration Runtimes verwalten und überwachen müssen
  • workspace1_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

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 dies container1.

  • 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

    Seite „Rollenzuweisung hinzufügen“ im Azure-Portal

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 Studio

  • Navigieren 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.

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 dann container1.

  • 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.

    Seite „Rollenzuweisung hinzufügen“ im Azure-Portal

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

    Seite „Rollenzuweisung hinzufügen“ im Azure-Portal

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:

  1. Um Benutzern Zugriff auf den serverlosen SQL-Pool 'Built-in' und seine Datenbanken zu gewähren.

  2. Um Benutzern Zugriff auf spezielle SQL-Pool-Datenbanken zu gewähren. Beispiel SQL-Skripts sind später in diesem Artikel enthalten.

  3. 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.

  4. Zum Gewähren des Zugriffs auf den serverlosen SQL-Pool „Built-in“ können Skripts von jedem Mitglied der Gruppen workspace1_SQLAdmins oder workspace1_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:

  1. Erstellen Sie einen Anmeldenamen. Wechseln Sie in den master-Datenbankkontext.

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. 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];
    
  3. 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:

  1. 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
    
  2. 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.

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.