How to restrict Profile Edit/Create Visibility?
First of all you will need to update the CMS permission to remove view/edit data using profile. Configure ACL from CiviCRM UI to restrict group of contacts to update their contact using profile. 

Note: I guess changing the permission will result in profile not available for any user if they dont have access to. If you want to restrict specfic profile and enable all others them i think you can use profile hooks to return access denied.