The Ligue 1 club has reportedly paid €20million for the 21-year-old right-back.
The Germany international, who can also play in midfield, 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," he 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 team-mates."
Monaco CEO Vadim Vasilyev said: "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.