As variáveis ​​de ambiente do Elastic Beanstalk são um local apropriado para armazenar valores secretos?


15

Eu implantei meu aplicativo Django no Elastic Beanstalk com a intenção de usar sua interface de configuração de variável de ambiente para armazenar minhas chaves de API em vez de armazená-las na minha fonte (como descrito aqui /programming//a/17878600 ).

Depois disso, descobri que o que o Beanstalk chama de variáveis ​​de ambiente não são realmente variáveis ​​de ambiente do shell (como mencionado aqui /programming//a/24564832/378638 ) e são armazenadas na instância em um arquivo de configuração (como descrito aqui /programming//a/24566283/378638 ).

Isso parece um problema de segurança para mim. Isso não derrota o objetivo de manter as chaves secretas fora da fonte? Entendo que eles não estão mais no repositório, mas ainda estão acessíveis na instância.

Estou entendendo mal o risco? Eu sou administrador de sistemas por herança, por favor, desculpe minha ignorância aqui. Devo apenas carregar as variáveis ​​do Beanstalk como variáveis ​​de ambiente do shell por meio do arquivo de configuração e seguir em frente, já que o arquivo é acessível apenas via raiz ou a minha preocupação é válida? Obrigado.

Respostas:


12

O objetivo de manter segredos fora do código fonte é para que eles não entrem no controle da fonte . Isso é particularmente útil em projetos de código aberto.

Quando implantado, não importa se o segredo está em um arquivo ou envvar. O importante é que apenas o usuário do SO que seu programa está executando possa lê-lo. Esse é o padrão para envvars, o que é conveniente.

Raiz sempre pode ler tudo. Assim, a Amazon pode conhecer seus valores secretos, se eles quiserem, porque são raiz.

No entanto, eles suportam os caros módulos de segurança de hardware (HSM), o que tornaria suas chaves ilegíveis. Obviamente, eles ainda podem usar o HSM para descriptografar suas coisas, apenas nunca obtêm a chave real.

Então, você precisa confiar na Amazon, hospedar coisas sozinho ou colocar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.