Under the law, fines for individuals could be as much as $9,000, more than the average annual salary in Russia, The New York Times reported. Those involved in organizing demonstrations could be fined as much as $18,000, while the maximum is $30,000 for companies or political groups.
Those without the means to pay could be required to work off their fines.
Putin's United Russia Party used its slim parliamentary majority to pass the law this week, overcoming a filibuster by critics. While some activists hoped the president would veto the measure, he signed it.
Protesters can still express their views freely, Putin said.
"But all this must be organized in such a way so as not to harm the other citizens who are not taking part in these events," he added.
Under the new law, rallies and protests held without permits would be illegal and local authorities would have authority to create lists of areas where protests may not be held.