Как защитить переменную CIRCLE_BRANCH в CircleCi? - PullRequest
0 голосов
/ 10 октября 2019

Я устанавливаю конвейер CI / CD для сред env / staging / prod моей компании. Все эти среды существуют в отдельных учетных записях AWS, причем каждая учетная запись играет роль, которую может принять на себя какой-то разработчик в компании.

Средний разработчик будет иметь разрешения на развертывание для dev, но не для промежуточной или рабочей. Это обеспечивается ограничением ролей IAM, которые они могут принимать.

Пользователю CI потребуются разрешения для принятия роли для обновления всех трех envs.

Сейчас кажется, что я могу использовать CIRCLE_BRANCH переменная окружения Circle дает нам возможность определить, является ли вызывающий абонент локальным пользователем или объединен с нашими dev / staging / prod git ответвлениями. Но это кажется небезопасным, так как любой разработчик может зайти в файл yaml конфигурации CircleCi и набрать:

run: echo 'export CIRCLE_BRANCH=prod' >> $BASH_RC

Внезапно они могут обновить staging / prod infra, так как их обычная учетная запись AWS не имеет доступаиспользовать разрешения пользователя CI в качестве прокси.

Как я могу предотвратить это и обеспечить защиту ролей CI?

...