Saltar para o conteúdo
Índice
Sites

Armazenar Segredos de Aplicação para um Site

Tradução automática. O original em inglês está disponível.

A tab Segredos é um repositório encriptado para os valores de configuração sensíveis de que uma aplicação Node.js necessita, tais como chaves de API, segredos de assinatura e tokens de terceiros, mantidos por ambiente para que as suas credenciais de produção e as suas credenciais de pré-visualização nunca se misturem.

Onde Vivem os Segredos

Abra Websites, clique no site, abra o grupo Environment no menu lateral esquerdo do site e escolha Segredos. O separador tem o nome Segredos.

O separador só aparece em sites Node.js. Os sites WordPress, PHP e estáticos não o mostram, porque a sua configuração reside em ficheiros no disco: wp-config.php para WordPress, e o que quer que a sua framework leia para uma aplicação PHP simples.

Separador Secrets para um site Node.js no KPanel

Como os Valores São Protegidos

Cada valor é encriptado antes de tocar na base de dados. Nada é guardado como texto legível, e a vista de lista nunca mostra um valor completo: mostra uma máscara com apenas os últimos quatro caracteres, para que possa distinguir duas chaves semelhantes sem expor nenhuma delas.

Cada linha tem um emblema Encrypted como lembrete disso. Ler um valor de volta é uma ação separada e deliberada, e não algo que acontece apenas ao abrir a página.

Definir, revelar e eliminar um segredo exigem todos a permissão sites:write. Um membro da equipa com acesso apenas de leitura consegue ver quais as chaves que existem e as suas máscaras, mas não os seus valores.

Os Dois Ambientes

Um controlo segmentado no topo da página alterna entre production e preview. São conjuntos de chaves completamente separados. Definir STRIPE_SECRET_KEY em produção não o cria em pré-visualização, e eliminá-lo de pré-visualização não afeta a produção.

Essa separação é o objetivo da funcionalidade. As compilações de pré-visualização são ambientes descartáveis que qualquer pessoa com acesso ao repositório pode despoletar, pelo que devem transportar credenciais de teste, não credenciais reais. Consulte Implementações de Pré-visualização Para Pull Requests para saber como os ambientes de pré-visualização são criados.

Adicionar ou Atualizar um Segredo

  1. Escolha o ambiente com o controlo segmentado.
  2. Digite o nome no campo KEY_NAME. O campo força maiúsculas à medida que escreve.
  3. Coloque o valor no segundo campo. É mascarado à medida que escreve.
  4. Clique em Set.

Definir uma chave que já existe sobrepõe-se a ela. Não existe uma ação de edição separada nem um passo de confirmação para uma sobreposição, por isso verifique o separador do ambiente antes de clicar em Set.

Regras de Nomenclatura de Chaves

Uma chave deve começar com uma letra maiúscula e pode depois conter letras maiúsculas, dígitos e underscores, até 128 caracteres. DATABASE_URL, API_KEY_V2 e SENTRY_DSN são todos válidos. Qualquer outra coisa é rejeitada com a mensagem Key deve estar em UPPER_SNAKE_CASE com letras/números/underscore.

Vale a pena conhecer mais dois limites:

  • Um valor não pode estar vazio. Submeter um valor em branco devolve value obrigatório.
  • Um valor não pode exceder 16 KB. Isso é generoso para um token, mas não é suficiente para, por exemplo, uma cadeia de certificados completa, que pertence a um ficheiro e não a um segredo.

Ler um Valor de Volta

Clique em Copy na linha. O KPanel desencripta o valor no lado do servidor e coloca-o diretamente na sua área de transferência, com uma confirmação Valor copiado para a área de transferência. O valor não é apresentado no ecrã, pelo que uma partilha de ecrã ou alguém a espreitar por cima do ombro não o consegue captar.

Cada revelação é registada no registo de auditoria do site, juntamente com quem o fez e qual a chave, e aparece no Registo de Atividade do Site.

