docker - docker compose 上的 Falco 安全性和 falcosidekick
问题描述
我正在尝试在docker compose中运行falco和falcosikick容器。
version: "3.9"
services:
falco:
image: falcosecurity/falco:latest
privileged: true
volumes:
- /var/run/docker.sock:/host/var/run/docker.sock
- /dev:/host/dev
- /proc:/host/proc:ro
- /boot:/host/boot:ro
- /lib/modules:/host/lib/modules:ro
- /usr:/host/usr:ro
- /etc:/host/etc:ro
- /var/log/falco_events.log:/var/log/falco_events.log
- /home/ubuntu/falco.yaml:/etc/falco/falco.yaml
- /home/ubuntu/falco_rules.yaml:/etc/falco/falco_rules.yaml
- /home/ubuntu/falco_rules.local.yaml:/etc/falco/rules.d/custom-rules.yaml
falcosidekick:
image: falcosecurity/falcosidekick
ports:
- 2801:2801
我将 falco.yaml 配置为将 http_output 发送到 falcosidekick 容器:
http_output:
enabled: true
url: "http://falcosidekick:2801"
然后我将松弛配置添加到 falco.yaml
debug: false
customfields: # custom fields are added to falco events
Akey: "AValue"
Bkey: "BValue"
Ckey: "CValue"
mutualtlsfilespath: "/etc/certs" # folder which will used to store client.crt, client.key and ca.crt files for mutual tls (default: "/etc/certs")
slack:
webhookurl: "https://hooks.slack.com/services/XXX/XXXX/XXXXX"
#footer: "" # Slack footer
#icon: "" # Slack icon (avatar)
#username: "" # Slack username (default: Falcosidekick)
outputformat: "all" # all (default), text, fields
minimumpriority: "" # minimum priority of event for using this output, order is emergency|alert|critical|error|warning|notice|informational|debug or "" (default)
messageformat: 'Alert : rule *{{ .Rule }}* triggered by user *{{ index .OutputFields "user.name" }}*' # a Go template to format Slack Text above Attachment, displayed in addition to the output from `SLACK_OUTPUTFORMAT`, see [Slack Message Formatting](#slack-message-formatting) in the README for details. If empty, no Text is displayed before Attachment.
使用这种配置,我的 slack 频道从未收到警报。怎么了?
谢谢
解决方案
falco 和 falcosidekick 的配置必须在 2 个不同的文件中,这意味着您还需要在 falcosidekick 容器中挂载一个卷。如果您愿意,您也可以使用环境变量(但这意味着您的 slack webhook url 将在您的 docker-compose 文件中以明文形式显示)。
version: "3.9"
services:
falco:
image: falcosecurity/falco:latest
privileged: true
volumes:
- /var/run/docker.sock:/host/var/run/docker.sock
- /dev:/host/dev
- /proc:/host/proc:ro
- /boot:/host/boot:ro
- /lib/modules:/host/lib/modules:ro
- /usr:/host/usr:ro
- /etc:/host/etc:ro
- /var/log/falco_events.log:/var/log/falco_events.log
- /home/ubuntu/falco.yaml:/etc/falco/falco.yaml
- /home/ubuntu/falco_rules.yaml:/etc/falco/falco_rules.yaml
- /home/ubuntu/falco_rules.local.yaml:/etc/falco/rules.d/custom-rules.yaml
falcosidekick:
image: falcosecurity/falcosidekick
ports:
- 2801:2801
volumes:
- /home/ubuntu/falcosidekick.yaml:/etc/falco/falcosidekick.yaml
command: "-c /etc/falco/falcosidekick.yaml"
推荐阅读
- r - r中的rbinom函数,试图得到概率
- javascript - 允许使用 javascript 在引导表中进行不区分重音的搜索
- mysql - 如何使用存储过程和事务将其他表中的表相关数据插入到表中?
- python - 生成从整数 1-18 中选择的 3 组 6 个数字的所有可能集合
- python - 使用 Python 获取屏幕方向
- rust - 如何在通用结构中定义 const 闭包
- python - astropy.io.fits:如何将新卡片附加到 fit 文件的标题中?
- ios - 非越狱ios上的mozilla webxr-viewer远程调试
- java - 路线规划器二维数组
- python - 如何在不出现 SyntaxError 的情况下将两个数字相除?