Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustanów kontrolowane środowisko wykonywania, zarządzaj ruchem wychodzącym danych i egzekwuj zasadę najmniejszych uprawnień, jednocześnie umożliwiając bezpieczny dostęp do tajnych danych.
Zarządzany prywatny punkt końcowy (MPE)
Scenariusz: Jesteś inżynierem danych pracującym z danymi poufnymi w Fabric Spark. Zespół ds. zabezpieczeń musi uruchamiać wszystkie kody w izolowanym środowisku sieciowym w celu zapewnienia zwiększonych zabezpieczeń.
Włącz zarządzaną sieć wirtualną (VNets). Aby włączyć zarządzane sieci wirtualne, zobacz publiczną dokumentację. Usługa Microsoft Fabric tworzy i zarządza zarządzanymi sieciami wirtualnymi dla każdego obszaru roboczego Fabric. Zapewniają one izolację sieci dla obciążeń Fabric Spark, co oznacza, że usługa Microsoft Fabric wdraża klastry obliczeniowe w dedykowanej sieci dla każdej przestrzeni roboczej, usuwając je z udostępnionej sieci wirtualnej.
W środowisku produkcyjnym użyj zarządzanych VNets do bezpiecznego wykonywania notatników Spark.
Podczas tworzenia zarządzanego prywatnego punktu końcowego (MPE) jest on tworzony domyślnie na poziomie obszaru roboczego.
Po włączeniu Private Link (PL) na poziomie dzierżawy, system włącza zarządzane sieci wirtualne (VNets) dla wszystkich obszarów roboczych w tej dzierżawie. Po włączeniu ustawienia PL system tworzy zarządzaną sieć wirtualną dla obszaru roboczego podczas uruchamiania pierwszego zadania platformy Spark (Notes lub Definicje zadań platformy Spark). System tworzy również sieć wirtualną podczas wykonywania operacji Lakehouse, takich jak ładowanie do tabeli lub operacje konserwacji tabeli (optymalizacja lub vacuum).
Uwaga / Notatka
Po włączeniu zarządzanych sieci VNet pule początkowe stają się niedostępne, ponieważ działają w wspólnej sieci.
Ochrona dostępu wychodzącego przestrzeni roboczej (WS OAP)
Scenariusz: Obawiasz się, że ktoś może nieświadomie zapisać dane produkcyjne w nieautoryzowanych miejscach docelowych przy użyciu notebooków Spark i chcesz to kontrolować.
Włącz ochronę dostępu wychodzącego obszaru roboczego (WS OAP). Gwarantuje to, że wychodząca łączność internetowa z platformy Spark przechodzi tylko do zatwierdzonych miejsc docelowych za pośrednictwem zarządzanych prywatnych punktów końcowych.
- Blokowanie bibliotek publicznych: blokuje to również instalację bibliotek publicznych (z PyPi, Maven itp.). W związku z tym należy spakować biblioteki jako pliki JAR lub Wheel i przesłać biblioteki niestandardowe do środowiska lub do zasobów oraz zainstalować je za pomocą polecenia %pip install wewnątrz Notatników. Należy pamiętać, że jeśli dodasz go do zasobów i zainstalujesz za pomocą wbudowanego polecenia %pip install, czas publikacji środowiska jest krótszy. Jest to przydatne w przypadku szybkiego programowania i testowania. Aby ponownie używać pakietów w różnych notebookach, zaleca się ich publikowanie do odpowiedniego środowiska. Inną metodą jest nawiązanie połączenia z repozytorium prywatnym. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą ochrony dostępu wychodzącego obszaru roboczego dla obciążeń inżynieryjnych danych
Scenariusz: Czy należy włączyć protokół OAP WS w środowiskach deweloperskich?
Rozważ wyłączenie funkcji OAP WS w programistycznym lub niższych obszarach roboczych, ponieważ ma to wpływ na proces programowania. Po przetestowaniu notesu lub definicji zadań platformy Spark (SJD) przy użyciu bibliotek publicznych przetestuj ten sam notes przy użyciu bibliotek niestandardowych. Po prawidłowych przeglądach kodu wdróż do wyższych środowisk, a następnie włącz WS OAP. Jeśli chcesz chronić nawet środowisko programistyczne, możesz włączyć WS OAP, ale może to utrudnić proces programowania. Pule startowe nie są dostępne po włączeniu WS OAP.
Uzyskiwanie dostępu do usługi Azure Key Vault (AKV) z notesu
Scenariusz: Jesteś inżynierem danych i chcesz nawiązać połączenie z wieloma źródłami danych przy użyciu zabezpieczonych poświadczeń z notesów platformy Spark.
Bezpieczne przechowywanie poświadczeń w usłudze Azure Key Vault (AKV). Nie należy używać jednego sejfu kluczy do przechowywania wszystkich sekretów. Zamiast tego należy użyć wielu magazynów kluczy opartych na projektach/domenach, jeśli to możliwe.
Uzyskiwanie dostępu do usługi Azure Key Vault (AKV) z notesu
Sieć: Zalecamy ochronę usługi AKV za pomocą reguł firewalla, aby zezwolić na dostęp tylko z znanych sieci. Jednak zezwalasz na adresy IP Fabric Spark w regułach zapory. Aby bezpiecznie nawiązać połączenie z chronionymi AKV z poziomu Fabric Spark Notebooks, zalecamy utworzenie zarządzanego prywatnego punktu końcowego do usługi AKV. Usługa AKV może obsługiwać maksymalnie 64 prywatne punkty końcowe (limity subskrypcji i usług platformy Azure, limity przydziału i ograniczenia).
Uwierzytelnianie: System wykonuje notatniki Fabric Spark i SJDs w kontekście użytkownika, który przesyła zadania/notatniki. Aby uzyskać dostęp do usługi AKV, użytkownik powinien mieć odpowiednie uprawnienia do pobrania tajemnicy ("Key Vault Secrets Officer"). Zapoznaj się z najlepszymi praktykami dotyczącymi usługi AKV: Udziel aplikacjom uprawnień dostępu do magazynu kluczy Azure przy użyciu kontroli dostępu opartej na rolach Azure.
- Możesz użyć notebookutils (wcześniej nazywane mssparkutils), aby uzyskać dostęp do AKV przy użyciu poświadczeń użytkownika uruchamiającego Notebook/SJD.
notebookutils.credentials.getSecret('<AKV URL>', 'Secret Name')W środowisku produkcyjnym nie zalecamy udostępniania użytkownikom dostępu do AKVs w środowisku produkcyjnym. Zamiast tego użyj kont usług, aby uzyskać dostęp do usługi Key Vault (KV). Prześlij notesy/zadania przy użyciu konta usługi.
W niektórych przypadkach konto usługowe przesyłające zadanie ma dostęp do odczytu sekretów z AKV.
W niektórych przypadkach konto usługi to zazwyczaj konto DevOps, które może nie mieć dostępu do odczytu tajemnic z Azure Key Vault (AKV). W takich przypadkach narzędzie do tworzenia poświadczeń jest przydatne w uzyskiwaniu dostępu do AKV przy użyciu innej głównej nazwy usługi (SPN).
Oto przykładowy fragment kodu Scala:
val clientSecretCredential: ClientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("<client id here>")
.clientSecret("<client secret here>")
.tenantId("<tenant id here>")
.build()
val secretClient: SecretClient = new SecretClientBuilder()
.vaultUrl("<vault url here>")
.credential(clientSecretCredential)
.buildClient()
val secretName = "<your value>"
val retrievedSecret = secretClient.getSecret(secretName)
println(s"Retrieved secret: ${retrievedSecret.getValue}")
Uwaga / Notatka
Nie koduj żadnych wpisów tajnych ani haseł w postaci zwykłego tekstu w kodzie. Zawsze używaj bezpiecznego magazynu (na przykład usługi Azure Key Vault) do przechowywania i pobierania wpisów tajnych.