Partilhar via


Gerenciando políticas de rede para controle de saída sem servidor

Importante

Esta funcionalidade está em Pré-visualização Pública.

Este documento explica como configurar e gerenciar políticas de rede para controlar conexões de rede de saída de suas cargas de trabalho sem servidor no Azure Databricks.

As permissões para gerenciar políticas de rede são restritas ao administrador da conta. Consulte Introdução à administração do Azure Databricks.

Aceder a políticas de rede

Para criar, visualizar e atualizar políticas de rede na sua conta:

  1. No console da conta, clique em Recursos de nuvem.
  2. Clique na guia Rede .

Lista de políticas de rede.

Criar uma nova política de rede

  1. Clique Criar nova política de rede.

  2. Escolha um modo de acesso à rede:

    • Acesso total: Acesso irrestrito à Internet para saída. Se você escolher Acesso total, o acesso de saída à Internet permanecerá irrestrito.
    • Acesso restrito: O acesso de saída é limitado a destinos especificados. Para obter mais informações, consulte Visão geral da diretiva de rede.

    Detalhes da política de rede.

Configurar políticas de rede

As etapas a seguir descrevem as configurações opcionais para o modo de acesso restrito.

Regras de saída

Destinos configurados por meio de locais ou conexões do Catálogo Unity são automaticamente permitidos pela política.

  1. Para conceder ao seu serviço de computação sem servidor acesso a domínios adicionais, clique em Adicionar destino acima da lista de Domínios permitidos.

    Adicionar destino da Internet.

    O filtro FQDN permite o acesso a todos os domínios que compartilham o mesmo endereço IP. O provisionamento de serviço de modelagem através dos pontos de extremidade impede o acesso à Internet quando o acesso à rede está configurado como restrito. No entanto, o controle granular com filtragem FQDN não é suportado.

  2. Para permitir que o seu espaço de trabalho aceda a contas de armazenamento adicionais do Azure, clique no botão Adicionar destino acima da lista Contas de armazenamento permitidas.

    Adicionar destino de armazenamento.

    Nota

    O número máximo de destinos suportados é 2000. Isso inclui todos os locais e conexões do Catálogo Unity acessíveis a partir do espaço de trabalho, bem como destinos explicitamente adicionados na política.

Aplicação de políticas

O modo somente log permite que você teste a configuração da política e monitore as conexões de saída sem interromper o acesso aos recursos. Quando o modo somente log está habilitado, as solicitações que violam a política são registradas, mas não bloqueadas. Você pode selecionar entre as seguintes opções:

  1. Databricks SQL: Os armazéns SQL Databricks operam no modo de apenas registo.

  2. modelo de serviço de IA: Os endpoints de serviço de modelos operam no modo somente log.

  3. Todos os produtos: Todas as funcionalidades do Azure Databricks operam no modo apenas de registo, substituindo todas as outras seleções.

    Adicionar destino de armazenamento.

Atualizar a política padrão

Cada conta do Azure Databricks inclui uma política padrão . A política padrão está associada a todos os espaços de trabalho sem atribuição explícita de política de rede, incluindo os espaços de trabalho recém-criados. Você pode modificar essa política, mas ela não pode ser excluída. As políticas padrão só são aplicadas a espaços de trabalho com pelo menos Premium.

Associar uma política de rede a espaços de trabalho

Se você tiver atualizado sua política padrão com configurações adicionais, elas serão aplicadas automaticamente a espaços de trabalho que não têm uma diretiva de rede existente. Seu espaço de trabalho precisará estar em Premium.

Para associar seu espaço de trabalho a uma política diferente, faça o seguinte:

  1. Selecione uma área de trabalho.
  2. Em Política de Rede, clique em Atualizar política de rede.
  3. Selecione a política de rede desejada na lista.

Atualizar política de rede.

Aplicar alterações na política de rede

A maioria das atualizações de configuração de rede propaga-se automaticamente para a computação sem servidor em dez minutos. O que está incluído:

  • Adicionar um novo local externo ou conexão do Catálogo Unity.
  • Anexando seu espaço de trabalho a um metastore diferente.
  • Alterar o armazenamento permitido ou os destinos da Internet.

