2017-07-11 1 views
2

Mon application open source utilise la fonction Parameter Store d'AWS pour conserver des copies sécurisées des secrets d'application (mots de passe de base de données, etc.). Lorsque mon application est déployée sur EC2, un script récupère ces secrets et les met à la disposition du code, et j'exécute également le même script localement.Est-il sûr de récupérer des informations d'identification sécurisées dans Travis CI dans un dépôt open-source?

Certains de mes tests ont besoin d'un accès de base de données pour exécuter et donc je besoin de mon script de construction Travis avoir accès.

Est-il sûr pour moi d'exécuter ce script sur mon (public) Travis construire? Autant que je sache, Travis n'expose pas les artefacts de construction n'importe où (au-delà de ce qui est sur GitHub, qui n'a pas mes secrets). Je sais que je peux crypter des éléments de configuration dans mon fichier .travis.yml mais, idéalement, il y aurait un seul endroit où ces données existent, alors je peux faire pivoter les clés de configuration sans les mettre à jour à plusieurs endroits.

Y at-il un moyen sûr/mieux que je peux le faire?

Répondre

1

Pas vraiment.

Si vous acceptez les demandes de traction, il est trivialement facile de créer une demande de tirage qui déverse les décharges publiques les clés de la console Travis. Comme il n'y a pas de restrictions sur ce que les PR peuvent modifier, éditer, etc., où que se trouvent les clés, quelqu'un peut facilement modifier le code &.

Travis a construit secure environment variables pour éviter ce type d'attaque, à savoir de ne pas exposer les variables à PRs. Cela signifie que les tests nécessitant des variables d'environnement sécurisées ne peuvent pas être exécutés avec des variables cryptées, mais c'est un compromis que l'on doit faire.

+0

Bon point, complètement oublié le côté PR des choses. Continuera à jouer avec les variables d'environnement sécurisées alors. –