New membership page as default Drupal register page
As far as I'm aware you can expose a profile on a Drupal user registration page, but not a contribution page. Assuming you will have at least some public-facing content that is not member-only, you can include within this some information about joining, with links to your contribution page.

As part of your profile settings, you can specify whether a user account is created. So, when a user submits the contribution form, they will provide a username and an email address, and a Drupal account will be created for them.

One thing to look out for - if your membership is paid, the Drupal account may well be created regardless of whether the payment is completed successfully or not.

Then you can use the CiviMember role sync module to give the new member a Drupal role with appropriate access permissions when they next log in.