Tracing captures sensitive URL query parameters #12879
Labels
kind/bug
Categorizes issue or PR as related to a bug.
needs-priority
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
What happened:
The (optional) tracing configuration, will include url query strings, which often have sensitive information in them for example, if you use an oauth login flow
By default, sensitive information shouldn't be captured in traces
What you expected to happen:
Trace spans don't contain url query parameters
NGINX Ingress controller version v1.12.0
Kubernetes version (use
kubectl version
): N/AEnvironment:
Cloud provider or hardware configuration: N/A
OS (e.g. from /etc/os-release): N/A
Kernel (e.g.
uname -a
):N/AInstall tools:
Please mention how/where was the cluster created like kubeadm/kops/minikube/kind etc.
Basic cluster related info:
kubectl version
kubectl get nodes -o wide
How was the ingress-nginx-controller installed:
-Helm package 4.12.0
helm -n <ingresscontrollernamespace> get values <helmreleasename>
Relevant part of the vlaues.yaml
Current State of the controller:
N/A
Current state of ingress object, if applicable:
N/A
Others:
kubectl describe ...
of any custom configmap(s) created and in useHow to reproduce this issue:
As minimally and precisely as possible. Keep in mind we do not have access to your cluster or application.
Help up us (if possible) reproducing the issue using minikube or kind.
Install minikube/kind
Install the ingress controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/baremetal/deploy.yaml
Install an application that will act as default backend (is just an echo app)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/docs/examples/http-svc.yaml
Create an ingress (please add any additional annotation required)
echo "
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: foo-bar
annotations:
kubernetes.io/ingress.class: nginx
spec:
ingressClassName: nginx # omit this if you're on controller version below 1.0.0
rules:
- host: foo.bar
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: http-svc
port:
number: 80
" | kubectl apply -f -
Configure tracing, and an otel compatible storage
make a request
Anything else we need to know:
This issue is actually coming from </~https://github.com/open-telemetry/opentelemetry-cpp-contrib/blob/main/instrumentation/nginx/README.md > where I can't see a way to configure this plugin to not store the url query parameters. Also, my cpp isn't good enough to try and fix it there
The text was updated successfully, but these errors were encountered: