This was Tucker's problem, except is wasn't food it was non-edible stuff.
How aggressive does he get, and what do you have to do to cause the aggression? Is it growling, snapping, actual biting? And do you have to actually grab the food to get the reaction or will he do it as you approach?
First rule is prevent the stealing as much as possible. The more the dog is stealing the more chances there are for confrontation and the more likely you are to make the guarding worse. Also, the more the dog gets to steal the more the dog will steal in the future
My second rule was once the dog has the item, it's not about stealing anymore, it's about resource guarding. This can be hard because you don't want the dog to be rewarded for stealing, but it's really hard to prevent the dog from getting rewarded and also prevent resource guarding. So I decided having a non-aggressive dog was more important at the end of the day. That is what makes rule one so important. If you don't try really hard to prevent stealing you may have a hard time ever putting an end to it, you don't want it rehearsed because it is going to be rewarding for the dog.
So with that in mind, the first thing I'd do is make sure the dog is truly fine with you around non-stolen objects/food. When he has a toy/bone/food bowl make sure you can walk up, pet the dog, touch the object, and take the object without ANY stress from your dog. If you feel the dog is getting upset at any point stop and realize he's not there yet. But if your dog is fine with that I would start by making it really AWESOME (not just neutral) for you to do those things. Randomly during the day walk up to the dog while he has food/toy/bone, pet him and give him a treat, then leave. Or touch the object, give a treat, and leave. Or pick the object up, give a treat, give the object back, and leave. Do not do this repeatedly or the dog will get annoyed. Don't do it at every meal, do it maybe once or twice a day at most. You want the dog to be HAPPY about you coming up to him while he's got food or toys.
At the same time you'll want to teach your dog to bring you things on command, a retrieve. Teach it using a toy initially. Then get him to the point where he can retrieve all of his toys no problem. Before I give a long explanation of how to teach a retrieve I'll ask, does your dog already know how to retrieve? If there is a dog toy on the floor and you point to it will your dog run and grab it and bring it to you to initiate a game of tug or fetch? Once you answer that I can tell you how to proceed with teaching a more general retrieve.
ETA: If you don't want to train a retrieve you can get rid of the guarding without one, I just personally found it very helpful for my own dog. If you don't want to do it that's fine, just skip over the retrieve stuff.
Once the dog does learn to retrieve you should start having him retrieve a WIDE variety of things. His toys, his chews, keys, remotes, etc. Tucker will retrieve change that I drop on the floor (which might not be that safe lol), I've had him retrieve a stapler, pencil sharpener, pens, etc. Because he is a stealer I try to stay away from objects that he could find on the floor normally and start chewing, like shoes and socks. We also only retrieve things off the ground because I don't want to encourage taking things off of tables/counters, as it's big problem with him and we're working very hard to teach him tables are off limits (and it's worked very well considering how he used to be and how he is now).
Next you can start asking the dog to bring you things he already has, like toys or chews he's playing with/chewing on already. He might be confused the first time you do this, since he's used to retrieving things he's not already using, so you may have to call him away from the object first, reward him for coming, then ask him to retrieve the object he left behind. Or he might figure out to bring what he has right away, depends on the dog.
Okay so this is all stuff you are doing proactively. What do you do when the dog HAS stolen something? If it is before you've taught the retrieve I would walk up to the dog, drop a few treats, and walk away, just as if it were his normal toys or chews. If he won't let you get close, toss the treats from a distance. This is where I said you might have trouble because you are making stealing so rewarding, you have to let go of that and remember that stealing can be and should be dealt with BEFORE the dog actually gets something in his mouth. Over time the dog should let you get closer and closer because he'll figure out you don't take what he has, you just bring treats, and that's cool. So you'll eventually work up to being able to walk up, pet him, hand him some treats, and walk away. Then walk up, take the item, give treats, return the item and walk away. Just like you were doing with his own toys, foods, and chews. This will take time.
If your dog DOES know the retrieve when he steals the item, and the dog does not become aggressive too easily. You can try having the dog bring the stolen item to you. This will be easier if you have already done some of the previous step, getting the dog comfortable with you approaching/coming near him and his stolen item. If the dog will retrieve it, reward and give it back. This will teach the dog to really, really trust you. You're asking him to give something up completely on his own and trust that you will return it. That's a big deal, don't let him down.
What if your dog gets something you NEED back? Then it's not about making the resource guarding better but about preventing it from getting worse. You don't want the dog to see you take something from him. At my house I'll do one of two things.
One is grab a tug toy and start running laps around the house like a crazy person. I have a very playful dog with high prey drive and low self control, he just can't help it he has to chase me and grab the toy. So he does this and we play and keep running around from room to room, it should be a very fun game. I eventually make my way with him back into the room with the stolen object he has left in it. I will then toss his tug toy across the room, away from the object and while he is turned away running after the thrown tug toy I will quickly pick up the stolen object and put it on a shelf all before he turns back. I don't want him to see me with it. Then he'll come back with the tug and we'll play for a while longer to keep him mind off of it and so he doesn't think fetching the thrown toy ends the game (and leads to the discovery that his stolen object is missing).
The second thing I'll do if I must take the object back is throw treats. I might throw three or four maybe three feet away from where the dog is with the stolen object. I will not try to take the object when he gets these treats as the dog will usually be a little worried about that happening at that point. But once he is eating those initial treats I'll start tossing more, one or two at a time further and further from the stolen object until the dog is very into chasing after and eating these treats. Then I'll toss a larger amount of treats past the dog a little further so he turns away to go get them, and pick the object up and put it on a shelf (I say this because it's important you have it out of sight before the dog turns back around). At this point you could either leave and go do something else (but get away from where the stolen item was) or go to the dog and start a training session. This may get the dog to forget about the stolen object all together.
This might be one of those situations where having a dog who steals food is a bit harder than one who steals objects simply because getting a dog to leave a tissue lying on the floor to go after treats or a tug toy is more realistic than getting a dog to leave food for treats or a game of tug. Human food is pretty awesome.
But the key is to not make the dog suspect you want to steal the object. Don't act as if the dog has anything. Don't make an angry face, don't scold, don't say "what have you got", don't stare, don't inch towards the dog, heck barely look at him. Act as if he walked in with nothing. Then go straight to a tug toy or container of treats and do one of the above. If the dog thinks you're interested in his stolen goody it'll be very hard to get him to fall for either trick. This is also another reason why you should try hard to keep stealing to a minimum. The more times you trick the dog the more likely he is to figure it out. I'm luckily because Tucker isn't the brightest bulb so always falls for it, especially the tug toy.
If the tug and treats fail you could offer to take the dog out in the yard, or on a walk or car ride (though you would actually have to do it (take him out, on a short walk, or a short car ride) or else the dog will stop falling for it). Then on your way back in tie the dog out for a minute, pop in, dispose of the stolen object he left, and go bring the dog back in.
So that's my advice. Make sure the dog knows you approaching and touching him while he has food, toys, and chews, is a really good thing. Once the dog has the item don't worry about treating the stealing problem. Teach the dog to feel safe with you approaching him and the object by approaching and giving treats, then touching and giving treats. teach the dog to retrieve things and eventually have him retrieve his toys and chews, then stolen food, to show him how trustworthy you are. This will be the ultimate proof that your dog feels safe with you around his stolen goodies. If you must take something from him do it in a way that prevents him from seeing you do it.
Do those things and I think the guarding will clear up.