The Senate has approved new sanctions against Russia, as punishment after it was found to have meddled in the 2016 presidential election. The legislation also restricts the White House from easing sanctions without congressional approval.

The amendment on Russia, which passed in a 97-2 vote on Wednesday, was attached to a bill to strengthen sanctions on Iran. It codifies existing sanctions against Russia established by Barack Obama’s executive orders and imposes new sanctions against Moscow for its interference in the 2016 elections, aggression in Ukraine and support for the Syrian government.

The agreement establishes a process for Congress to review any attempt by Donald Trump to relax, suspend or terminate the sanctions.

Under the amendment, sanctions will be imposed on Russians who have been found guilty of human rights abuses, have supplied weapons to the Assad regime or have conducted cyber-attacks on behalf of the Russian government, among other categories. The measures target key sectors of the Russian economy, including mining, metals, shipping and railways.

In December, the Obama administration responded to Russia’s provocations with a slate of measures that included the expulsion of “intelligence operatives” and sanctions on Russia’s central intelligence services. Trump has repeatedly downplayed – and denied – the conclusion by the intelligence agencies that Russia interfered in the US election to benefit his campaign.

Wednesday’s vote offered a rare display of bipartisanship in Congress, which remains bitterly divided over how to proceed on healthcare, tax reform and the budget.

The amendment was negotiated by Senate leaders from both parties on the foreign and banking committees amid intense scrutiny of Russia’s role in the US presidential election.

The steps come as special counsel Robert Mueller is investigating any links or collusion between the president’s associates and Russian officials.

Multiple congressional committees are investigating whether associates of Trump were in touch with Moscow as it interfered in the election. In a fractious evidence session on Tuesday, attorney general Jeff Sessions claimed he was the victim of “scurrilous and false allegations” as he faced questions about three occasions when he met with the Russian ambassador Sergey Kislyak.

Sessions was unwilling to answer questions about his conversations with Trump, and repeatedly claimed he could not recall details of contacts between the Trump campaign and Russian officials.

The country’s top justice official said he had not received or ever requested a briefing on Russian intervention in the 2016 presidential election.

Senate minority leader Chuck Schumer said on Tuesday the sanctions bill would send a “powerful signal to President Trump and the White House that the concern that he might weaken or lift sanctions against Putin is a bipartisan concern, one that the Senate is not going to ignore”.

Asked about the sanctions during a Senate foreign relations committee hearing on Tuesday, Secretary of state Rex Tillerson called the amendment “ill-timed” and said the administration would like to have “the flexibility to turn that heat up” on Russia.

“We have some channels that are open where we’re starting to talk,” Tillerson said. “I think what I wouldn’t want to do is to close the channels off with something new that’s ill-timed.”

Tillerson went further in an appearance at the House foreign relations committee on Wednesday, questioning the effectiveness of unilateral sanctions, arguing “they will be somewhat hollow and Putin will know they are hollow”.

He also departed from previous state department policy by suggesting that Russia would not necessarily have to comply with the Minsk agreement for resolving the Ukraine conflict, in order to have Ukraine-related sanctions lifted.

“It is very possible that the government of Ukraine and the government of Russia could come to a satisfactory resolution through some structure other than Minsk, but which would achieve the objectives of Minsk, which we are committed to,” the secretary of state said.

“So my caution is: I wouldn’t want to have ourselves handcuffed to Minsk if it turns out the parties decide to settle this through a different agreement.”

Amid the uncertainty over administration policy on sanctions, Ukrainian president Petro Poroshenko is reported to be planning to visit Washington to meet Trump as early as next week.

South Carolina senator Lindsey Graham has predicted that Trump will ultimately sign the bill – and warned that if he does not, Congress would override his veto.

“Any member of the Congress who doesn’t want to punish Russia for what they’ve done is betraying democracy,” Graham said on CBS’s Face the Nation on Sunday. “And if the president doesn’t sign this bill to punish Russia, he would be betraying democracy.”