Udostępnij przez


Jak skonfigurować kontrolę dostępu dla obszaru roboczego usługi Azure Synapse

W tym artykule przedstawiono sposób kontrolowania dostępu do obszaru roboczego usługi Microsoft Azure Synapse. Użyjemy kombinacji ról platformy Azure, ról usługi Azure Synapse, uprawnień SQL i uprawnień usługi Git, aby to osiągnąć.

W tym przewodniku skonfigurujesz obszar roboczy i skonfigurujesz podstawowy system kontroli dostępu. Te informacje można używać w wielu typach projektów usługi Synapse. Dostępne są również zaawansowane opcje dla bardziej szczegółowej kontrolki, jeśli jej potrzebujesz.

Kontrolę dostępu usługi Synapse można uprościć, dostosowując role i osoby w organizacji do grup zabezpieczeń. Umożliwia to zarządzanie dostępem do grup zabezpieczeń po prostu przez dodawanie i usuwanie użytkowników.

Przed rozpoczęciem tego przewodnika zapoznaj się z omówieniem kontroli dostępu usługi Azure Synapse, aby zapoznać się z mechanizmami kontroli dostępu używanymi przez usługę Synapse Analytics.

Mechanizmy kontroli dostępu

Uwaga

Podejście w tym przewodniku polega na tworzeniu grup zabezpieczeń. Po przypisaniu ról do tych grup zabezpieczeń wystarczy zarządzać członkostwem w tych grupach, aby kontrolować dostęp do obszarów roboczych.

Aby zabezpieczyć obszar roboczy usługi Synapse, skonfigurujesz następujące elementy:

  • Grupy zabezpieczeń służące do grupowania użytkowników z podobnymi wymaganiami dotyczącymi dostępu.
  • Role platformy Azure służące do kontrolowania, kto może tworzyć pule SQL, pule platformy Apache Spark i środowiska Integration Runtime oraz zarządzać nimi, a także uzyskiwać dostęp do magazynu usługi ADLS Gen2.
  • Role usługi Synapse służące do kontrolowania dostępu do opublikowanych artefaktów kodu oraz korzystania z zasobów obliczeniowych platformy Apache Spark i środowisk Integration Runtime.
  • Uprawnienia SQL służące do kontrolowania dostępu administracyjnego i dostępu do płaszczyzny danych pul SQL.
  • Uprawnienia usługi Git umożliwiające kontrolowanie, kto może uzyskiwać dostęp do artefaktów kodu w kontroli źródła, jeśli skonfigurujesz obsługę usługi Git dla obszarów roboczych.

Procedura zabezpieczania obszaru roboczego usługi Synapse

Ten dokument używa nazw standardowych, aby uprościć instrukcje. Zastąp je wybranymi nazwami.

Ustawienie Nazwa Standardowa Opis
Obszar roboczy usługi Synapse workspace1 Nazwa, którą będzie miał obszar roboczy usługi Azure Synapse.
konto ADLSGEN2 storage1 Konto usługi ADLS do wykorzystania w obszarze roboczym.
Kontener container1 Kontener w magazynie storage1, który będzie domyślnie używany przez obszar roboczy.
Dzierżawa identyfikatora entra firmy Microsoft contoso Nazwa dzierżawy Microsoft Entra ID.
Główna usługa SERVICEPRINCIPAL Główna usługa serwisowa w dzierżawie Microsoft Entra ID.

Krok 1. Konfigurowanie grup zabezpieczeń

Wskazówka

Zachęcamy do używania szczegółowych opcji w celu kontrolowania dostępu do obszaru roboczego, udzielania deweloperom dostępu do poszczególnych zasobów, a nie całego obszaru roboczego. Dowiedz się więcej o Synapse RBAC.