Nota

Você deve reiniciar o computador se modificar a configuração do acesso à Internet ou do modo só de registo.

Reiniciar ou reimplantar cargas de trabalho sem servidor

Você só precisa atualizar quando mudar o modo de acesso à Internet ou ao atualizar o modo exclusivamente de log.

Para determinar o procedimento de reinicialização apropriado, consulte a seguinte lista por produto:

  • Databricks ML Serving: Reimplante seu ponto de extremidade de serviço de ML. Consulte Criar pontos de extremidade de serviço de modelo personalizado
  • Delta Live Tables: Pare e reinicie o pipeline Delta Live Tables em execução. Consulte Executar uma atualização em um pipeline Delta Live Tables.
  • Serverless SQL warehouse: Pare e reinicie o SQL warehouse. Consulte Gerenciar um depósito SQL.
  • Fluxos de trabalho: as alterações de política de rede são aplicadas automaticamente quando uma nova execução de trabalho é acionada ou uma execução de tarefa existente é reiniciada.
  • Cadernos:
    • Se o seu bloco de notas não interagir com o Spark, pode terminar e anexar um novo cluster sem servidor para atualizar a configuração de rede aplicada ao seu bloco de notas.
    • Se o seu bloco de notas interagir com o Spark, o recurso sem servidor é atualizado e deteta automaticamente a alteração. A comutação do modo de acesso e do modo somente log pode levar até 24 horas para ser aplicada, e outras alterações podem levar até 10 minutos para serem aplicadas.

Verificar a aplicação da política de rede

Você pode validar se sua diretiva de rede é aplicada corretamente tentando acessar recursos restritos de diferentes cargas de trabalho sem servidor. O processo de validação varia dependendo do produto sem servidor.

Validar com Delta Live Tables

  1. Crie um bloco de anotações Python. Você pode usar o bloco de anotações de exemplo fornecido no tutorial Delta Live Tables wikipedia python.
  2. Crie um pipeline Delta Live Tables:
    1. Clique em Pipelines, em Engenharia de Dados, na barra lateral do espaço de trabalho.
    2. Clique em Criar pipeline.
    3. Configure o pipeline com as seguintes configurações:
      • Modo de pipeline: sem servidor
      • Código-fonte: Selecione o bloco de anotações que você criou.
      • Opções de armazenamento: Unity Catalog. Selecione o catálogo e o esquema desejados.
    4. Clique em Criar.
  3. Executar o pipeline Delta Live Tables.
  4. Na página do pipeline, clique em Iniciar.
  5. Aguarde a conclusão do pipeline.
  6. Verificar os resultados
    • Destino confiável: o pipeline deve ser executado com êxito e gravar dados no destino.
    • Destino não confiável: o pipeline deve falhar com erros indicando que o acesso à rede está bloqueado.

Validar com Databricks SQL

  1. Crie um SQL Warehouse. Para obter instruções, consulte Criar um armazém SQL.
  2. Execute uma consulta de teste no editor SQL que tenta acessar um recurso controlado pela sua diretiva de rede.
  3. Verifique os resultados:
    • Destino confiável: a consulta deve ser bem-sucedida.
    • Destino não confiável: a consulta deve falhar com um erro de acesso à rede.

