Saltar al contenido
Docs

Esta página aún no está traducida — estás leyendo la versión en portugués. Ver en portugués

PreviewActualizado el 2026-09-17

Credenciais e rotação

As famílias de segredo do workspace — chaves emitidas, senha de login, credenciais recuperáveis da origem e segredos de assinatura — e o que trocar, rotacionar e revogar significa em cada uma.

En esta página (17)

Selo de estado: Preview — inventário e runbook de rotação das credenciais do workspace. Atualizado em 2026-09-17. Fonte de estado: matriz de estados do produto. Limite atual do produto = Preview.

Um mapa de quais segredos existem no seu workspace, como cada um é guardado e o que trocar, rotacionar e revogar significam para cada um — porque não significam a mesma coisa.

Não existe um princípio único para "todas as credenciais"

Esta página já afirmou que, para toda credencial, o valor cru aparece uma vez, que perder significa gerar outra e que a antiga é recusada imediatamente. Isso só é verdade para uma parte da família 1 abaixo — as chaves emitidas. Uma credencial que o produto precisa usar na sua origem de dados é recuperável por natureza, e "recusar a antiga" depende de alguém revogá-la lá, não aqui.

As famílias#

FamíliaO que o sistema faz com o segredoExemplos
1. VerificadoresSó confere um valor que você apresenta. O valor guardado é um hash; nem nós conseguimos voltar ao original.1a. chave de API de dados e service principal (chaves emitidas pelo produto) · 1b. senha de login
2. Credenciais recuperáveis da origemPrecisa usar o valor para autenticar no seu banco/API. O valor é cifrado e volta a ser lido na execução.senha/token/chave de uma conexão de dados
3. Segredos de assinatura e de cálculoPrecisa do valor para assinar ou calcular algo nosso. Cifrado, recuperável, mas nunca sai para você depois.segredo de embed, semente TOTP do MFA, chave da conta de serviço do workspace

A diferença não é estética: ela decide o que acontece quando você troca o valor.

Senha de login

não é uma chave emitida A família 1 agrupa duas coisas pela forma de guardar (as duas são hash), mas elas se comportam de um jeito diferente na hora de trocar, e tratá-las juntas foi o que produziu a página anterior. Uma chave emitida nasce no produto, aparece uma vez, é revogável e para de valer no mesmo instante em que você a revoga. Uma senha de login identifica uma pessoa, não é revogável peça a peça e — pelo desenho de sessão de hoje — trocá-la não derruba as sessões já abertas. Por isso as duas metades estão separadas abaixo.


Família 1a — Chaves EMITIDAS pelo produto (API de dados e service principal)#

Como é guardada. A chave de API de dados (ing_live_…) e o service principal (sp_live_…) viram um SHA-256 do valor cru, mais um prefixo de 16 caracteres guardado em claro só para você identificar a chave na lista.

Valor cru. Aparece uma única vez, na criação. Não há como reexibi-lo — o banco não tem o original.

Perdeu? Gere outra e revogue a anterior. Não existe recuperação.

Trocar = rotacionar. Aqui as duas palavras coincidem: a credencial nasce e morre dentro do ingestia.io, não existe cópia dela em outro sistema.

A antiga é recusada imediatamente? Sim. Toda requisição resolve a chave consultando o banco pelo hash e para se houver revokedAt. Não há cache de chave resolvida, nem janela de graça — a leitura vai ao banco a cada chamada.

Escopo. O service principal carrega o papel no envelope da própria credencial e cai para viewer quando o envelope está ilegível (fail-closed). Um token ing_live_… nunca é aceito como service principal, e vice-versa: o prefixo é conferido antes de qualquer consulta.

  1. Chave de API (dados)

    Em Configurações → Chaves de API, gere uma nova chave, atualize seus integradores e revogue a antiga. A partir da revogação, chamadas com a chave velha respondem 401 — sem espera.

  2. Service principal

    Gere um novo sp_live_… com o papel adequado, aponte o IdP/integração para ele e revogue o anterior. Revogar um SP de outro workspace é recusado (a checagem é por dono, não por id).


Família 1b — Senha de login#

Como é guardada. Hash scrypt com sal, no formato scrypt$N$sal$hash. O servidor só confere o que você digita; o valor original não fica em lugar nenhum.

