Um gerenciador de segredos é uma ferramenta para armazenar e gerenciar suas senhas, chaves de API, credenciais de banco de dados e outros tipos de dados confidenciais que seu aplicativo exige.
Segredos codificados em códigos-fonte de aplicativos ou armazenados em arquivos de texto simples para consumo de seus códigos podem ser explorados por entidades mal-intencionadas que podem inspecionar os aplicativos ou componentes em seu sistema. Este risco pode ser mitigado com gerenciadores de segredos.
dotenv-vault é um desses gerenciadores de segredos que fornece uma alternativa mais segura para colocar seus segredos em código.
[!Observação]
Este não é um tutorial sobre como usar dotenv-vault. O objetivo deste documento é explicar como um gerenciador de segredos pode ajudar os desenvolvedores a evitar codificar segredos ou armazená-los em arquivos de texto simples. Você pode aprender como começar a usar dotenv-vault aqui.
Digamos que eu tenha informações confidenciais sobre um personagem específico do filme Star Wars: Episódio V e quero que meu programa use essas informações.
def spoiler(): spoiler = "Darth Vader is Luke Skywalker's father" return { "spoiler": spoiler }
Em vez de codificar as informações, eu as escreveria como uma variável de ambiente no arquivo .env:
SPOILER="Darth Vader is Luke Skywalker's father"
Com dotenv-vault, meu programa é capaz de acessar informações confidenciais usando a variável de ambiente.
import os from dotenv_vault import load_dotenv load_dotenv() # Take environment variables from .env def spoiler(): spoiler = os.getenv("SPOILER") # Get the secret return { "spoiler": spoiler }
Em seguida, criptografo a variável de ambiente sincronizando o arquivo .env. Assim que a sincronização for concluída, dados conhecidos como DOTENV_KEY podem ser gerados. Esta saída pode ser lida pelo meu programa como uma variável de ambiente em produção.
DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production' python main.py
Como resultado, meu aplicativo de produção consegue acessar o segredo.
{ "spoiler": "Darth Vader is Luke Skywalker's father" }
Há uma variedade de soluções de gerenciamento de segredos disponíveis. Cada gerenciador de segredos vem com seu próprio conjunto de prós e contras. Escolha a opção que melhor atende aos requisitos da sua organização.
Lista de gerenciadores de segredos alternativos:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3