First, any time you feed your dog or puppy, make him sit and wait as you place his dish in front of him. In fact, you can even use the command "wait" to reinforce the wait time during training. If he doesn't wait, or gets up when you put the food down take it back up, make him sit again and retry the process.
It may take several tries but eventually when the puppy or dog waits after you have put the food down tell him "eat" and release him to eat. Do this each and every time you feed your dog or puppy and they will soon learn not only that you are in control of the food but also that you will share your food with him when it is time to eat.
Later on you can also add more wait time before you actually give the "eat" command once you put the food down. This extra time may come in handy down the road in various situations. Remember, once he complies and follows your commands to reward him with praise and let him enjoy his meal.
In just a few weeks your German Shepherd should have no problem waiting for the "eat" command. This is a very important and complex skill, teaching your dog the ability to restrain himself on command. Once he is solid on this you are well on your way to the next proper dog feeding training issue.
Certain dogs have food handling or food guarding issues. Either of these can be dangerous if not taken care of soon - the best thing to do is to prevent these food issues from appearing in the first place.
Here's one way to do it. From time to time, as your dog is eating, put your hands near his food, touch his food bowl or even his food if possible.