Onde ela é definida. No cadastro da conta (e-mail + senha). É o único ponto do produto que grava a senha de login.

Não existe autoatendimento de troca nem de redefinição de senha

A versão implementada não tem tela de "alterar minha senha" nem fluxo de "esqueci minha senha". Esta página já afirmou que "cada pessoa troca a própria" — isso não corresponde ao produto e foi retirado. Trocar a senha de uma conta existente é, hoje, um caso de suporte, como a recuperação de MFA. Quem entra por Google ou por SSO não tem senha local: a troca acontece no provedor de identidade, não aqui.

A antiga para de valer na hora? Para autenticar, sim: o login confere o hash gravado, então uma senha substituída não abre sessão nova. Mas as sessões já abertas continuam valendo: a sessão é um token assinado, guardado no navegador de quem entrou, e o servidor não mantém lista de sessões para revogar. Não há, portanto, "encerrar sessões em todos os dispositivos". Uma sessão aberta termina quando a pessoa sai ou quando o token expira.

E o cache? Não existe cache de senha. Dentro de uma mesma requisição, a sessão é resolvida uma única vez (memoização por requisição) e nada disso atravessa requisições. O que sobrevive à troca é o token já emitido — ver o parágrafo acima —, não um cache do servidor.

O convite de membro não emite senha — emite um link de ativação

Ao cadastrar alguém em Configurações → Usuários, o produto não gera senha provisória. Ele emite um token de ativação de uso único, com validade, guardado como hash; a pessoa recebe um link de ativação e define a própria senha ao aceitar. O token é credencial de convite, não de acesso: ele serve uma vez, para entrar no workspace, e depois não vale mais.

Se o link expirar ou se perder, a ação é reenviar o convite (que emite um token novo e invalida o anterior). Não existe "gerar nova senha".


Família 2 — Credenciais das suas fontes de dados#

Esta é a família em que "rotacionar" é ambíguo, e onde a confusão custa caro.

Como é guardada. Duas possibilidades, por conexão:

  • cifrada no banco (AES-256-GCM) — o padrão de hoje; ou
  • no cofre externo de credenciais, com o banco guardando só uma referência. A referência aponta para uma versão numerada (nunca latest).

Valor cru. Você digita, o produto usa, e a interface não devolve o valor depois. Para mudar, use Substituir credencial — não existe "ver a senha atual". Mas atenção: não reexibir não é a mesma coisa que não ser recuperável. O processamento precisa autenticar no seu banco, então o valor é decifrado a cada execução.

Trocar o valor aqui NÃO conclui a rotação

O texto que a própria tela mostra em toda troca: "Trocar o valor no cofre NÃO conclui a rotação. A credencial anterior continua VÁLIDA na origem (banco, provedor, IAM) até ser invalidada LÁ. Só marque a rotação como concluída depois de revogar a credencial antiga na origem — até lá, considere-a exposta."

Por isso a conexão tem um estado de rotação próprio, com três valores:

EstadoO que significa
Sem rotaçãoA versão em uso é a original cadastrada.
Valor trocado no cofreExiste versão nova, validada e promovida — mas ninguém confirmou que a credencial anterior foi invalidada na origem. A rotação não acabou.
Concluída na origemAlguém com acesso à origem confirmou a revogação lá. Só aqui a rotação terminou.

O ciclo de troca, na ordem em que acontece. Cada passo só roda se o anterior deu certo, e o relatório da tela mostra cada um:

  1. garantir o segredo no cofre (idempotente);
  2. criar a versão nova;
  3. validar — ler a versão de volta e conferir que os campos gravados são exatamente os esperados. Sem isso, promover seria um voto de confiança;
  4. promover — a referência passa a apontar para a versão nova;
  5. invalidar o cache da conexão;
  6. aposentar a versão anterior — desabilitada, não destruída (janela de rollback e perícia).

Se a validação (passo 3) falhar, nada é promovido: a versão nova é desabilitada e a credencial anterior continua em uso. O passo 6 é o único "melhor esforço": falhar em aposentar não desfaz uma credencial nova que já está válida — e o relatório diz que a versão antiga seguiu habilitada no cofre.

