President Petro Poroshenko has signed a law abandoning Ukraine's neutral "non-bloc" status, and said Ukrainians will decide whether the country should seek NATO membership once it meets the standards of the Western military alliance.
Poroshenko predicted that moment would come in five or six years.
He signed the law on December 29 during an end-of-year news conference in Kyiv.
"When Ukraine meets the appropriate standards -- I think that will be done within five-six years in the framework of Strategy 2020 -- then the people of Ukraine will determine whether the country will join NATO," Poroshenko said, suggesting a referendum would be held on the issue.
The new law scraps 2010 legislation that barred Ukraine from seeking to join any military alliance.
Ukraine's parliament passed the law on December 23, drawing vocal criticism from Russia.
Poroshenko told lawmakers that day that Russian "aggression against Ukraine" created the need for "more effective guarantees of independence, sovereignty, security, and territorial integrity."
Russia annexed Crimea from Ukraine in March in a move denounced as illegal by Kyiv and the West, which have also accused Moscow of providing direct military support to separatist rebels whose war against government forces has killed more than 4,700 people in eastern Ukraine since April.
Deadly fighting has continued despite a September 5 agreement on a cease-fire and steps toward peace.
On December 29, each side accused the other of committing fresh cease-fire violations.
Poroshenko said three Ukrainian soldiers were killed in fighting over the Donetsk airport, the site of some of the heaviest combat since the September 5 cease-fire.
"Donetsk airport remains under our full control," Poroshenko said at the press conference, adding that fighting there had ended just minutes before he spoke. "Unfortunately, the information about three dead has been confirmed."
The fighting has lessened in recent weeks, however, and Poroshenko said the cease-fire was "slowly working" but must be strengthened.
He said he will meet with Russian President Vladimir Putin, German Chancellor Angela Merkel, and French President Francois Hollande on January 15 to discuss peace efforts.
The meeting will take place in Astana, the capital of Kazakhstan -- a Central Asian country whose president, Nursultan Nazarbaev, met both Poroshenko and Putin last week and called for Russia and Ukraine to seek a compromise.
Poroshenko and Putin have held several four-way conversations with Merkel and Hollande as part of efforts to end the conflict in eastern Ukraine.
The European Union and the United States have imposed several rounds of sanctions on Russia over its annexation of Ukraine and support for the separatists.
On December 28, Merkel called on Russia to use its influence on the separatists, who control parts of the Donetsk and Luhansk regions, to do more to end the conflict.
The latest peace talks, held in December 24 in Minsk, ended without a breakthrough, and a follow-up meeting expected on December 26 did not take place.
On December 26, Kyiv exchanged about 220 people for some 145 captured Ukrainian soldiers as agreed during the Minsk meeting.