Allow override of metrics URL in client for security
Some use cases require being able to protect against a bad actor on the proxy side. E.G. someone with access to the proxy could send valid yet malicious requests through the client, defeating the purpose of the network barrier.
For example, even with RBAC setup properly, running a Kubernetes Pod with a sidecar client container would allow access to the other services in the pod by a compromised prometheus environment. I think many people's security requirements won't allow that.
This patch adds a backwards compatible --override-url option to the client.
A number of others have looked for this same thing. For example PR #26, and some forks, such as Adobe's.
Maybe better than a single override would be to have a allow filter list like --scrape-filter="http://client:9[12]\d\d/metrics".
A whitelist like that makes more sense.
@SuperQ if you add filter and allow multiple urls then how will you add this in request URL as that take only url , can you provide some example the the scrape filter which you gave in comment
I feel this risk is mitigated by the check in this file: https://github.com/prometheus-community/PushProx/blob/master/cmd/client/main.go#L131
It blocks the client from making requests to any host on the network