Se precisar de verificar que um valor está correto sem o expor, compare a máscara em vez disso. Os últimos quatro caracteres são suficientes para confirmar que tem o token certo, e já estão no ecrã.

Usar um Segredo na Sua Aplicação

Copie o valor para onde quer que a sua aplicação leia a sua configuração no servidor. Para uma aplicação Node.js, isso é normalmente uma variável de ambiente definida pelo seu gestor de processos, ou um ficheiro .env na raiz da aplicação que o seu código carrega no arranque.

Não envie esse ficheiro para o seu repositório. Adicione .env a .gitignore antes de o criar. Um segredo que tenha sido enviado para um repositório git remoto tem de ser tratado como comprometido e rodado junto do fornecedor, porque permanece no histórico mesmo depois de eliminar o ficheiro.

O separador Secrets é o seu registo do que é o valor, mantido encriptado e auditado, em vez de uma nota num gestor de palavras-passe ou numa conversa de mensagens. Mantenha-o como a fonte de verdade: quando rodar uma chave junto do fornecedor, atualize-a aqui ao mesmo tempo, para que a próxima pessoa a implementar tenha o valor atual.

Eliminar um Segredo

Clique em Delete na linha. O KPanel pede-lhe para confirmar com Delete API_TOKEN? e avisa que a aplicação perderá o acesso a este valor no seu próximo reinício. Não há desfazer nem cópia guardada, por isso, se puder precisar do valor novamente, copie-o primeiro.

Elimine um segredo quando a credencial subjacente tiver sido revogada junto do fornecedor, ou quando o código que a usava tiver sido removido. Deixar chaves obsoletas por aí torna mais difícil perceber, mais tarde, quais delas realmente importam.

Rodar uma Credencial em Segurança

A ordem segura é sempre: criar a nova credencial junto do fornecedor, atualizá-la aqui, implementar, confirmar que a aplicação funciona e só depois revogar a credencial antiga junto do fornecedor.

Fazê-lo pela ordem inversa, revogando primeiro, dá-lhe uma janela em que a aplicação em execução fica com uma credencial morta e todos os pedidos que precisam dela falham. Se a alteração for arriscada, faça primeiro uma cópia de segurança para poder voltar a um estado conhecido e funcional: consulte Fazer uma Cópia de Segurança.

Resolução de Problemas

O separador Secrets não aparece no menu. O site não é um site Node.js. Verifique o emblema da stack junto ao nome do site no topo da página.

O botão Set não faz nada. Ambos os campos são obrigatórios. O botão mostra Chave + valor obrigatórios se algum deles estiver vazio.

A chave foi rejeitada. Letras minúsculas, hífenes, pontos e espaços não são permitidos. api-key e Api_Key falham ambos; API_KEY passa.

O Copy não colocou nada na área de transferência. Alguns browsers bloqueiam as escritas na área de transferência num separador inativo. Clique primeiro na página e depois clique novamente em Copy.

Para Onde Ir a Seguir

Isto foi útil?

É uma IA? Leia esta página em Markdown

Artigos relacionados

Ligar via SFTP: FileZilla, Cyberduck e Linha de ComandosSFTP (Secure File Transfer Protocol) dá-lhe acesso direto aos ficheiros do seu site no servidor. Este guia cobre tudo o que precisa para se ligar com sucesso,…Certificados SSL e HTTPSEste artigo explica o que é o SSL em linguagem simples, como o KapsuleHost gere o SSL automaticamente para os seus sites, e o que fazer caso ocorra algum…Sites Web: Por Onde ComeçarComo funciona o alojamento de sites na KapsuleHost, o que existe em cada separador de um site e qual o guia a ler para a tarefa que tem em mãos.…Monitorização do Tempo de Atividade do SiteTodos os sites na KapsuleHost são verificados automaticamente a cada 60 segundos, e o separador Uptime mostra-lhe o resultado: estado actual, percentagem de…

Ainda precisa de ajuda?

Pergunte à Kora, que conhece a sua conta, ou contacte a nossa equipa.

Contacte-nosSuporte por e-mail