Примерно в 11:30 по восточному времени 21 ноября 2022 г. наши конвейеры непрерывной интеграции начали давать сбои из-за уведомления об обновлении/обновлении Checkov с подсказкой ввода (см. вывод ниже).
Есть ли опция командной строки, чтобы пропустить эту проверку от bridgecrew?
$ checkov
_ _
___| |__ ___ ___| | _______ __
/ __| '_ \ / _ / __| |/ / _ \ \ / /
| (__| | | | __/ (__| < (_) \ V /
\___|_| |_|\___|\___|_|\_\___/ \_/
By bridgecrew.io | version: 2.1.244
Update available 2.1.244 -> 2.2.80
Run pip3 install -U checkov to update
Would you like to “level up” your Checkov powers for free? The upgrade includes:
• Command line docker Image scanning
• Software Composition Analysis
• Centralized policy management
• Free bridgecrew.cloud account with API access
• Auto-fix remediation suggestions
• Enabling of VS Code Plugin
• Dashboard visualisation of Checkov scans
• Integration with GitHub for:
◦ Automated Pull Request scanning
◦ Auto remediation PR generation
• Integration with up to 100 cloud resources for:
◦ Automated cloud resource checks
◦ Resource drift detection
and much more...
It's easy and only takes 2 minutes. We can do it right now!
To Level-up, press 'y'...
Level up? (y/n): Traceback (most recent call last):
File "/usr/bin/checkov", line 9, in <module>
sys.exit(run())
File "/usr/lib/python3.10/site-packages/checkov/main.py", line 368, in run
bc_integration.onboarding()
File "/usr/lib/python3.10/site-packages/checkov/common/bridgecrew/platform_integration.py", line 696, in onboarding
reply = self._input_levelup_results()
File "/usr/lib/python3.10/site-packages/checkov/common/bridgecrew/platform_integration.py", line 860, in _input_levelup_results
result = str(input('Level up? (y/n): ')).lower().strip() # nosec
EOFError: EOF when reading a line
Uploading artifacts for failed job
00:01
Uploading artifacts...
WARNING: plan.json: no matching files
ERROR: No files to upload
Я пытался обновить версию с помощью pip, но старая версия все еще используется. Это отдельная проблема, и на данный момент я сосредоточен на том, чтобы полностью избежать проверки обновлений.
bash-5.1# checkov --version
2.1.244
bash-5.1# pip3 install -U checkov
... (Lots of output)
bash-5.1# checkov --version
2.1.244
Это мой файл .checkov.yaml:
compact: true
quiet: true
skip-download: false
download-external-modules: true
directory:
- ./
skip-check:
- CKV_AWS_18
- CKV_AWS_50
- CKV_AWS_115
- CKV_AWS_116
- CKV_AWS_117
- CKV_AWS_158
- CKV_AWS_173
- CKV_OPENAPI_4 # some APIs are public
- CKV_OPENAPI_5 # some APIs are public
- LOW
Вы получаете этот вывод только потому, что вызываете checkov без каких-либо параметров командной строки. Так уже около года, может даже больше.
Я пытался обновить версию с помощью pip, но старая версия все еще используется.
Версия 2.1.244 была выпущена 2 октября, так что она не сегодняшняя. Я присоединяюсь к предложению Джеймса использовать параметры - это позволит вообще избежать этого запроса. А также проверить, чего не хватает в депе вашей машины, так как кажется, что последние чековы не могут быть установлены. Настоятельно рекомендуем использовать докер checkov напрямую, если вы не в настроении отлаживать и это!
Дата выпуска версии 2.1.244 значения не имеет. Наши трубопроводы работали в 10:30 и прекращали работать в 11:00. Мы используем файл yaml, а не параметры командной строки.
Если кто-то еще столкнется с этим, я исправил это, явно передав флаг файла конфигурации в командной строке:
checkov --config-file .checkov.yaml
Мне до сих пор неясно, почему конвейеры начали давать сбои, когда мы использовали предварительно созданный образ Docker для выполнения наших заданий.
Я использую файл конфигурации checkov вместо параметров командной строки. Суть моего вопроса заключается в том, какой параметр командной строки или файла конфигурации я могу использовать, чтобы пропустить эту проверку обновления.