You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Falco监控Docker镜像?含Ubuntu测试与AWS Fargate部署需求

在Ubuntu上用Falco监控Docker镜像的步骤

1. 安装Falco及Docker插件

  • 添加Falco软件源并安装:
    curl -fsSL https://download.falco.org/packages/deb/public.key | sudo gpg --dearmor -o /usr/share/keyrings/falco-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/falco-archive-keyring.gpg] https://download.falco.org/packages/deb stable main" | sudo tee /etc/apt/sources.list.d/falco.list
    sudo apt update && sudo apt install falco -y
    
  • 安装Docker监控插件:
    sudo falcoctl plugin install falcosecurity/docker
    

2. 配置监控规则

  • 编辑Falco主配置文件/etc/falco/falco.yaml,启用Docker插件:
    在plugins段添加:
    plugins:
      - name: docker
        library_path: libdocker.so
        init_config: {}
        open_params: "unix:///var/run/docker.sock"
    
  • 自定义镜像监控规则,创建/etc/falco/rules/docker-image-rules.yaml:
    - rule: 非授权Docker镜像拉取
      desc: 检测拉取未批准的Docker镜像行为
      condition: evt.type = "pull" and docker.image.repository !~ "^(你的批准仓库/.*|docker.io/ubuntu:.*)$"
      output: "检测到非授权镜像拉取(用户=%user.name, 镜像=%docker.image.repository:%docker.image.tag)"
      priority: WARNING
      tags: [docker, image, compliance]
    
  • 重启Falco加载配置:
    sudo systemctl restart falco
    

3. 验证监控效果

  • 拉取测试镜像触发规则:
    docker pull alpine:latest
    
  • 查看Falco告警日志:
    sudo journalctl -u falco -f
    

AWS Fargate部署Falco监控要点

Fargate不支持内核模块,需用eBPF用户态模式部署:

1. 准备Falco容器镜像

  • 自定义镜像(可选),Dockerfile示例:
    FROM falcosecurity/falco:latest
    RUN falcoctl plugin install falcosecurity/docker
    COPY ./docker-image-rules.yaml /etc/falco/rules/
    
  • 构建并推送到AWS ECR:
    aws ecr create-repository --repository-name falco-fargate
    docker build -t falco-fargate .
    docker tag falco-fargate:latest <你的AWS账号ID>.dkr.ecr.<区域>.amazonaws.com/falco-fargate:latest
    aws ecr get-login-password | docker login --username AWS --password-stdin <你的AWS账号ID>.dkr.ecr.<区域>.amazonaws.com
    docker push <你的AWS账号ID>.dkr.ecr.<区域>.amazonaws.com/falco-fargate:latest
    

2. 配置Fargate任务定义

  • 网络模式选择awsvpc(Fargate默认)
  • 挂载卷:将主机的/var/run/docker.sock挂载到容器内同路径
  • 环境变量:设置FALCO_BPF_PROBE=""启用eBPF用户态模式
  • IAM角色:赋予Falco访问CloudWatch Logs的权限,用于推送告警日志
  • 日志配置:指定CloudWatch Logs作为日志驱动

3. 部署并验证

  • 通过CLI启动Fargate任务:
    aws ecs run-task --cluster <你的集群名> --task-definition falco-fargate --launch-type FARGATE --network-configuration "awsvpcConfiguration={subnets=[<子网ID>],securityGroups=[<安全组ID>],assignPublicIp=ENABLED}"
    
  • 登录CloudWatch Logs查看Falco的告警日志,确认监控正常

内容的提问来源于stack exchange,提问作者RAUL RODRIGUEX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:05:39