Pular para o conteúdo principal

Acesso público TCP

Por padrão, bancos, caches e filas de um ambiente só são alcançáveis de dentro do cluster. O acesso público TCP permite que uma ferramenta de fora (um cliente de banco, um job de BI, um pipeline de CI) se conecte a um recurso, sempre pela borda gerenciada da plataforma e nunca por um IP público próprio do recurso.

Cada exposição é um endpoint TCP do recurso, com:

  • uma allowlist obrigatória de IPs/CIDRs de origem;
  • TLS ponta a ponta verificável com a CA da sua organização (a borda não abre o TLS);
  • uma credencial externa própria do endpoint, separada da credencial que suas aplicações usam;
  • registro de conexões (IP de origem, resultado, bytes e duração; nunca o conteúdo).

Quem pode expor​

Abrir um recurso para a internet é uma decisão de segurança. Só o papel Admin do projeto cria, edita, rotaciona e remove endpoints. Developer e Viewer apenas leem. Um recurso exposto não pode ser removido enquanto o endpoint existir: remova o acesso público primeiro.

Recursos que podem ser expostos​

RecursoPorta do serviçoTLSModo SNICredencial externa
Banco PostgreSQLprimário (5432)obrigatóriosó PostgreSQL 17 ou mais novosim
Cache Redisporta TLS (6380)obrigatóriosimsim
Fila RabbitMQAMQPS (5671)obrigatóriosimsim
Aplicação TCPporta da aplicaçãoda própria aplicação (passthrough) ou texto purosó com TLS próprionão

Volumes, máquinas virtuais, funções e jobs não podem ser expostos por TCP.

Modos de publicação​

ModoEndereçoQuando usar
Porta dedicada (padrão)<recurso>-<ambiente>-<organização>.tcp.<domínio>:<porta>, com a porta alocada pela plataforma (faixa 20000–20999)Funciona com qualquer cliente, inclusive o PostgreSQL clássico (sslmode=verify-full)
SNIo mesmo hostname, na porta 443 compartilhadaRedes que só liberam a 443 de saída. Exige que o cliente envie o nome do servidor (SNI) já no início do TLS

A porta é escolhida pela plataforma, não pelo cliente. Quando um endpoint é removido, a porta fica 24 horas em quarentena antes de ser reaproveitada.

Allowlist​

Informe pelo menos um IP ou CIDR (por exemplo 203.0.113.10 ou 198.51.100.0/24), com uma nota opcional. Conexões de qualquer outra origem são recusadas na borda e aparecem como recusadas na aba Conexões.

  • Para bancos, caches e filas, cada entrada pode ser no máximo /16 (IPv4) ou /32 (IPv6), e 0.0.0.0/0 nunca é aceito.
  • Uma aplicação TCP pode ser aberta para qualquer IP só em planos com essa opção, e o pedido fica na auditoria.
  • A allowlist muda na hora: edite o endpoint, sem aplicar o ambiente de novo. Se outra pessoa alterou o endpoint enquanto você editava, o portal avisa e oferece Recarregar.

Planos e limites​

ChaveO que controlaStarterProBusinessEnterprise
tcp.enabledAcesso público TCP disponívelnãosimsimsim
tcp.maxEndpointsEndpoints na organização021050
tcp.maxAllowlistEntriesEntradas de allowlist por endpoint01050200
tcp.maxConnectionsConexões simultâneas por endpoint0502001.000
tcp.allowAnywhereAplicação TCP aberta a qualquer IPnãonãosimsim
tcp.allowPlaintextAplicação TCP sem TLSnãonãosimsim
tcp.connectionLogRetentionDaysDias de registro de conexões03090180

Os valores são os padrões de cada plano; a administração da plataforma pode ajustá-los por plano ou por organização. Ao mudar para um plano menor, os endpoints existentes continuam funcionando, mas não é possível criar novos nem ampliar os limites. As horas de endpoint ativo e os bytes enviados aos clientes entram no consumo da organização.

Credencial externa​

Ao criar um endpoint de banco, cache ou fila, a plataforma gera um usuário próprio do endpoint (ext_xxxxxxxx; na fila, ext-xxxxxxxx) com uma senha aleatória forte, com acesso de leitura e escrita ou somente leitura.

  • A senha aparece uma única vez, logo após a criação. Copie-a e confirme Copiei a senha para fechar o diálogo. Ela não pode ser consultada depois.
  • Perdeu a senha ou quer trocá-la? Use Rotacionar credencial: uma senha nova é exibida uma vez e a anterior deixa de valer.
  • Ao remover o endpoint, o usuário externo é removido junto.

CA da organização​

Os certificados dos serviços expostos são emitidos por uma CA própria da sua organização, com o hostname público no certificado. Baixe a CA em Baixar CA (arquivo atlas-<organização>-ca.pem) e configure o cliente para verificar o servidor com ela. Assim o cliente confere que está falando com o seu recurso, e não com o de outra organização.

Exemplos de conexão​

PostgreSQL, modo porta dedicada:

psql "host=db-prod-acme.tcp.exemplo.com port=20017 user=ext_1a2b3c4d dbname=app \
sslmode=verify-full sslrootcert=atlas-acme-ca.pem"

PostgreSQL 17 ou mais novo, modo SNI (porta 443):

psql "host=db-prod-acme.tcp.exemplo.com port=443 user=ext_1a2b3c4d dbname=app \
sslmode=verify-full sslnegotiation=direct sslrootcert=atlas-acme-ca.pem"

Redis (compatível · Valkey):

valkey-cli --tls --cacert atlas-acme-ca.pem -h cache-prod-acme.tcp.exemplo.com -p 20018 \
--user ext_5e6f7a8b --pass '<senha>'

RabbitMQ (AMQPS), confiando na CA da organização no cliente:

amqps://ext-9c0d1e2f:<senha>@fila-prod-acme.tcp.exemplo.com:20019/app

O portal mostra a string de conexão de cada endpoint já preenchida (sem a senha, exceto no diálogo da criação ou da rotação).

Conexões​

A aba Conexões do recurso lista as conexões recebidas pela borda, das mais recentes para as mais antigas, com filtros por resultado e período:

ResultadoSignificado
AceitaA conexão passou pela borda e chegou ao recurso
Recusada (allowlist)A origem não está na allowlist
Limite de conexõesO endpoint já tinha o máximo de conexões simultâneas
Erro no destinoA borda não conseguiu falar com o recurso (por exemplo, recurso parado)

Os registros ficam guardados pelo número de dias do seu plano. O banco vê as conexões vindas da borda; o IP real do cliente fica neste registro.