The Habs acquired Edmundson's rights from the Carolina Hurricanes last week in exchange for a fifth-round pick. His new deal features a 10-team no-trade clause, according to Sportsnet's Chris Johnston.
Edmundson was set to become an unrestricted free agent if a deal with the Canadiens wasn't reached. He signed a one-year, $3.1 million contract with the St. Louis Blues last summer before the reigning champions flipped him to Carolina.
The 27-year-old appeared in 68 games for the Hurricanes in 2019-20, recording 20 points, 118 hits, and 91 blocks while logging over 18 minutes per contest.
With Edmundson signed, the Canadiens have roughly $9 million in available cap space. Their top in-house priority is a new contract for restricted free agent Max Domi.