It applies to all adults, except pregnant women and those with a medical exemption. Those holding out can face fines of up to 3,600 euros ($4,100) per year, with fines starting at 600 euros.
Austrians will have until mid-March to get vaccinated following an “introductory phase”.
President Alexander Van der Bellen signed the law after parliament approved it, his office said. It is expected to take effect from Saturday, a day after it has been officially published.
Tens of thousands have demonstrated against mandatory vaccination in regular weekend rallies since the measure was announced in November.
But it has broad political support — with all parties except the far-right rallying behind it — in a bid to drive up the country’s vaccination rate.
Currently, 69 percent of Austrian residents have certificates that they are fully protected against the coronavirus — including a booster for those whose shots were more than six months ago.
Austria has to date seen more than 14,000 Covid-related deaths and close to 2 million cases in a population of nine million.
As elsewhere, Omicron has sent cases spiralling in recent weeks, but hospitals have not been overwhelmed so far.
Compulsory vaccinations against Covid are rare though Ecuador, Tajikistan, Turkmenistan, Indonesia and Micronesia have introduced such schemes.