✔️ Обеспечение безопасности Travis CI |

✔️ Обеспечение безопасности Travis CI

Мануал

Обзор

Travis CI – это критически важный сервис, используемый во многих современных конвейерах CI/CD.

Он используется для автоматизации тестирования и развертывания, что позволяет разработчикам развертывать системы быстрее, чем раньше.

Однако Travis должен получить полный доступ к репозиториям кода, и чаще всего ему предоставляются токены доступа к AWS или другому облаку, чтобы код мог быть выгружен в его среду.

Из-за этого Travis может легко стать слабым местом в системе безопасности, если не настроить его должным образом.

🦊 Современное состояние безопасности CI/CD и как предотвратить распространенные ошибки

Защита учетных данных

Может показаться заманчивым хранить токены доступа и секретные токены в директиве .travis.yml ‘deploy’, но в этом случае облачные учетные данные будут открыты любому, кто имеет доступ к исходному коду.

Чтобы смягчить эту проблему, Travis позволяет шифровать секретные ключи с помощью закрытого ключа, хранящегося в Travis.

Travis генерирует приватный ключ, уникальный для каждого репозитория, что позволяет пользователям шифровать маркеры доступа, действительные только для этого репозитория.

Ключи не могут быть использованы для доступа к облачной инфраструктуре и не могут быть использованы с другими репозиториями для развертывания кода.

Ниже приведен пример, в котором мы шифруем наш секретный токен AWS, чтобы Travis мог развернуть код на Elastic Beanstalk после тестирования:

Установка Travis cli

sudo apt install ruby ruby-dev
sudo gem install travis

Авторизуйтесь с помощью учетных данных Github (они отправляются только в Github).

travis login --pro
Username: myusername
Password for myusername: ********************

Смените каталог на локальный клон вашего Git-репо и используйте ‘travis pubkey’, чтобы подтвердить, что Travis может получить доступ к открытому ключу репо.

cd myrepo
travis pubkey
Public key for myAccount/myrepo:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPCS1c64ok4DfqNohEUAAoyD1U5QO6TLGjQ[...]

Зашифруйте свой секретный токен доступа (Travis будет использовать открытый ключ, указанный выше).

travis encrypt "my_secret_token"
Please add the following to your .travis.yml file:
secure: "CsptKIYpdGKS0d6FBrDmya40E9QA0waRfA0AxsvARSplYYuZkSj45jBFPY [...]"

Поместите зашифрованный токен в файл .travis.yml под директивой ‘deploy’.

   deploy: 
      provider: elasticbeanstalk 
      access_key_id: AKXRJXRNXDEXQASXHOXA 
      secret_access_key: secure: CsptKIYpdGKS0d6FBrDmya40E9QA0waRfA0AxsvARSplYYuZkSj45jBFPY [...]
  1. Если секретные токены уже были закоммичены в репозиториях, ключи следует немедленно удалить и создать заново. Если на Github были закоммичены ключи в открытом виде, их следует считать скомпрометированными.
  2. Используемые секретные токены должны иметь минимальные права и политики для вашего окружения, не используйте токены root.
  3. Хорошей практикой является регулярная генерация новых токенов.

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий