Impey, who rode for Mitchelton-Scott, became the first South African to win the overall title when he finished in 20:03:34.
Australian Richie Porte (BMC Racing Team) and Dutchman Tom Jelte Slagter (Dimension Data) were second and third.
“Coming in, I did not expect to win, but sometimes the stars line up and things go according to plan,” Impey said after his victory.
He had worked hard in the off-season and was extremely pleased to win the title, he added.
Nicholas Dlamini, also from South Africa, retained the King of the Mountains jersey throughout the tour.
The DiData rider said it was a great week for the team as everyone did what they needed to.
“I am delighted to win my first leaders jersey in my first World Tour race. I think I learned a lot, but going forward I think I will still improve.
“As a team, this was a great start to our season and I feel we will also just get better as the season progresses.”
German Andre Greipel (Lotto Soudal) won the final stage in 2:01:19. Impey’s teammate, Australian Caleb Ewan, was second and Slovakian Peter Sagan (Bora-Hansgrohe) third.
More results below.
Stage six results
1. Andre Greipel (Lotto Soudal, Germany) 2:01:19
2. Caleb Ewan (Mitchelton-Scott, Australia)
3. Peter Sagan (Bora-Hansgrohe, Slovakia)
4. Phil Bauhaus (Team Sunweb, Germany)
5. Elia Viviani (Quick-Step Floors, Italy)
6. Steele von Hoff (UniSA-Australia, Australia)
7. Simone Consonni (UAE Team Emirates, Italy)
8. Mads Pedersen (Trek-Segafredo, Denmark)
9. Carlos Barbero Cuesta (Movistar Team, Spain)
10. Mads Würtz Schmidt (Katusha-Alpecin, Denmark)
1. Daryl Impey (Mitchelton-Scott, South Africa) 20:03:34
2. Richie Porte (BMC Racing Team, Australia)
3. Tom Jelte Slagter (Dimension Data, Netherlands) +16″
4. Diego Ulissi (UAE Team Emirates, Italy) +20″
5. Dries Devenyns (Quick-Step Floors, Belgium)
6. Egan Arley Bernal Gomez (Team Sky, Columbia)
7. Gorka Izagirre Insausti (Bahrain-Merida, Spain)
8. Luis León Sánchez (Astana Pro Team, Spain) +23″
9. Ruben Guerreiro (Trek-Segafredo, Portugal)
10. Robert Gesink (LottoNL-Jumbo, Netherlands) +24″