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

如何禁用quarkus-kubernetes-config的敏感配置日志输出

Quarkus集成Kubernetes ConfigMap时敏感信息打印到控制台的解决方法

问题原因

之前调整okhttp3.internal.platform.Platform日志级别未生效,核心原因有两点:

  1. 输出ConfigMap、Secret明文的日志并非来自该类,主要来源是Quarkus kubernetes-config扩展自带的配置源加载日志,以及fabric8 Kubernetes客户端、OkHttp日志拦截器打印的API请求响应内容
  2. 之前编写的日志配置YAML缩进错误,category、console节点未作为log的子节点配置,所有日志级别调整规则根本没有被Quarkus加载生效

需要调整的配置项

按以下规则修改配置即可完全阻止敏感信息输出:

  • 关闭kubernetes-config扩展启动时的配置源内容打印:将quarkus.kubernetes-config.log-config-sources设为false。该配置默认值为true,会在启动时以INFO级别打印所有从ConfigMap、Secret拉取到的完整键值对,是敏感信息泄露的最主要来源
  • 调整正确的日志类别级别,覆盖所有可能打印配置内容的日志输出:
    • 将io.fabric8.kubernetes.client类别的日志级别设为WARN,避免打印Kubernetes API的请求响应体(其中包含ConfigMap、Secret的完整明文)
    • 将okhttp3.logging.HttpLoggingInterceptor类别的日志级别设为WARN,拦截HTTP层输出的明文请求响应内容
    • 修正YAML配置缩进,确保所有日志规则能被Quarkus正常识别加载
  • (可选)如果之前开启了配置DEBUG日志,将io.quarkus.config类别的日志级别调整为INFO及以上,避免DEBUG级别下打印所有加载到的配置值

修正后的完整配置参考

quarkus:
  application:
    name: myservice
  log:
    category:
      "io.fabric8.kubernetes.client":
        level: WARN
      "okhttp3.logging.HttpLoggingInterceptor":
        level: WARN
      "io.quarkus.config":
        level: INFO
    console:
      json: false
      color: false
  kubernetes-config:
    enabled: true
    # 关闭配置源明文打印
    log-config-sources: false
    config-maps: myservice
    secrets:
      ~: my-credentials
      enabled: true
  smallrye-graphql:
    ui:
      enable: true
      always-include: true
    show-runtime-exception-message: io.quarkus.security.ForbiddenException
  swagger-ui:
    always-include: true
  pagination:
    defaultPageNumber: 1
    defaultPageSize: 1000

配置修改后重启应用即可生效,启动阶段不会再输出ConfigMap、Secret中存储的敏感字段内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:48:25