Snowden, 33, was given asylum in Russia in 2013 after leaking classified information about U.S. spy operations. His lawyer said in January Snowden had the right to remain in Russia until 2020 and to apply for Russian citizenship next year.
Putin, a former KGB officer and ex-head of Russia's FSB security service, made his comments about Snowden in an interview with U.S. film director Oliver Stone, excerpts of which were released ahead of its broadcast by U.S. TV network Showtime from June 12.
"Snowden is not a traitor," said Putin. "He did not betray the interests of his country, nor did he transfer any information to any other country that would damage his own people," said Putin.
However, the Russian leader said Snowden should have resigned from his job in the same way he once resigned from the KGB rather than leak secrets if he didn't like what he was doing.
"He shouldn't have done it (leaked secrets). My view is that what he did was wrong," Putin told Stone.
Edward Snowden saga: Bolivia accuses Europe of 'kidnapping' Bolivian president in forcing Evo Morales' plane to land in Vienna
Snowden had the right to act in the way he did however, said Putin, who said he agreed that U.S. surveillance had become too intrusive, while praising his own country's intelligence services for operating within the law.
Putin also criticised U.S. eavesdropping on its own allies like Germany, saying such activity inevitably backfired.
"Trying to spy on your allies, if you really consider them allies and not vassals, is just indecent," said Putin. "It undermines trust, and in the end damages your own national security."
Snowden has used social media to criticise the Russian authorities over a law obliging communications companies to store phone calls and Internet activity for six months. The Russian authorities have not commented on those remarks.