Utwórz następujące grupy zabezpieczeń dla obszaru roboczego:

  • workspace1_SynapseAdministrators, dla użytkowników, którzy potrzebują pełnej kontroli nad obszarem roboczym. Dodaj siebie do tej grupy zabezpieczeń, przynajmniej początkowo.
  • workspace1_SynapseContributors, dla deweloperów, którzy muszą opracowywać, debugować i publikować kod w usłudze.
  • workspace1_SynapseComputeOperators, dla użytkowników, którzy muszą zarządzać pulami platformy Apache Spark i środowiskami Integration Runtime oraz monitorować je.
  • workspace1_SynapseCredentialUsers, dla użytkowników, którzy muszą debugować i uruchamiać potoki orkiestracji, używając poświadczeń MSI (zarządzanej tożsamości usługi) obszaru roboczego i anulować uruchomienia potoku.

Wkrótce przypiszesz role usługi Synapse do tych grup w zakresie obszaru roboczego.

Utwórz również tę grupę zabezpieczeń:

  • workspace1_SQLAdmins, grupa dla użytkowników, którzy potrzebują uprawnień administratora w ramach usługi Active Directory dla SQL, w pulach SQL w obszarze roboczym.

Grupa do konfigurowania workspace1_SQLAdmins uprawnień SQL podczas tworzenia pul SQL.

Te pięć grup jest wystarczające do podstawowej konfiguracji. Później można dodać grupy zabezpieczeń do obsługi użytkowników, którzy potrzebują bardziej wyspecjalizowanego dostępu lub ograniczyć dostęp tylko do poszczególnych zasobów.

Uwaga

Wskazówka

Indywidualni użytkownicy usługi Synapse mogą używać identyfikatora Entra firmy Microsoft w witrynie Azure Portal do wyświetlania członkostw w grupach. Dzięki temu mogą określić, jakie role im przyznano.

Krok 2. Przygotowanie konta magazynu usługi ADLS Gen2

Domyślne kontenery magazynowe są używane przez obszary robocze Synapse do:

  • Przechowywanie plików danych zapasowych dla tabel platformy Spark
  • Dzienniki wykonywania dla zadań platformy Spark
  • Zarządzanie bibliotekami, które chcesz zainstalować

Zidentyfikuj następujące informacje o pamięci masowej:

  • Konto ADLS Gen2 do wykorzystania w obszarze roboczym. Ten dokument wywołuje go storage1. storage1 jest uznawane za "podstawowe" konto magazynu dla obszaru roboczego.

  • Kontener w storage1, który będzie domyślnie używany przez twój obszar roboczy Synapse. Ten dokument wywołuje go container1.

  • Wybierz pozycję Kontrola dostępu (IAM).

  • Kliknij pozycję Dodaj>Dodaj przypisanie roli, aby otworzyć stronę przypisania roli.

  • Przypisz następującą rolę. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

    Ustawienie Wartość
    Rola Współautor danych w usłudze Storage Blob
    Przydziel dostęp do SERVICEPRINCIPAL
    Członkowie workspace1_SynapseAdministrators, workspace1_SynapseContributors i workspace1_SynapseComputeOperators

    Dodaj stronę przypisania roli w witrynie Azure Portal.

Krok 3. Tworzenie i konfigurowanie obszaru roboczego usługi Synapse

W witrynie Azure Portal utwórz obszar roboczy usługi Synapse:

  • Wybierz swoją subskrypcję

  • Wybierz lub utwórz grupę zasobów, dla której masz rolę właściciela platformy Azure.

  • Nazwij obszar roboczy workspace1

  • Wybierz storage1 konto magazynowe

  • Wybierz container1 kontener używany jako "system plików".

  • Otwórz workspace1 w programie Synapse Studio

  • W programie Synapse Studio przejdź do pozycji Zarządzanie>kontrolą dostępu. W zakresie obszaru roboczego przypisz role usługi Synapse do grup zabezpieczeń w następujący sposób:

    • Przypisywanie roli administratora usługi Synapse doworkspace1_SynapseAdministrators
    • Przypisywanie roli Współautor usługi Synapse doworkspace1_SynapseContributors
    • Przypisz rolę operatora obliczeniowego Synapse do workspace1_SynapseComputeOperators

