Russian President Vladimir Putin responded by demanding the U.S. cut its diplomatic staff there by 755 people.
Trump faced a veto-proof majority in Congress. He also risked looking too favorable to Russia amid those closely watched investigations by federal authorities and congressional committees.
In a statement after the signing, Trump said he wanted to "punish and deter bad behavior" by North Korea and Iran. The president wanted to make "clear that America will not tolerate interference in our democratic process."
However, Trump argued that the measure "encroaches on executive power, disadvantages American companies and hurts the interests of our European allies." Trump needs congressional approval to roll back sanctions under the measure.
He said his administration worked to tweak the bill more to its liking.
On Tuesday, Tillerson said, "Neither the president nor I were very happy" about Congress passing the measure.
"We were clear that we didn't think it was going to be helpful to our efforts, but that's the decision they made, they made it in a very overwhelming way. I think the president accepts that," he told reporters.
The latest developments put U.S.-Russia relations "under considerable stress," Tillerson said.
U.S. allies in Europe also warned about possible repercussions from the sanctions bill. German officials cautioned the measures could hurt German companies or compromise the country's energy projects.
After the bill signing, Trump contended that he could make better deals with foreign countries than Congress can. He hit lawmakers for failing to approve an Obamacare repeal plan, saying "Congress could not even negotiate a health-care bill after seven years of talking."
He added: "I built a truly great company worth many billions of dollars. That is a big part of the reason I was elected. As president, I can make far better deals with foreign countries than Congress."