Indian Beach is a town in Carteret County, North Carolina, United States. The population was 112 as of the 2010 census.