我们的应用程序部署在 GKE 上,并使用 Istio 作为每个容器上的 sidecar。
我们使用 Istio 来实现所有良好的用例、授权、流量分割、路由等。
在生产中,我们观察到 Istio(使用其默认日志配置)记录了完整的 URL,在我们的例子中,该 URL 包含我们不希望被记录的敏感信息。
经过研究,发现 Istio OOB 没有办法将其配置为不记录 queryParameters。
已尝试以下方法但无济于事:
将 Istio 日志级别设置为“关闭”
sidecar.istio.io/logLevel: "off"
将 componentLogLevel 设置为“错误”和“关闭”
sidecar.istio.io/componentLogLevel
curl -s -X POST http://localhost:15000/logging?level=off
将agentLogLevel设置为
none
。
sidecar.istio.io/agentLogLevel: "default:none"
日志快照
2024-02-12T23:25:51.216339Z info cache returned workload trust anchor from cache ttl=23h59m59.783666749s
2024-02-12T23:25:51.216647Z info ads SDS: PUSH request for node:istio-test-1.0.1-7cc4c4f575-ddd12.istio-ns resources:1 size:4.0kB resource:default
2024-02-12T23:25:51.216758Z info ads SDS: PUSH request for node:istio-test-1.0.1-7cc4c4f575-ddd12.istio-ns resources:1 size:1.1kB resource:ROOTCA
[2024-02-12T23:27:13.262Z] "GET /istio-test?queryParam=Sensitive HTTP/1.1" 403 - rbac_access_denied_matched_policy[none] - "-" 0 19 0 - "10.0.0.0"...
帮助表示感谢!
我们可以使用这个注解 ---> "sidecar.istio.io/logLevel": off 来禁用 istio-proxy (Sidecar) 的日志。
您可以在容器的spec下添加此注释并再次应用yaml。 Pod 将重新启动并且不会出现日志。