Are you looking for a way to create custom permissions for your Drupal 8 module? Since Drupal 8, permissions are defined in a MODULENAME.permissions.yml file.
create a file in the root directory of your custom module and name it MODULENAME.permissions.yml. Here's an example syntax:
access configuration form:
title: 'Access the configuration form'
description: 'Gives permission to access the configuration form'
This will make the permission appear in your /admin/people/permissions. Once you've given this permission to a role, this does not do anything yet. We can now use this permission on a route.
In your MODULENAME.routing.yml:
MODULENAME.settings_form:
path: '/admin/config/system/mysettings'
defaults:
_title: 'Website settings'
_form: 'Drupal\MODULENAME\Form\SettingsForm'
requirements:
_permission: 'access configuration form'
You see that the _permission key holds the exact string as the permission's first key. Clear cache and you will see the user now has access to the page.