Handling special headers at Istio Ingress Gateway

Hi Team,
I have a requirement where I need to capture a few special headers when the request enters the system (Ingress Gateway). I would like to store these headers as baggage along with the trace.

I am currently exploring if this can be achieved using an Envoy Filter. I am yet to dig in. I first wanted to get some feedback if this is the right approach or are there any better alternatives.