Financial terms of the contract were not released but ESPN reported the deal to be worth $17.5 million with a maximum value of $24.5 million.
The 32-year-old is expected to step into the starting role held by free agent Chike Okeafor, who is not expected to return.
Porter, an 11-year NFL veteran, had nine sacks with the Miami Dolphins last season, more than any of the Cardinals.
"Having another veteran player, who has had great success in this league ... will only help us in an area defensively where we want to improve," Cardinals coach Ken Whisenhunt said on the team's website (www.azcardinals.com).
(Writing by Steve Ginsburg in Washington, editing by Nick Mulvenney)