In processors supporting TrustZone, how is secure memory access protected from a non- secure world application accessing it?

For example, we define a region to be secure. If a non secure app is trying to acess that region, what protection mechanism exists in hardware which will prevent that?