Les variables d'environnement d'Elastic Beanstalk sont-elles un endroit approprié pour stocker des valeurs secrètes?

15

J'ai déployé mon application Django sur Elastic Beanstalk avec l'intention d'utiliser son interface de configuration de variable d'environnement pour stocker mes clés API au lieu de les stocker dans ma source (comme décrit ici /programming//a/17878600 ).

Après cela, j'ai découvert que ce que Beanstalk appelle des variables d'environnement ne sont pas en fait des variables d'environnement shell (comme mentionné ici /programming//a/24564832/378638 ) et sont stockées sur l'instance dans un fichier de configuration (comme décrit ici /programming//a/24566283/378638 ).

Cela me semble être un problème de sécurité. Cela ne va-t-il pas à l'encontre du but de garder les clés secrètes hors de la source? Je comprends qu'ils ne sont plus dans le référentiel, mais ils sont toujours accessibles sur l'instance.

Suis-je en train de mal comprendre le risque? Je suis administrateur système par héritage, veuillez donc excuser mon ignorance ici. Dois-je simplement charger les variables Beanstalk en tant que variables d'environnement shell via le fichier de configuration et continuer car le fichier est uniquement accessible via root, ou ma préoccupation est-elle valide? Je vous remercie.

M. Keller
la source

Réponses:

12

Le but de garder les secrets hors du code source est de ne pas entrer dans le contrôle de code source . Ceci est particulièrement utile dans les projets open source.

Une fois déployé, peu importe si le secret est dans un fichier ou un envvar. Ce qui est important, c'est que seul l'utilisateur du système d'exploitation que votre programme exécute peut le lire. C'est la valeur par défaut pour les envvars, ce qui est pratique.

Root peut toujours tout lire. Amazon peut donc connaître vos valeurs secrètes s'il le souhaite, car elles sont root.

Cependant, ils prennent en charge les modules de sécurité matériels coûteux (HSM), ce qui rendrait vos clés illisibles. Bien sûr, ils pourraient toujours utiliser le HSM pour décrypter vos trucs, mais jamais obtenir la clé réelle.

Donc, soit vous devez faire confiance à Amazon, soit héberger vous-même, soit colocaliser.

Neil McGuigan
la source