Krok 4. Udzielanie domyślnemu kontenerowi magazynu tożsamości usługi zarządzanej obszaru roboczego

Aby uruchamiać potoki i wykonywać zadania systemowe, usługa Azure Synapse wymaga tożsamości usługi zarządzanej (MSI) w celu uzyskania dostępu do container1 domyślnego konta usługi ADLS Gen2 dla obszaru roboczego. Aby uzyskać więcej informacji, zobacz Zarządzana tożsamość obszaru roboczego Azure Synapse.

  • Otwórz witrynę Azure Portal.

  • Zlokalizuj konto magazynu storage1, a następnie container1.

  • Wybierz pozycję Kontrola dostępu (IAM).

  • Aby otworzyć stronę Dodaj przypisanie roli, wybierz Dodaj>Dodaj przypisanie roli.

  • Przypisz następującą rolę. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

    Ustawienie Wartość
    Rola Współautor danych w usłudze Storage Blob
    Przydziel dostęp do TOŻSAMOŚĆ ZARZĄDZANA
    Członkowie nazwa tożsamości zarządzanej

    Uwaga

    Nazwa tożsamości zarządzanej jest również nazwą obszaru roboczego.

    Dodaj stronę przypisania roli w witrynie Azure Portal.

Krok 5. Udzielanie administratorom usługi Synapse roli Współautor platformy Azure dla obszaru roboczego

Aby utworzyć pule SQL, pule platformy Apache Spark i środowiska Integration Runtime, użytkownicy potrzebują co najmniej roli Współautor platformy Azure dla obszaru roboczego. Rola Współpracownika umożliwia również użytkownikom zarządzanie zasobami, w tym wstrzymywanie i skalowanie. Aby korzystać z portalu Azure lub Synapse Studio do tworzenia pul SQL, pul Apache Spark i środowisk uruchomieniowych integracji, musisz mieć rolę współautora na poziomie grupy zasobów.

  • Otwórz witrynę Azure Portal.

  • Znajdź obszar roboczy, workspace1

  • Wybierz pozycję Kontrola dostępu (IAM).

  • Aby otworzyć stronę Dodaj przypisanie roli, wybierz Dodaj>przypisanie roli.

  • Przypisz następującą rolę. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

    Ustawienie Wartość
    Rola Współautor (wymieniony w obszarze "Role administratora uprzywilejowanego")
    Przydziel dostęp do SERVICEPRINCIPAL
    Członkowie workspace1_SynapseAdministrators

    Dodaj stronę przypisania roli w witrynie Azure Portal.

Krok 6. Przypisywanie roli administratora usługi SQL Active Directory

Twórca obszaru roboczego jest automatycznie przypisywany jako administrator usługi SQL Active Directory dla obszaru roboczego. Tę rolę można udzielić tylko jednemu użytkownikowi lub grupie. W tym kroku przypisujesz administratora usługi SQL Active Directory dla obszaru roboczego do grupy zabezpieczeń workspace1_SQLAdmins. Zapewnia to grupie wysoce uprzywilejowany dostęp administratora do wszystkich pul SQL i baz danych w obszarze roboczym.

  • Otwórz witrynę Azure Portal.
  • Przejdź do strony workspace1
  • W obszarze Ustawienia wybierz pozycję Microsoft Entra ID
  • Wybierz opcję Ustaw administratora i zaznacz workspace1_SQLAdmins

Uwaga

Krok 6 jest opcjonalny. Możesz przyznać workspace1_SQLAdmins grupie mniej uprzywilejowaną rolę. Aby przypisać db_owner lub inne role SQL, należy uruchomić skrypty w każdej bazie danych SQL.

Krok 7. Udzielanie dostępu do pul SQL

Administrator usługi Synapse domyślnie otrzymuje rolę SQL dla bezserwerowych pul SQL db_owner w obszarze roboczym.

