Earlier quoted context omitted.
If it’s important and hard to get this data, is it really ridiculous that a provider of the data charges $700 for it?
It's only hard to get because IATA doesn't easily provide it. IATA isn't "a" provider of the data, they are the data. It would be like if you had to purchase a list of the bus stops and schedule in your city from your transportation department.
I don't think IATA actually assigns the codes, but rather aggregates them. In the US, the FAA assigns the airport identifiers: https://www.faa.gov/nextgen/cip/airport_facility/