Cache. O valor resolvido fica em memória do processo, com validade de 5 minutos, e a chave do cache inclui tenant + conexão + segredo + versão. Consequências práticas:

  • promover uma versão nova muda a chave, então o valor antigo não é servido por engano;
  • rotação e revogação invalidam o cache na hora no processo que executou a operação;
  • em outros processos (o executor dos pipelines roda em outro lugar), o teto é a validade de 5 minutos;
  • o segredo nunca vai para cache externo (cache compartilhado, disco) nem para uma chave sem a versão.

Processos em andamento. A resolução acontece no início da execução. Uma execução que já começou termina com o valor que resolveu; ela não é interrompida por uma troca feita no meio. A execução seguinte resolve de novo e já usa a credencial nova — ou falha, se você revogou.

Revogação. Revogar marca a referência como revogada e desabilita a versão no cofre. Depois disso, toda resolução falha fechada. E, deliberadamente, a revogação não:

  • volta para a credencial cifrada no banco (isso faria a revogação parecer aplicada sem estar);
  • reabre a versão anterior;
  • apaga a versão (destruir é irreversível e impediria perícia).

Sem fallback silencioso. Quando existe referência de cofre, o cofre é a única fonte. Cofre indisponível ou IAM negado interrompem a execução com mensagem acionável e código estável — nunca resolvem para um segredo global, homônimo ou de outro tenant. Referência de outro workspace ou de outra conexão é recusada antes de qualquer chamada de rede.


Família 3 — Segredos de assinatura e de cálculo#

São nossos, não da sua origem. O produto precisa do valor para assinar um token ou calcular um código — e por isso eles são cifrados (AES-256-GCM), não hasheados.

Segredo de embed do painel

  • Guardado cifrado. O par é keyId (público, viaja no token) + secret.
  • Rotacionar troca os dois de uma vez. Todo token já emitido para de valer na hora, porque a verificação compara o keyId do token com o keyId atual antes de olhar a assinatura.
  • Atualize o segredo no seu servidor antes de rotacionar, ou o painel incorporado para junto.

Semente do MFA (TOTP)

  • Guardada cifrada; o verificador recalcula os códigos de seis dígitos a partir dela.
  • Limitação inventariada: o leitor tolera semente legada em texto plano (cadastros anteriores à cifra). Se a decifra falhar, o valor guardado é usado como está. Cadastros antigos podem, portanto, ainda não estar cifrados.
  • Não existem códigos de recuperação de uso único no produto hoje. Esta página já os listou; não há implementação correspondente. Perder o dispositivo de MFA é um caso de suporte, não de autoatendimento — ver Suporte.

Chave da conta de serviço do workspace

  • Usada para acessar os recursos de nuvem do processamento; guardada cifrada ou no cofre gerenciado.
  • Rotacionar invalida a chave atual: ferramentas que usam a chave antiga param. Baixe e distribua a nova antes de rotacionar.

O que é cifra e o que é verificador (tabela de conferência)#

Esta tabela descreve a implementação atual, não uma intenção.

CredencialComo fica guardadaPor quê
Senha de loginverificador (scrypt com sal)o servidor só confere o que você digita. Definida no cadastro; sem tela de troca/redefinição hoje
Chave de API (dados)verificador (SHA-256) + prefixo visívelvocê apresenta a chave; nós só conferimos. O prefixo identifica a chave na lista
Service principalverificador (SHA-256) + prefixo + papel no envelopeidem, com o papel viajando junto (fail-closed → viewer)
Credencial da sua fontecifrada (AES-256-GCM) no banco, ou referência a uma versão no cofre de credenciaiso processamento precisa autenticar no seu banco/API. Um hash não autenticaria em lugar nenhum
Segredo de embedcifrado (AES-256-GCM)é a chave que assina os tokens do painel incorporado
Semente do MFA (TOTP)cifrada (AES-256-GCM); leitura tolera legado em texto planoo verificador recalcula os códigos a partir dela
Chave da conta de serviçocifrada, ou em cofre gerenciado quando disponívelé usada para acessar os recursos de nuvem do processamento

A chave de cifra vem de uma variável de ambiente dedicada do servidor; em produção, a ausência dela falha fechado em vez de cair num valor de desenvolvimento.


Inventário rápido#

