The four-time world champion will be replaced by fellow German Nico Hulkenberg for Sunday’s season-opening race at the Sakhir circuit.
Aston Martin’s Vettel becomes the second F1 driver to contract the virus within the last week.
Daniel Ricciardo missed the entirety of the final test in Bahrain with coronavirus but will be fit to race for McLaren.
A statement from Aston Martin read: “Sebastian Vettel has tested positive for Covid-19 and will not therefore be taking part in the 2022 Bahrain Grand Prix.
“Replacing him in the AMR22 will be Aston Martin Aramco Cognizant Formula One Team reserve driver Nico Hulkenberg, who will be in the car from FP1 onwards.”
Aston Martin’s reserve driver Hulkenberg, 34, last competed in F1 in 2020.
He made three appearances as a replacement for Sergio Perez and Lance Stroll, who both missed races with coronavirus.
F1 has made it compulsory for all drivers and team personnel to be vaccinated this year.