The 26-year-old, who was a free agent after his contract at Rugby Park expired, will be registered as a Rangers player from September 1, but will join the squad for pre-season training next month.
Bell, who won his only cap for Scotland against the Faroe Islands in 2010, made 115 appearances for Kilmarnock after joining them in July 2003, as well as playing 15 games for Queen of the South during a loan spell in 2008/9.
Bell told the club's official website: "I'm delighted to become a Rangers player.
"It's been a long time coming for me. It's great just to be here at a club of this size and a club I always followed as a youngster. It's just a dream come true really.
"I think I've got enough experience now. I've played for a few years in the SPL and I've got that behind me.
"I needed to do that before I moved on and I had opportunities to move before now, it wasn't right though as I needed a bit longer.
"I think now is the right time for me to step on and it's a no brainer, it didn't take me long to make the decision.
"It's a massive club and it's one of the biggest clubs in Europe so there was no way I was going to turn down the chance to be a Rangers player."