Restricting Field Access by Role
You want the Field Permissions module, it does exactly that:


  The Field Permissions module allows site administrators to set field-level permissions to edit, view and create fields on any entity.


It gives you granular access control based on role for every field, e.g.: