The 22-year-old, who had been on loan at the League One club, has agreed an 18-month contract with Joe Dunne's side.
"I'm delighted that we've signed Sam for the next eighteen months," Dunne told the club's official website. "He is another young and hungry young footballer who has decided to come here and play, which is great testament to what we are doing here at Colchester United.
"He has done fantastically well for us over the past year but he is still improving and will get even better in the right environment for development.
"He will certainly have that here and he has a great support network, with our goalkeeper coach George Bankole and the other keepers he works with every day."
Walker made 45 Football League appearances for Colchester during two loan spells since January 2013.