Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Stel een gecontroleerde uitvoeringsomgeving in, beheer het uitgaand verkeer van gegevens en dwing minimale bevoegdheden af terwijl beveiligde geheime toegang wordt ingeschakeld.
Beheerd privé-eindpunt (MPE)
Scenario: U bent een data engineer die werkt met gevoelige gegevens in Fabric Spark. Uw beveiligingsteam heeft een vereiste om alle codes in een geïsoleerde netwerkomgeving uit te voeren voor verbeterde beveiliging.
Managed Virtual Network (VNets) inschakelen. Zie de openbare documentatie om beheerde VNets in te schakelen. Microsoft Fabric maakt en beheert beheerde virtuele netwerken (VNets) voor elke Fabric-werkruimte. Ze bieden netwerkisolatie voor Fabric Spark-workloads, wat betekent dat Microsoft Fabric de rekenclusters in een toegewezen netwerk per werkruimte implementeert, waardoor ze uit het gedeelde virtuele netwerk worden verwijderd.
Gebruik in productie beheerde VNets voor de veilige uitvoering van Spark Notebooks.
Wanneer u een beheerd privé-eindpunt (MPE) maakt, wordt het standaard gemaakt op werkruimteniveau.
Wanneer u Private Link (PL) inschakelt op tenantniveau, schakelt het systeem beheerde VNets in voor alle werkruimten in de tenant. Nadat u de PL-instelling hebt ingeschakeld, maakt het systeem een beheerd virtueel netwerk voor de werkruimte wanneer u de eerste Spark-taak uitvoert (Notebook- of Spark-taakdefinities). Het systeem maakt ook het virtuele netwerk wanneer u een Lakehouse-bewerking uitvoert, zoals Laden naar tabel of een onderhoudsbewerking voor tabellen (optimaliseren of vacuüm).
Opmerking
Wanneer u beheerde VNets inschakelt, zijn startersgroepen niet meer beschikbaar omdat ze worden uitgevoerd in een gedeeld netwerk.
Uitgaande toegangsbeveiliging voor werkruimten (WS OAP)
Scenario: U bent bezorgd dat iemand per ongeluk productiegegevens naar niet-geautoriseerde bestemmingen schrijft met behulp van Spark-notebooks en dat u dit wilt beheren.
Uitgaande toegangsbeveiliging voor werkruimten inschakelen (WS OAP). Dit zorgt ervoor dat uitgaande internetverbinding van Spark alleen naar goedgekeurde bestemmingen gaat via beheerde privé-eindpunten.
- Openbare bibliotheken blokkeren: hiermee blokkeert u ook de installatie van openbare bibliotheken (van PyPi, Maven, enzovoort). Daarom moet u uw bibliotheken verpakken als JAR- of Wheel-bestanden, aangepaste bibliotheken uploaden naar de omgeving of naar resources en installeren met % pip install in de Notebooks. Let op: als u deze toevoegt aan resources en installeert met inline %pip install, is de publicatietijd van de omgeving korter. Dit is handig voor snelle ontwikkeling en testen. Als u de pakketten in verschillende notebooks opnieuw wilt gebruiken, wordt het publiceren naar de omgeving aanbevolen. Een andere methode is het maken van verbinding met uw privéopslagplaats. Raadpleeg voor meer informatie de documentatie over uitgaande toegangsbeveiliging van werkruimte voor data-engineering workloads
Scenario: Moet u WS OAP inschakelen in ontwikkelomgevingen?
Overweeg om WS OAP niet in te schakelen in ontwikkelings- of lagere werkruimten, omdat dit van invloed is op het ontwikkelingsproces. Zodra de Notebook- of Spark-taakdefinities (SJD's) zijn getest met openbare bibliotheken, test u hetzelfde notebook met aangepaste bibliotheken. Nadat u de juiste codebeoordelingen hebt uitgevoerd, implementeert u deze in hogere omgevingen en schakelt u WS OAP in. Als u zelfs de ontwikkelomgeving wilt beveiligen, kunt u WS OAP inschakelen, maar dit kan het ontwikkelingsproces belemmeren. Starterspools zijn niet beschikbaar wanneer u WS OAP inschakelt.
Toegang tot Azure Key Vault (AKV) vanuit Notebook
Scenario: U bent een data engineer en u wilt verbinding maken met meerdere gegevensbronnen met behulp van beveiligde referenties van Spark Notebooks.
Sla de referenties veilig op in Azure Key Vault (AKV). Bewaar niet één sleutelkluis om alle geheimen op te slaan. Gebruik in plaats daarvan meerdere sleutelkluizen op basis van projecten/domeinen, indien mogelijk.
Toegang tot Azure Key Vault (AKV) vanuit Notebook
Netwerk: U wordt aangeraden uw AKV te beveiligen met firewallregels om alleen toegang vanaf bekende netwerken toe te staan. U staat echter ip-adressen van Fabric Spark toe in uw firewallregels. Als u veilig verbinding wilt maken met beveiligde AKV's van Fabric Spark Notebooks, raden we u aan een beheerd privé-eindpunt te maken voor AKV. Eén AKV kan maximaal 64 privé-eindpunten ondersteunen (Azure-abonnements- en servicelimieten, quota en beperkingen).
Authenticatie: Het systeem voert Fabric Spark Notebooks en SJD's uit binnen de context van de gebruiker die de jobs of notebooks indient. Voor toegang tot de AKV moet de verzendende gebruiker voldoende toegang hebben om het geheim op te halen ('Key Vault Secrets Officer'). Raadpleeg de best practices van AKV: Toegang verlenen tot toepassingen voor toegang tot een Azure-sleutelkluis met behulp van Azure RBAC.
- U kunt notebookutils (voorheen mssparkutils genoemd) gebruiken om toegang te krijgen tot de AKV met behulp van de referenties van de gebruiker die notebook/SJD uitvoert:
notebookutils.credentials.getSecret('<AKV URL>', 'Secret Name')In productie raden we u niet aan om gebruikerstoegang te verlenen tot AKV's in een prod-omgeving. Gebruik in plaats daarvan serviceaccounts voor toegang tot uw Key Vault (KV). Verzend de notebooks/taken met behulp van een serviceaccount.
In sommige gevallen heeft het serviceaccount dat de taak uitvoert toegang om geheimen van AKV te lezen.
In sommige gevallen is dit serviceaccount meestal een DevOps-account dat mogelijk geen toegang heeft tot het lezen van geheimen van AKV. In dergelijke gevallen is de referentieopbouwer handig om met behulp van een andere Service Principal Name (SPN) toegang te krijgen tot de AKV.
Dit is het voorbeeldcodefragment 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}")
Opmerking
Codeer geen geheimen of wachtwoorden in tekst zonder opmaak in uw code. Gebruik altijd een beveiligde kluis (zoals Azure Key Vault) om uw geheimen op te slaan en op te halen.