Valide com o modelo de serviço

  1. Criar um modelo de teste

    1. Em um bloco de anotações Python, crie um modelo que tente acessar um recurso público da Internet, como baixar um arquivo ou fazer uma solicitação de API.
    2. Execute este bloco de anotações para gerar um modelo no espaço de trabalho de teste. Por exemplo:
    
    import mlflow
    import mlflow.pyfunc
    import mlflow.sklearn
    import requests
    
    class DummyModel(mlflow.pyfunc.PythonModel):
        def load_context(self, context):
            pass
    
        def predict(self, _, model_input):
            first_row = model_input.iloc[0]
            try:
                response = requests.get(first_row['host'])
            except requests.exceptions.RequestException as e:
                # Return the error details as text
                return f"Error: An error occurred - {e}"
            return [response.status_code]
    
    with mlflow.start_run(run_name='internet-access-model'):
        wrappedModel = DummyModel()
    
        mlflow.pyfunc.log_model(artifact_path="internet_access_ml_model", python_model=wrappedModel, registered_model_name="internet-http-access")
    
  2. Criar um ponto de extremidade de serviço

    1. Na navegação do espaço de trabalho, selecione Machine Learning.
    2. Clique na guia Servir .
    3. Clique em Criar ponto de extremidade de serviço.
    4. Configure o ponto de extremidade com as seguintes configurações:
      • Servindo o nome do ponto final: forneça um nome descritivo.
      • Detalhes da entidade: Selecione Modelo de modelo de registro.
      • Modelo: escolha o modelo que você criou na etapa anterior.
    5. Clique em Confirmar.
    6. Aguarde até que o ponto de extremidade de serviço atinja o estado Pronto .
  3. Consulte o ponto de extremidade.

    1. Use a opção Query Endpoint na página de ponto de extremidade de serviço para enviar uma solicitação de teste.
    {"dataframe_records": [{"host": "https://www.google.com"}]}
    
  4. Verifique o resultado:

    • Acesso à Internet habilitado: a consulta deve ser bem-sucedida.
    • Acesso restrito à Internet: A consulta deve falhar com um erro de acesso à rede.

Atualizar uma política de rede

Você pode atualizar uma diretiva de rede a qualquer momento após sua criação. Para atualizar uma política de rede:

  1. Na página de detalhes da política de rede no console de contas, modifique a política:
    • Altere o modo de acesso à rede.
    • Ative ou desative o modo de registo somente para serviços específicos.
    • Adicione ou remova FQDN ou destinos de armazenamento.
  2. Clique em Atualizar.
  3. Consulte . Aplique alterações de diretiva de rede para verificar se as atualizações são aplicadas a cargas de trabalho existentes.

Verifique os registros de negação

Os logs de negação são armazenados na system.access.outbound_network tabela no Unity Catalog. Esses logs rastreiam quando as solicitações de rede de saída são negadas. Para acessar os logs de negação, verifique se o esquema de acesso está ativado no metastore do Catálogo Unity. Consulte Ativar esquemas de tabela do sistema.

Use uma consulta SQL como a abaixo para exibir eventos de negação. Se os logs somente de log estiverem habilitados, a consulta retornará logs de negação e logs somente de log, que você pode distinguir usando a access_type coluna. Os logs de negação têm um valor de DROP, enquanto os logs apenas de registro mostram LOG_ONLY_DENIAL.

O exemplo a seguir recupera logs das últimas 2 horas:


select * from system.access.outbound_network
where event_time >= current_timestamp() - interval 2 hour
sort by event_time desc

As recusas não são registradas na tabela do sistema de saída de rede ao se conectar a modelos de IA generativa externos usando o Mosaic AI Gateway. Consulte Mosaic AI Gateway.

Nota

Pode haver alguma latência entre o momento do acesso e quando os logs de negação aparecem.

Limitações

  • Configuration: Esta funcionalidade só é configurável através do console da conta. O suporte à API ainda não está disponível.

  • Tamanho do upload de artefato: Ao usar o sistema de arquivos Databricks interno do MLflow com o formato dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<artifactPath>, os carregamentos de artefatos são limitados a 5 GB para APIs log_artifact, log_artifactse log_model.

  • Conexões de catálogo Unity suportadas: Os seguintes tipos de conexão são suportados: MySQL, PostgreSQL, Snowflake, Redshift, Azure Synapse, SQL Server, Salesforce, BigQuery, Netsuite, Workday RaaS, Hive MetaStore e Salesforce Data Cloud.

  • Modelo que serve: O controle de saída não se aplica ao criar imagens para servir o modelo.

  • Acesso ao armazenamento Azure: Apenas o driver do Azure Blob Filesystem para o Azure Data Lake Storage é suportado. O acesso usando o driver de Armazenamento de Blob do Azure ou o driver WASB não é suportado.