Johnson, who started all 16 games as a rookie last season after being drafted fourth overall by Philadelphia, said the drug in question was prescribed for a "medical issue" but that he failed to check it against the banned list.
"I mistakenly failed to clear it with Eagles trainers and check the NFL list of banned substances," Johnson said. "I am extremely sorry for this mistake and I will learn from it and be smarter in the future," he said.
Johnson is eligible to participate offseason and preseason training and games but will miss the first four regular-season contests against Jacksonville, Indianapolis, Washington and San Francisco.
"We're very disappointed to learn of his suspension," the Eagles said in a statement. "We have spoken to Lane about the details of the suspension. He understood what he did wrong and took full responsibility."