CredencialPrefixo/formaCria/revogaEscopoOnde documentar
Chave de API (dados)ing_live_…só o ownerworkspace (lê todos os marts publicados)Autenticação da API
Service principalsp_live_…admin/ownerworkspace/org do SP, com papel no envelopeSSO e SCIM
Segredo de embedkeyId público + secretações do workspaceum painel por token assinadoEmbed SDK
Credencial de fontepor conector (senha/token/OAuth/chave)admin/owner (source.manage)uma conexãoConectores
Login/MFAsenha (verificador) + semente TOTP (cifrada)senha: só no cadastro (sem troca por autoatendimento) · MFA: cada pessoa ativa o próprioa própria identidadeAutenticação e MFA

O que vale para todas#

Três coisas — e só três — valem para todas as famílias:

  • Escopo por workspace. Toda credencial resolve apenas o workspace/org que a emitiu. Nenhuma cruza clientes, e a checagem de dono acontece antes de qualquer leitura.
  • Menor privilégio. Um service principal viewer é negado (403) em ações acima do papel — ver RBAC.
  • Nada de segredo em log, erro, auditoria, export ou DAG. Os valores não aparecem em mensagem de erro nem em linha de log; a definição do pipeline guarda a referência da conexão, nunca a credencial.

Quando rotacionar#

  • Suspeita de vazamento (segredo em log, URL compartilhada, print): trate como incidente Crítico (Suporte). Para a família 2, lembre que o passo que encerra o risco é a revogação na origem.
  • Saída de pessoa com acesso ao segredo.
  • Higiene periódica de credenciais de integração.

Limites#

  • Chave de dados = nível workspace (sem recorte por membro). Chave por membro com RLS está no Roadmap.
  • Allowlist de origens do embed é global da instância hoje (por-workspace = Roadmap) — ver Embed.
  • Um único cofre externo suportado — o do próprio produto. Levar as credenciais para um cofre seu é o adicional de Gestão de Credenciais, e não está incluído no plano.
  • Sem códigos de recuperação de MFA (ver família 3).
  • Rotação de refresh token de alguns conectores OAuth (Bling, Conta Azul, HubSpot) não é persistida — por isso a configuração desses conectores é recusada hoje. Ver Conectores.

Erros comuns e diagnóstico#

SintomaCausa provávelO que fazer
Integração parou com 401chave revogada/rotacionadaatualize o integrador com a nova chave
Todo token de embed parousegredo de embed foi rotacionado (troca keyId e secret)atualize o segredo no seu servidor
Segredo "sumiu" após criarfamília 1a: o valor cru da chave emitida só aparece 1×gere outra chave e revogue a anterior
Troquei a senha e a origem ainda aceita a antigacomportamento esperado: trocar aqui não revoga lárevogue na origem e marque a rotação como concluída
Execução falhou com "credencial revogada"a referência está revogada no cofrecadastre credencial nova; não há volta para o valor antigo do banco
Execução falhou com "cofre indisponível"cofre de credenciais fora do ar ou acesso negadofalha fechada de propósito; nada foi resolvido por aproximação
A execução em andamento usou a credencial velhao segredo é resolvido no início da execuçãoesperado; a execução seguinte usa a nova
Fonte falhando após um temporefresh token OAuth não persistidoreconecte a fonte; esses conectores estão bloqueados hoje

Exemplo#

Um script da Comércio Aurora (fictícia) teve a chave ing_live_… vazada num log. Maria (owner) gera outra chave, atualiza o servidor de integração e revoga a antiga — toda chamada com a chave vazada responde 401 na hora.

Se o que tivesse vazado fosse a senha do banco de origem, o roteiro seria outro: trocar o valor na conexão resolve qual senha o ingestia.io usa, mas quem copiou a senha antiga continua entrando no banco até alguém revogá-la no banco. Só então a rotação é marcada como concluída na origem.

Resultado esperado#

  • Família 1a: a chave nova funciona e a antiga responde 401 imediatamente.
  • Família 1b: uma senha substituída não abre sessão nova — mas a sessão que já estava aberta continua até sair ou expirar; não há revogação de sessão.
  • Família 2: a versão nova é a que o produto usa; a origem só está segura depois da revogação lá, e a conexão registra esse estado.
  • Família 3: o segredo novo assina/calcula, e o que dependia do antigo para de valer na hora.
  • Nenhuma credencial resolve dados de outro workspace.

Relacionados#


Última revisão: 2026-09-17. As famílias, o ciclo de troca, o cache, o comportamento em execução e os limites acima foram conferidos contra o código do produto, não contra um princípio geral.

Enlaces relacionados