Использование секретных ключей API на travis-ci
Я хотел бы использовать http://travis-ci.org/ для одного из моих проектов.
Проект представляет собой оболочку API, поэтому многие тесты основаны на использовании секретных ключей API. Для локального тестирования я просто храню их как переменные среды. Какой безопасный способ использовать эти ключи на Трэвисе?
4 ответа
У Travis есть функция для шифрования переменных среды ( "Шифрование переменных среды"). Это может быть использовано для защиты ваших секретных ключей API. Я успешно использовал это для моего ключа API Heroku.
Все, что вам нужно сделать, это установить драгоценный камень travis, зашифровать строку, которую вы хотите, и добавить зашифрованную строку в ваш .travis.yml
, Шифрование действует только для одного хранилища. travis
Команда получает ваш открытый ключ для вашего репо и может затем расшифровать строку во время сборки.
gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo
Это дает вам следующий вывод:
Please add the following to your .travis.yml file:
secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="
В соответствии с этим в документации travis ci сказано, что:
Если у вас установлены клиенты командной строки Heroku и Travis CI, вы можете получить свой ключ, зашифровать его и добавить в свой.travis.yml, выполнив следующую команду из каталога вашего проекта:
travis encrypt $(heroku auth:token) --add deploy.api_key
обратитесь к следующему руководству для установки клиента heroku в соответствии с вашей ОС
Вы также можете определить секретные переменные в настройках репозитория:
Переменные, определенные в настройках репозитория, одинаковы для всех сборок, и при перезапуске старой сборки используются самые последние значения. Эти переменные не доступны автоматически для вилок.
Определите переменные в настройках репозитория, которые:
- отличаются для каждого хранилища.
- содержать конфиденциальные данные, такие как сторонние учетные данные.
Чтобы определить переменные в настройках репозитория, убедитесь, что вы вошли в систему, перейдите к соответствующему репозиторию, выберите "Настройки" в меню "Cog" и нажмите "Добавить новую переменную" в разделе "Переменные среды".
Используйте другой набор ключей API и делайте то же самое. Ваша коробка Трэвиса будет настроена для вашей сборки, а затем полностью разрушена после того, как ваша сборка будет завершена. У вас есть root-доступ к вашему боксу во время сборки, так что вы можете делать с ним все, что захотите.