Dostęp do pul SQL dla innych użytkowników jest kontrolowany przez uprawnienia SQL. Przypisywanie uprawnień SQL wymaga uruchomienia skryptów SQL po utworzeniu każdej bazy danych SQL. Poniżej przedstawiono przykłady, które wymagają uruchomienia tych skryptów:

  1. Aby udzielić użytkownikom dostępu do bezserwerowej puli SQL, "wbudowanej" i jej baz danych.

  2. Aby udostępnić użytkownikom dostęp do dedykowanych baz danych puli SQL. Przykładowe skrypty SQL znajdują się w dalszej części tego artykułu.

  3. Aby udzielić dostępu do dedykowanej bazy danych puli SQL, skrypty mogą być uruchamiane przez twórcę obszaru roboczego lub dowolnego członka workspace1_SynapseAdministrators grupy.

  4. Aby udzielić dostępu do wbudowanej bezserwerowej puli SQL, skrypty mogą być uruchamiane przez dowolnego członka grupy workspace1_SQLAdmins lub grupy workspace1_SynapseAdministrators.

Wskazówka

Dostęp do wszystkich baz danych SQL można udzielić, wykonując następujące kroki dla każdej puli SQL. Sekcja Konfigurowanie uprawnień o zakresie obszaru roboczego jest wyjątkiem od reguły i umożliwia przypisanie użytkownikowi roli administratora systemu na poziomie obszaru roboczego.

Krok 7a. Bezserwerowa pula SQL, wbudowana

Przykłady skryptów w tej sekcji umożliwiają użytkownikom dostęp do pojedynczej bazy danych lub wszystkich baz danych w bezserwerowej puli SQL. Built-in

Uwaga

W przykładach skryptów zastąp alias aliasem użytkownika lub grupy, któremu udzielono dostępu. Zastąp domenę domeną firmy, której używasz.

Konfigurowanie uprawnień o zakresie bazy danych

Możesz udzielić użytkownikom dostępu do pojedynczej bezserwerowej bazy danych SQL, wykonując kroki opisane w tym przykładzie:

  1. Utwórz identyfikator logowania. Przejdź do master kontekstu bazy danych.

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Utwórz użytkownika w bazie danych. Zmień kontekst na bazę danych.

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Dodaj użytkownika jako członka określonej roli w bazie danych (w tym przypadku rolę db_owner ).

    ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
    

Konfigurowanie uprawnień o zakresie obszaru roboczego

Możesz udzielić pełnego dostępu do wszystkich bezserwerowych pul SQL w obszarze roboczym. Uruchom skrypt z tego przykładu w bazie danych master.

CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];

Krok 7b. Konfigurowanie dedykowanych pul SQL

Możesz udzielić dostępu do pojedynczej, dedykowanej bazy danych puli SQL. Wykonaj następujące kroki w edytorze skryptów sql usługi Azure Synapse:

  1. Utwórz użytkownika w bazie danych, uruchamiając następujące polecenia. Wybierz docelową bazę danych z listy rozwijanej Połącz z :

    --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. Udziel użytkownikowi roli w celu uzyskania dostępu do bazy danych:

    --Grant role to the user in the database
    EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
    

Ważne

db_datareader i db_datawriter role bazy danych mogą zapewniać uprawnienia do odczytu/zapisu, gdy nie chcesz nadawać db_owner uprawnień. Jednak uprawnienie db_owner jest niezbędne dla użytkowników platformy Spark do bezpośredniego odczytu i zapisu z/do puli SQL.

Po utworzeniu użytkowników można uruchamiać zapytania, aby potwierdzić, że bezserwerowe pule SQL mogą wykonywać zapytania dotyczące kont magazynu.

Krok 8. Dodawanie użytkowników do grup zabezpieczeń

Początkowa konfiguracja systemu kontroli dostępu została ukończona.

