It’s correct how it is. It’s acting as an adjective, as if you said “red shelter.” “Migrant’s shelter” would mean the shelter belongs to one migrant. “Migrants’ shelter” would mean the shelter belongs to a group of migrants, which is also incorrect because they do not own it. Hope this helps :)