21.7. 使用 Podman 事件进行审核


在以前的版本中,必须连接到事件才能正确解释事件。例如,container-create 事件必须与 image-pull 事件相关联,以了解已使用了哪个镜像。container-create 事件也不包含所有数据,如安全设置、卷、挂载等。

从 Podman v4.4 开始,您可以直接从单个事件和 journald 条目中收集关于容器的所有相关信息。数据采用 JSON 格式,与 podman container inspect 命令相同,并包含容器的所有配置和安全设置。您可以配置 Podman 来附加容器检查数据以进行审核。

先决条件

  • container-tools 元数据包已安装。

流程

  1. 修改 ~/.config/containers/containers.conf 文件,并将 events_container_create_inspect_data=true 选项添加到 [engine] 部分:

    $ cat ~/.config/containers/containers.conf
    [engine]
    events_container_create_inspect_data=true

    对于系统范围的配置,修改 /etc/containers/containers.conf/usr/share/container/containers.conf 文件。

  2. 创建容器:

    $ podman create registry.access.redhat.com/ubi8/ubi:latest
    19524fe3c145df32d4f0c9af83e7964e4fb79fc4c397c514192d9d7620a36cd3
  3. 显示 Podman 事件:

    • 使用 podman events 命令:

      $ now=$(date --iso-8601=seconds)
      $ podman events --since $now --stream=false --format "{{.ContainerInspectData}}" | jq “.Config.CreateCommand"
      [
        "/usr/bin/podman",
        "create",
        "registry.access.redhat.com/ubi8"
      ]
      • --format "{{.ContainerInspectData}}" 选项显示检查数据。
      • jq ".Config.CreateCommand" 将 JSON 数据转换为更易读的格式,并显示 podman create 命令的参数。
    • 使用 journalctl 命令:

      $ journalctl --user -r PODMAN_EVENT=create --all -o json | jq ".PODMAN_CONTAINER_INSPECT_DATA | fromjson" | jq ".Config.CreateCommand"
      [
        "/usr/bin/podman",
        "create",
        "registry.access.redhat.com/ubi8"
      ]

      podman eventsjournalctl 命令的输出数据是一样的。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.