He is "snapping" at your hands simply because he isn't aware that it hurts and because you haven't shown him that it won't be allowed. I don't allow pups to touch me anywhere with teeth. It doesn't matter if it hurts or I barely feel it. Pups bite each other. It's what they do. It's how they communicate with each other. There is likely no aggression or anything like that to be worried about. I always say "no biting"...and I'm loud about it. I make it absolutely clear that they are not to use teeth on me.
I'll explain with an example. Pretend I am playing with a pup. He or she gets a little rambunctious and begins to snap or mouth. I'll say AH AH NO BITING. Pup might become upset or shy. This is not what you want. As soon as the NO BITING command is given, pup settles down, you can praise calmly - good boy, pets, etc. You want to reward the good, nice behavior. Play is fine - biting is not. It's totally normal for a pup to get excited and want to bite and snap and mouth and jump. This is all normal puppy behavior. It's your job as mom to limit play, set boundaries, reinforce good behavior, and show them clearly what is not allowed.