Alternando o acesso à internet
Ao criar um sandbox, você pode usar o parâmetroallowInternetAccess / allow_internet_access para configurar a conectividade com a internet. O acesso à internet é ativado por padrão, mas pode ser desativado para cargas de trabalho com requisitos de segurança mais rigorosos.
Passar um valor falsy para
allowInternetAccess / allow_internet_access tem o mesmo efeito que adicionar ['0.0.0.0/0'] a network.denyOut / network.deny_out, o que bloqueia todos os destinos.Controle de rede refinado
A configuração de rede fornece controle mais refinado sobre o tráfego de saída, permitindo que você defina listas de permissão e listas de bloqueio.Listas de permissão e bloqueio
Endereços IP, blocos CIDR ou nomes de domínio que o sandbox tem permissão para acessar podem ser especificados.O CIDR
'0.0.0.0/0' / "0.0.0.0/0" é uma forma abreviada para “todos os destinos”. Uma constante ALL_TRAFFIC exportada resolve para o mesmo valor 0.0.0.0/0 se você preferir uma alternativa nomeada ao literal.Filtragem baseada em domínio
Você pode especificar hostnames emallowOut / allow_out para permitir tráfego de saída para domínios selecionados. Quando a filtragem baseada em domínio está ativada, todo o tráfego restante deve ser bloqueado por meio de denyOut / deny_out. Entradas de domínio só são compatíveis com listas de permissão e não podem ser usadas em listas de bloqueio.
Sempre que um domínio aparece na configuração, o servidor de nomes padrão
8.8.8.8 é permitido automaticamente para que a resolução DNS continue funcionando.A filtragem por domínio se aplica apenas a HTTP pela porta 80 (inspecionado por meio do cabeçalho Host) e TLS pela porta 443 (inspecionado por meio de SNI). Qualquer outra porta volta para a correspondência baseada em CIDR, e protocolos UDP, como QUIC/HTTP3, não podem ser filtrados por domínio.
Como conexões TCP bloqueadas se comportam
Devido à arquitetura do firewall, uma conexão de saída bloqueada ainda pode parecer bem-sucedida a partir de dentro do sandbox. O firewall precisa primeiro aceitar a conexão TCP antes de poder avaliar se o destino de destino é permitido. Como resultado, o código em execução dentro do sandbox pode ver a conexão ser bem-sucedida e o socket abrir, mesmo que o destino esteja bloqueado. Nesse caso, nenhum tráfego é realmente entregue ao endpoint remoto. Para confirmar que o destino está acessível, valide uma resposta em nível de aplicação em vez de confiar apenas no sucesso da conexão TCP. Por exemplo, verifique um código de status HTTP, um handshake TLS concluído ou os bytes de resposta esperados do protocolo. Esse comportamento é uma limitação atual de como o tráfego de saída do sandbox é roteado pelo nosso firewall e pode ser atualizado no futuro.Regras de prioridade
Se regras de permissão e bloqueio estiverem configuradas, as regras de permissão têm prioridade. Portanto, qualquer endereço IP que apareça em ambas as listas ainda será permitido.network entram em vigor somente quando o sandbox é criado — forneça-as a Sandbox.create. Depois que o sandbox existe, elas ficam fixas e não podem ser modificadas.
URL pública do sandbox
Serviços em um sandbox podem ser acessados usando a URL pública do sandbox.Conectando-se a um servidor em execução dentro do sandbox
Você pode se conectar a um servidor em execução dentro do sandbox usando o método descrito anteriormente; por exemplo, inicie um servidor HTTP leve na porta 3000 para servir arquivos a partir do diretório de inicialização dele.Mascarando cabeçalhos Host de solicitações
Você pode usar a opçãomaskRequestHost / mask_request_host para personalizar o cabeçalho Host enviado aos serviços em execução dentro do sandbox. Isso é útil quando sua aplicação espera que as solicitações sigam um formato de host específico.
${PORT} na máscara é substituído pelo número real da porta do serviço que está sendo endereçado.