The 21-year-old right-back joins the Ligue 1 giants after the two clubs reached an agreement worth a reported €20m (£18m) with €5m (£4.5m) more in add-ons.
Henrichs, who can also play on the left of defence and in midfield, is a Germany international who was part of the Confederations Cup-winning side of 2017.
"I am very proud to be involved with Monaco, a European top club for many years," Henrichs told his new club's official website.
"I will do everything to adapt quickly and help the team win many victories. I cannot wait to work with the staff and my new teammates."
Monaco CEO Vadim Vasilyev added: "Benjamin Henrichs is a talented defender with solid national experience and experience at the very highest international level.
"His arrival reinforces the quality of our workforce. I am sure he will contribute to the good results of the team."
Henrichs made 23 appearances in the Bundesliga last season and a further five in the DFB-Pokal.