Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A proteção de acesso de saída do espaço de trabalho permite o controle preciso sobre comunicações externas dos espaços de trabalho do Microsoft Fabric. Quando esta funcionalidade está ativada, itens do espaço de trabalho de engenharia de dados, tais como cadernos, definições de trabalhos *Spark* e *lakehouses*, são impedidos de estabelecer ligações de saída a endpoints públicos, a menos que o acesso seja explicitamente concedido através de endpoints privados geridos e aprovados. Esse recurso é crucial para organizações em ambientes seguros ou regulamentados, pois ajuda a evitar a exfiltração de dados e impõe limites de rede organizacional.
Compreender a proteção de acessos de saída com engenharia de dados
Quando a proteção de acesso de saída está ativada, todas as ligações de saída do espaço de trabalho são bloqueadas por defeito. Os administradores de workspace podem então criar exceções para conceder acesso apenas a destinos aprovados, configurando endpoints privados geridos:
Configuração da proteção de acesso externo para engenharia de dados
Para configurar a proteção de acesso de saída para engenharia de dados:
Siga os passos para ativar a proteção de acesso de saída.
Depois de ativar a proteção de acesso de saída, pode configurar endpoints privados geridos para permitir o acesso de saída a outros espaços de trabalho ou recursos externos conforme necessário.
Uma vez configurados, os itens de engenharia de dados só podem ligar-se aos endpoints privados geridos aprovados, enquanto todas as outras ligações de saída permanecem bloqueadas.
Tipos de itens de engenharia de dados suportados
Os seguintes tipos de elementos de engenharia de dados são suportados com proteção de acesso externo:
- Casas dos lagos
- Notebooks
- Definições de trabalho do Spark
- Environments
As secções seguintes explicam como a proteção de acesso de saída afeta tipos específicos de itens de engenharia de dados no seu espaço de trabalho.
Notebooks
Quando a proteção de acesso de saída está ativada num espaço de trabalho, os cadernos de notas podem referir-se a um destino apenas se um ponto de extremidade privado gerido estiver configurado do espaço de trabalho para o destino.
| Fonte | Destino | Um endpoint privado gerenciado está configurado? | O notebook ou o trabalho do Spark conseguem conectar-se ao destino? |
|---|---|---|---|
| Bloco de notas (Espaço de trabalho A) | Lakehouse (Espaço de trabalho B) | Sim, um endpoint privado gerido entre espaços de trabalho de A para B é configurado em A | Yes |
| Bloco de notas (Espaço de trabalho A) | Lakehouse (Espaço de trabalho B) | Não | Não |
| Bloco de notas (Espaço de trabalho A) | Armazenamento externo do Azure Data Lake (ADLS) G2/outra fonte de dados | Sim, um ponto de extremidade privado gerido é configurado a partir de A para a fonte de dados externa | Yes |
| Bloco de notas (Espaço de trabalho A) | ADLS G2 externo/outra fonte de dados | Não | Não |
Entender o comportamento do caminho de ficheiro em Fabric notebooks
Ao aceder a dados no seu Lakehouse a partir de um caderno Fabric, pode consultar ficheiros usando caminhos relativos ou totalmente qualificados (absolutos). Compreender as diferenças é importante para um acesso bem-sucedido aos dados, especialmente ao trabalhar entre espaços de trabalho.
Caminhos relativos
Os caminhos relativos são a forma mais simples e comum de referenciar ficheiros dentro do teu Lakehouse atual. Quando arrasta e larga um ficheiro do explorador Lakehouse para uma célula de caderno, um caminho relativo é usado automaticamente.
Example:
Files/people.csv
Código Spark:
df = spark.read.format("csv").option("header", "true").load("Files/people.csv")
Os caminhos relativos funcionam sem necessidade de configuração adicional e não requerem mais configurações.
Caminhos totalmente qualificados (absolutos)
Caminhos totalmente especificados indicam a localização completa de um ficheiro, incluindo a informação sobre o espaço de trabalho e o Lakehouse. No entanto, usar nomes de exibição nestes caminhos pode causar erros, como timeouts de sockets, porque a sessão Spark não consegue resolvê-los por padrão.
Exemplo incorreto (vai falhar):
abfss://your_workspace@onelake.dfs.fabric.microsoft.com/your_lakehouse.Lakehouse/Files/people.csv
Aceder a dados entre espaços de trabalho
Para aceder a ficheiros num Lakehouse localizado num espaço de trabalho diferente, utilize um caminho totalmente qualificado que inclua o ID do Workspace e o ID do Lakehouse (não os seus nomes de visualização). Isto garante que o Spark pode resolver o caminho e aceder aos dados.
Formato correto do URI:
abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Files/people.csv
Exemplo de código Spark:
df = spark.read.format("csv").option("header", "true").load("abfss://4c8efb42-7d2a-4a87-b1b1-e7e98bea053d@onelake.dfs.fabric.microsoft.com/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/Files/people.csv")
Como encontrar IDs de Workspace e Lakehouse
-
ID do Espaço de Trabalho: O GUID a seguir
/groups/no URL do teu espaço de trabalho do Fabric. -
ID do Lakehouse: O GUID que vem depois de
/lakehouses/na URL.
URL de exemplo:
https://app.fabric.microsoft.com/groups/4c8efb42-7d2a-4a87-b1b1-e7e98bea053d/lakehouses/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/...
Observação
Use sempre o ID do Workspace e o Lakehouse ID no URI ao aceder a dados entre espaços de trabalho.
Tarefas do Spark
Quando a proteção de acesso de saída do espaço de trabalho está ativada, os clusters Spark são impedidos de criar ligações de saída à internet pública. Isto inclui:
- Instalação de pacotes Python diretamente a partir do PyPI usando
pip install - Acesso a domínios públicos como
https://login.microsoftonline.com - Ligação a APIs ou websites externos
O Microsoft Fabric aplica esta restrição através de Redes Virtuais Geridas (VNETs Geridas), que isolam clusters Spark de redes externas, a menos que seja concedido acesso explícito.
Conectividade segura com endpoints privados geridos
Para permitir que os clusters Spark se liguem a recursos externos mantendo a segurança, deve usar endpoints privados geridos. Estes endpoints permitem ligações seguras e aprovadas a:
- Serviços externos (por exemplo, Azure SQL Database, Azure Blob Storage)
- Outros espaços de trabalho de malha dentro do mesmo locatário
Apenas são permitidas ligações estabelecidas através de endpoints privados geridos aprovados. Todas as outras tentativas de acesso de saída são bloqueadas por padrão.
Instalando bibliotecas com segurança em espaços de trabalho protegidos de acesso de saída
Como o Fabric bloqueia o tráfego público da Internet, os clusters do Spark não podem instalar pacotes diretamente do PyPI usando pip installo .
Você tem duas opções seguras para instalar bibliotecas em um espaço de trabalho com a proteção de acesso de saída habilitada:
Carregue e use arquivos de roda: Prepare manualmente os arquivos de roda de pacote Python necessários em um recurso de computação confiável e, em seguida, carregue-os para seu ambiente de malha. Esse método garante que apenas pacotes aprovados sejam instalados e evita o acesso público à Internet.
Hospede um espelho PyPI privado: Configure um repositório PyPI privado no Armazenamento do Azure e sincronize-o com pacotes selecionados do índice PyPI público. Configure seu ambiente Fabric para instalar pacotes desse espelho privado usando pontos de extremidade privados gerenciados, mantendo a conformidade com as políticas de segurança de rede.
Escolha a abordagem que melhor se adapta aos requisitos da sua organização para gerenciamento de pacotes e segurança.
Opção 1: Carregar e utilizar ficheiros de roda
Identifique pacotes ausentes não incluídos no Fabric Spark Runtime.
Execute o script a seguir em seu recurso de computação para configurar um ambiente python local que seja o mesmo que o tempo de execução do Microsoft Fabric Spark 1.3. Este script requer um arquivo YAML contendo uma lista de todas as bibliotecas incluídas no ambiente pré-preparado.
Certifique-se de que as bibliotecas privadas hospedadas pela Microsoft sejam removidas deste YAML.
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh chmod 755 -R /usr/lib/miniforge3/ export PATH="/usr/lib/miniforge3/bin:$PATH" sudo apt-get update sudo apt-get -yq install gcc g++ conda env create -n <custom-env-name> -f Python<version>-CPU.yml source activate <custom-env-name>O script pode ser usado para passar seu arquivo requirements.txt, que tem todos os pacotes e versões que você pretende instalar no tempo de execução do spark. Ele imprime os nomes dos novos arquivos/dependências de roda para seus requisitos de biblioteca de entrada.
pip install -r <input-user-req.txt> > pip_output.txt cat pip_output.txt | grep "Using cached *"Baixar
.whlarquivos manualmente.Use o Artefato de Ambiente para carregar todas as rodas necessárias.
Anexe o ambiente a blocos de anotações ou trabalhos.
Opção 2: Hospedar um espelho PyPI privado no Armazenamento do Azure
Pré-requisitos
- Recursos de computação, como uma máquina de desenvolvimento Linux, o Subsistema Windows para Linux (WSL) ou uma máquina virtual (VM) do Azure.
- Conta de Armazenamento do Azure para armazenar os pacotes espelhados.
- Utilitários:
- Bandersnatch: ferramenta de espelhamento PyPI para sincronização de repositórios. Consulte a documentação do Bandersnatch.
- CLI do Azure, Blobfuse2 ou AzCopy: utilitários para carregar e sincronizar arquivos com o Armazenamento do Azure.
Sincronização inicial do repositório PyPI
Como etapa inicial, você precisa executar uma sincronização do repositório PyPI. O repositório PyPI completo contém um grande número de pacotes e está em constante expansão, de modo que o download inicial pode levar de 8 a 48 horas, dependendo do seu hardware e rede. Para obter o tamanho atual do repositório e as contagens de pacotes, consulte Estatísticas · PyPI.
Maintenance
Monitoramento e atualizações periódicas são necessários para manter o espelho sincronizado. Os seguintes fatores afetam a velocidade de sincronização:
- Velocidade da rede.
- Recursos do servidor, como CPU, memória e E/S de disco no recurso de computação que executa o Bandersnatch.
- A velocidade do disco (SSD vs. HDD) afeta a rapidez com que Bandersnatch grava dados.
- Configuração inicial versus sincronização de manutenção: a sincronização inicial baixa todo o repositório e pode levar de 8 a 48 horas, mas as sincronizações subsequentes são mais rápidas porque atualizam apenas pacotes novos ou alterados.
Etapas de configuração
Configure uma máquina de desenvolvimento Linux VM ou Windows Subsystem for Linux (WSL)).
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh chmod 755 -R /usr/lib/miniforge3/ # Add Python executable to PATH export PATH="/usr/lib/miniforge3/bin:$PATH"Instale o Bandersnatch para espelhar o PyPI. Bandersnatch é uma ferramenta de espelhamento PyPI que baixa todo o repositório PyPI e arquivos de índice associados no sistema de arquivos local.
# Install Bandersnatch pip install bandersnatchConfigurar Bandersnatch: Crie um arquivo bandersnatch.conf com as configurações especificadas no exemplo no GitHub em bandersnatch/src/bandersnatch/example.conf.
Execute um comando mirror para executar uma sincronização única com o servidor primário PyPI.
bandersnatch --config <path-to-bandersnatch.conf> mirrorEste comando cria os seguintes subdiretórios em seu diretório espelho no sistema de arquivos local.
Observação
A sincronização inicial leva tempo para ser executada (consulte Estatísticas · PyPI). O Bandersnatch também suporta espelhamento seletivo usando plugins de allow list e blocklist, permitindo uma gestão mais eficiente das dependências. Ao filtrar pacotes desnecessários, você pode reduzir o tamanho do espelho, minimizando o custo e o esforço de manutenção. Por exemplo, se o espelho se destinar exclusivamente ao Fabric, você poderá excluir binários do Windows para otimizar o armazenamento. Recomendamos avaliar essas opções de filtragem com base no seu caso de uso.
Ver também Filtragem espelhada — Documentação do Bandersnatch.
Para verificar a configuração do espelho, você pode usar um servidor HTTP para servir seu espelho PyPI local. Este comando inicia um servidor HTTP simples na porta 8000 que serve o conteúdo do diretório mirror:
cd <directory-to-mirror> python -m http.server 8000Configure o pip para usar o espelho PyPI local:
pip install <package> -index-url http://localhost:8000/simpleCarregue o Espelho na conta de armazenamento e selecione Ativar Site Estático na sua conta de armazenamento do Azure. Essa configuração permite que você hospede conteúdo estático como PyPI na página de índice. Habilitar essa configuração gera automaticamente um contêiner chamado $web.
Você pode usar a CLI do Azure ou o AzCopy do blobfuse2 para carregar o espelho local da sua máquina de desenvolvimento para sua conta de armazenamento do Azure.
- Carregue a pasta de pacotes para o contêiner escolhido no contêiner da conta de armazenamento.
- Carregue pastas simples, PyPI, local-stats e JSON para $web contêiner de sua conta de armazenamento.
Para usar esse espelho em seu item de ambiente de malha, crie dois pontos de extremidade privados gerenciados no Fabric:
- Um para o contêiner de blob (pacotes)
- Um para o site estático (índice)
Use o Artefato de Ambiente para especificar um arquivo yml para instalar o gerenciamento de biblioteca em ambientes de malha.
dependencies: - pip - pip: - pytest==8.2.2 - --index-url https://<storage-account-name>.z5.web.core.windows.net/simpleOu, você pode instalar pacotes diretamente em um bloco de anotações usando o
%pip installcomando:
%pip install pytest --index-url https://<storage-account-name>.z5.web.core.windows.net/simple
Esquemas de Lakehouse e proteção de acesso para saída
As casas de lago que utilizam esquemas são totalmente suportadas quando acedidas a partir de itens dentro do mesmo espaço de trabalho, incluindo quando a proteção de acesso de saída está ativada.
Em cenários de acesso entre espaços de trabalho, o comportamento difere consoante a forma como o Lakehouse é acedido quando a proteção de acesso de saída está ativada no espaço de trabalho consumidor.
Cenários suportados
- Produtos para produtores e consumidores estão no mesmo espaço de trabalho
- A Casa do Lago utiliza esquemas
- O acesso é realizado usando APIs baseadas em Spark DataFrame
Nestes cenários, as operações do esquema Lakehouse funcionam conforme esperado.
Comportamento entre espaços de trabalho com proteção de acesso de saída ativada
Quando a proteção de acesso de saída está ativada num espaço de trabalho e um Lakehouse com esquema é acedido a partir de outro espaço de trabalho, aplica-se o seguinte comportamento:
- ✅ O acesso usando APIs Spark DataFrame (por exemplo, ler tabelas em DataFrames) continua a funcionar
- ❌ O acesso usando instruções SQL do Spark pode falhar.
Por exemplo,
spark.read.table()tem sucesso, emboraSELECT * FROM tablepossa falhar em cenários entre espaços de trabalho quando a proteção de acesso de saída está ativada.
Noções básicas sobre o comportamento dos caminhos de arquivo
Ao trabalhar com dados em sua Lakehouse usando um bloco de anotações Fabric, você pode fazer referência a arquivos de duas maneiras principais:
Se o seu espaço de trabalho tiver a proteção de acesso de saída habilitada, ele usará redes virtuais gerenciadas (VNETs) para o Spark. Neste caso, as piscinas iniciais estão desativadas e você deve esperar que as sessões do Spark levem de 3 a 5 minutos para começar.
Com a proteção de acesso de saída, todo o acesso público do Spark é bloqueado. Essa restrição impede que os usuários baixem bibliotecas diretamente de canais públicos como o PyPI usando pip. Para instalar bibliotecas para os seus trabalhos de Engenharia de Dados, os utilizadores têm duas opções (para mais detalhes, veja Instalar bibliotecas de forma segura em espaços de trabalho protegidos por acesso de saída):
Referenciar pacotes de biblioteca a partir de uma fonte de dados conectada ao espaço de trabalho do Fabric por meio de um endpoint privado gerido.
Carregue arquivos de roda para suas bibliotecas e dependências necessárias (que ainda não estão incluídas no tempo de execução pré-preparado).
Ativar a proteção de acesso de saída bloqueia todo o acesso público a partir do seu espaço de trabalho. Portanto, para consultar um Lakehouse a partir de outro espaço de trabalho, você deve criar um ponto de extremidade privado gerenciado entre espaços de trabalho para permitir que os trabalhos do Spark estabeleçam uma conexão.
O uso de caminhos totalmente qualificados com nomes de espaço de trabalho e lakehouse pode causar uma exceção de tempo limite de soquete. Para aceder a ficheiros, use caminhos relativos para o Lakehouse atual ou utilize um caminho totalmente qualificado que inclua o ID do workspace e o ID do Lakehouse (não os seus nomes de visualização). Essa abordagem garante que a sessão do Spark possa resolver o caminho corretamente e evite erros de tempo limite do soquete. Mais informações.