Короткий ответ Секреты хранят во внешнем менеджере секретов или встроенном secret-store CI-системы, подключают к джобе через переменные с пометкой «secret»/masked, выдают джобе временные учётные данные с ограниченным сроком жизни и настраивают маскирование вывода, чтобы значение не печаталось в логах даже при случайном echo. Как это работает подробнее большинство CI-систем (GitLab CI, GitHub Actions) поддерживают защищённые переменные, которые подставляются в окружение джобы без отображения значения в UI и автоматически маскируются в логах при точном совпадении строки. Для более строгих требований используют динамическую выдачу через Vault/OIDC-федерацию: джоба обменивает короткоживущий CI-токен на временные креды непосредственно перед выполнением, и эти креды истекают сразу после джобы. Пример кода Что использовать на практике Практика. избегают передачи секретов через аргументы командной строки (видны в ps aux и иногда в логах), передают через переменные окружения или файл с ограниченными правами; настраива