Beckham, 29, tested positive for Stanozolol, an anabolic steroid. The suspension is effective immediately and, as Seattle has just 48 games remaining this year, Beckham's season is over.
Beckham denied knowingly taking the substance in a statement released by the MLB Players Association.
"I was given a product from a trusted source, who had advised me that it was safe to take," Beckham said. "Regrettably, the product was tainted. I exercised my rights under the Joint Drug Agreement, and presented my case to an independent arbitrator.
"While I am disappointed in the result, I respect the ruling and understand my responsibilities under the Joint Drug Agreement."
Beckham hit .237 with 15 home runs and 47 RBIs in 88 games this season. He was the No. 1 overall pick of the Tampa Bay Rays in 2008.
Beckham is a career .249 hitter with 63 home runs and 198 RBIs in 472 games. This was his first year with the Mariners.
"I accept full responsibility for putting myself in this position," Beckham said. "I sincerely apologize to the Mariners' organization, the fans, my teammates, and my family for this mistake. I look forward to resuming my career once my suspension has been served."