Congress passed the bill before adjourning in December. Republics tried to block the measure due to concerns over how the measure would be paid for. But they dropped their opposition after lawmakers struck a compromise to reduce the costs
The $4.2 billion measure will be paid for with a fee on some foreign companies that get U.S. government procurement contracts.
Obama signed the bill from Hawaii, where he's vacationing with his family.
The Associated Press contributed to this report