What is the simplest, most drupalish, way to restrict access to some content to authenticated users or a certain role?
Content Access

This module allows you to manage permissions for content types by role and author. It allows you to specifiy custom view, edit and delete permissions for each content type. Optionally you can enable per content access settings, so you can customize the access for each content node.

Video Tutorial
Field Permissions

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



Your views approach is fine, assuming everything you need is in the view.
But if you want to restrict access to nodes, then you're better off using Content Access.
For example: If your view was listing links that you don't anonymous to access (eg: premium content) you would want to use the Content Access module because if anonymous users somehow get a hold of the direct link then they could see the premium nodes.