Teraz możesz dodawać i usuwać użytkowników do skonfigurowanych grup zabezpieczeń, aby zarządzać dostępem do nich. Możesz ręcznie przypisać użytkowników do ról usługi Azure Synapse, ale powoduje to niespójne ustawianie uprawnień. Zamiast tego należy dodawać i usuwać użytkowników tylko do grup zabezpieczeń.

Krok 9. Zabezpieczenia sieci

W ostatnim kroku w celu zabezpieczenia obszaru roboczego należy zabezpieczyć dostęp sieciowy przy użyciu zapory obszaru roboczego.

  • Zarówno z zarządzaną siecią wirtualną, jak i bez niej, można nawiązać połączenie z publicznych sieci do obszaru roboczego. Aby uzyskać więcej informacji, zobacz Ustawienia łączności.
  • Dostęp z sieci publicznych można kontrolować przez włączenie funkcji dostępu do sieci publicznej lub zapory obszaru roboczego.
  • Alternatywnie możesz nawiązać połączenie z obszarem roboczym przy użyciu zarządzanego prywatnego punktu końcowego i łącza prywatnego. Obszary robocze usługi Azure Synapse bez zarządzanej sieci wirtualnej usługi Azure Synapse Analytics nie mają możliwości łączenia się za pośrednictwem zarządzanych prywatnych punktów końcowych.

Krok 10. Ukończenie

Obszar roboczy jest teraz w pełni skonfigurowany i zabezpieczony.

Obsługa bardziej zaawansowanych scenariuszy

Ten przewodnik koncentruje się na konfigurowaniu podstawowego systemu kontroli dostępu. Bardziej zaawansowane scenariusze można obsługiwać, tworząc inne grupy zabezpieczeń i przypisując im bardziej szczegółowe role w bardziej szczegółowych zakresach. Rozważ następujące przypadki:

Włącz obsługę usługi Git dla obszaru roboczego w celu uzyskania bardziej zaawansowanych scenariuszy programowania, w tym ciągłej integracji/ciągłego wdrażania. W trybie Git uprawnienia usługi Git i kontrola RBAC usługi Synapse określają, czy użytkownik może zatwierdzić zmiany w gałęzi roboczej. Publikowanie w usłudze odbywa się tylko z gałęzi współpracy. Rozważ utworzenie grupy zabezpieczeń dla deweloperów, którzy muszą opracowywać i debugować aktualizacje w gałęzi roboczej, ale nie muszą publikować zmian w usłudze na żywo.

Ogranicz dostęp deweloperów do określonych zasobów. Utwórz inne bardziej szczegółowe grupy zabezpieczeń dla deweloperów, którzy potrzebują dostępu tylko do określonych zasobów. Przypisz te grupy odpowiednie role usługi Azure Synapse, które są ograniczone do określonych pul platformy Spark, środowisk Integration Runtime lub poświadczeń.

Ogranicz operatorom dostęp do artefaktów kodu. Utwórz grupy zabezpieczeń dla operatorów, którzy muszą monitorować stan operacyjny zasobów obliczeniowych usługi Synapse i wyświetlać dzienniki, ale którzy nie potrzebują dostępu do kodu lub publikowania aktualizacji w usłudze. Przypisz tym grupom rolę Operatora obliczeniowego w zakresie określonych pul Spark i środowisk uruchomieniowych Integration.

Wyłącz uwierzytelnianie lokalne. Zezwalając tylko na uwierzytelnianie firmy Microsoft Entra, można centralnie zarządzać dostępem do zasobów usługi Azure Synapse, takich jak pule SQL. Uwierzytelnianie lokalne dla wszystkich zasobów w obszarze roboczym można wyłączyć podczas tworzenia obszaru roboczego lub po jego utworzeniu. Aby uzyskać więcej informacji na temat uwierzytelniania tylko w usłudze Microsoft Entra, zobacz Wyłączanie uwierzytelniania lokalnego w usłudze Azure Synapse Analytics.