Allow customer to choose tags based on Tier


I have a use case where we publish posts on ~ 10 different categories. I would like to allow a customer to pick which tags they want to see but limit the number based on their subscription tier.

Basic - Access 2 tags
Advanced - Access 5 tags
Full - Access all tags

The user should be able to swap their chosen tags once a month.

I understand this would probably need some custom code but any ideas on how to do this? Would we need an external database to store the user preferences?