Как создать проект AWS CodeBuild без предоставления исходных учетных данных

Если я не ошибаюсь, в CodeBuild есть поразительный недостаток безопасности, заключающийся в том, что все добавленные учетные данные доступны для любого проекта сборки кода в учетной записи? Мне нужно предоставить токены личного доступа GitHub для нескольких проектов без перекрестного обмена конфиденциальной информацией между проектами. Разве это невозможно?

ImportSourceCredentials docs CreateProject документы

Единственное поле аутентификации устарело (OAUTH), и OAuth бесполезен для меня в моей ситуации.

Мой текущий обходной путь - передать токен личного доступа GitHub в URL-адрес, который, похоже, работает для GH.


person cyberwombat    schedule 11.11.2020    source источник


Ответы (2)


Из документации: учетные данные являются глобальными для данной учетной записи в данном регионе - они не определены для каждого проекта CodeBuild. CodeBuild позволяет хранить только одни учетные данные заданного типа.

По сути, CodeBuild w GH в значительной степени ограничен внутренними проектами. Мне удалось решить свою проблему, создав внутренний модуль (поэтому я подключил GitHub OAuth из панели AWS CodeBuild) и использовал этот модуль (nodejs) в качестве основы моего проекта сборки. В моей спецификации сборки я запускаю команду пряжи с репозиторием, который я действительно хочу использовать (используя встроенный токен личного доступа), чтобы добавить это в свой проект. Затем я импортирую модуль в свое основное поле ввода, которое я определил в моем первом внутреннем проекте.

person cyberwombat    schedule 17.11.2020

Я использую AWS Secrets Manager для решения именно этой проблемы. Вот отрывок:

- echo Getting GitHub token
- SSH_KEY_BASE64=$(aws secretsmanager get-secret-value --secret-id ${GITHUB_SSH_KEY} | jq --raw-output '.SecretString' | jq .key | xargs)
- echo $SSH_KEY_BASE64 > /tmp/ssh_key_base_64
- base64 -d /tmp/ssh_key_base_64 > ~/.ssh/id_rsa
- chmod 400 ~/.ssh/id_rsa
- eval $(ssh-agent)
- ssh-add ~/.ssh/id_rsa
- echo "  StrictHostKeyChecking no" >> ~/.ssh/config
- chmod 644 ~/.ssh/config

person Tomek Klas    schedule 18.11.2020
comment
Спасибо, но это не совсем решает проблему. У меня нет проблем с получением или хранением токена - похоже, что невозможно сделать, так это управлять более чем одним токеном или даже передавать токенизированный URL-адрес репозитория github во время сборки. CodeBuild принимает не более одного токена GH (может быть личным или OAuth) и принимает только имя пользователя / репо вместо полного URL-адреса git. - person cyberwombat; 19.11.2020