The gunmen opened fire on the bus near the town of Witu, some 50 km (31 miles) from the resort island of Lamu.
They then targeted a police vehicle that arrived at the scene. Somalia’s al-Shabab Islamist militia has said it carried out the attack.
Nearly 100 people have been killed in violence on Kenya’s coast this summer.
Hundreds of families have been displaced by the unrest, which has also damaged the local tourist industry.
The bus targeted on Friday was traveling from the city of Mombasa to Lamu. Gunmen fired at the vehicle after blocking its path with their car.
The bus driver was among those killed, the Lamu County Commissioner Miiri Njenga told Reuters news agency.
Eight people were admitted to hospital, most of them with gunshot wounds.
The attack comes a day after Kenya’s military said its aircraft had bombed jungle bases used by militants in the area.
A spokesman for al-Shabab, Abdulaziz Abu Musab, told Reuters the Kenyan announcement was “propaganda.”
Friday’s attack, he said, was “in response to Kenya’s claim that it deployed more troops in the coast and thus tightened security.”