Understanding the parts
There are a few parts to this question - your CRM (CiviCRM, which has your membership list), and your CMS (Drupal, Joomla or WordPress, which has your website pages). Your CMS has Users while your CRM has Contacts. These may match, but you can also have a Contact without a matching User. The CMS controls access to Pages. In order to access restricted pages, the User generally needs to log into the CMS first.
So there are some "dots to join". In your case,
- All your Member Contacts will need a matching User in the CMS
- The CMS needs to restrict access for some Pages to some Users
- There are access criteria for the above (User must connect to Contact which has current Membership)
How you implement this depends on the CMS you're using, and what makes most sense for you. (Including details like the CMS in your question will inform the answers you get.)
There are wiki docs on how to sync Contacts to Users. This page looks a bit old - definitely test this process on a development site.
In Drupal there are multiple ways to slice and dice the content access situation ... sorry! Some options would be Content Access (suited for smaller sites where you have one or two restricted pages), Node View Permissions (restrict by member-only content type), or reviewing a longer list of content access options.
(You could also implement your own access restriction using CiviCRM checksums alone, but I think I've given you enough new questions already!)
This answer doesn't specify how to do this for other CMS (nor does it give specific instructions for Drupal, just a few options). If you can help improve this answer, you're welcome to edit it wiki style, OR add your own solutions for Joomla / WordPress.