diff --git a/core/core.services.yml b/core/core.services.yml
index 7d9e831..0613419 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -403,21 +403,13 @@ services:
     arguments: ['@access_manager']
   access_check.default:
     class: Drupal\Core\Access\DefaultAccessCheck
-    tags:
-      - { name: access_check }
   access_check.entity:
     class: Drupal\Core\Entity\EntityAccessCheck
-    tags:
-      - { name: access_check }
   access_check.entity_create:
     class: Drupal\Core\Entity\EntityCreateAccessCheck
     arguments: ['@entity.manager']
-    tags:
-      - { name: access_check }
   access_check.theme:
     class: Drupal\Core\Theme\ThemeAccessCheck
-    tags:
-      - { name: access_check }
   maintenance_mode_subscriber:
     class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
     tags:
diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAccessChecksPass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAccessChecksPass.php
index 9e6506d..0f52b0e 100644
--- a/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAccessChecksPass.php
+++ b/core/lib/Drupal/Core/DependencyInjection/Compiler/RegisterAccessChecksPass.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\DependencyInjection\Compiler;
 
+use Drupal\Core\Access\AccessInterface;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
 
@@ -25,8 +26,13 @@ public function process(ContainerBuilder $container) {
       return;
     }
     $access_manager = $container->getDefinition('access_manager');
-    foreach ($container->findTaggedServiceIds('access_check') as $id => $attributes) {
-      $access_manager->addMethodCall('addCheckService', array($id));
+    foreach ($container->getDefinitions() as $id => $definition) {
+      if ($class = $definition->getClass()) {
+        if (is_subclass_of($class, 'Drupal\Core\Access\AccessInterface')) {
+          $access_manager->addMethodCall('addCheckService', array($id));
+        }
+      }
     }
   }
+
 }
diff --git a/core/modules/aggregator/aggregator.services.yml b/core/modules/aggregator/aggregator.services.yml
index f622f27..a5dbdf2 100644
--- a/core/modules/aggregator/aggregator.services.yml
+++ b/core/modules/aggregator/aggregator.services.yml
@@ -11,8 +11,6 @@ services:
   access_check.aggregator.categories:
     class: Drupal\aggregator\Access\CategoriesAccessCheck
     arguments: ['@database']
-    tags:
-      - { name: access_check }
   aggregator.category.storage:
     class: Drupal\aggregator\CategoryStorageController
     arguments: ['@database']
diff --git a/core/modules/book/book.services.yml b/core/modules/book/book.services.yml
index f7ff964..b4af158 100644
--- a/core/modules/book/book.services.yml
+++ b/core/modules/book/book.services.yml
@@ -14,5 +14,3 @@ services:
   access_check.book.removable:
     class: Drupal\book\Access\BookNodeIsRemovableAccessCheck
     arguments: ['@book.manager']
-    tags:
-      - { name: access_check }
diff --git a/core/modules/contact/contact.services.yml b/core/modules/contact/contact.services.yml
index cccd1fd..9cdd39a 100644
--- a/core/modules/contact/contact.services.yml
+++ b/core/modules/contact/contact.services.yml
@@ -1,6 +1,4 @@
 services:
   access_check.contact_personal:
     class: Drupal\contact\Access\ContactPageAccess
-    tags:
-      - { name: access_check }
     arguments: ['@config.factory', '@user.data']
diff --git a/core/modules/content_translation/content_translation.services.yml b/core/modules/content_translation/content_translation.services.yml
index e81c13d..4512d1a 100644
--- a/core/modules/content_translation/content_translation.services.yml
+++ b/core/modules/content_translation/content_translation.services.yml
@@ -12,11 +12,7 @@ services:
   content_translation.overview_access:
     class: Drupal\content_translation\Access\ContentTranslationOverviewAccess
     arguments: ['@plugin.manager.entity']
-    tags:
-      - { name: access_check }
 
   content_translation.manage_access:
     class: Drupal\content_translation\Access\ContentTranslationManageAccessCheck
     arguments: ['@plugin.manager.entity']
-    tags:
-      - { name: access_check }
diff --git a/core/modules/edit/edit.services.yml b/core/modules/edit/edit.services.yml
index d71a196..f63943d 100644
--- a/core/modules/edit/edit.services.yml
+++ b/core/modules/edit/edit.services.yml
@@ -5,13 +5,9 @@ services:
   access_check.edit.entity_field:
     class: Drupal\edit\Access\EditEntityFieldAccessCheck
     arguments: ['@entity.manager', '@field.info']
-    tags:
-      - { name: access_check }
   access_check.edit.entity:
     class: Drupal\edit\Access\EditEntityAccessCheck
     arguments: ['@entity.manager']
-    tags:
-      - { name: access_check }
   edit.editor.selector:
     class: Drupal\edit\EditorSelector
     arguments: ['@plugin.manager.edit.editor', '@plugin.manager.field.formatter']
diff --git a/core/modules/field_ui/field_ui.services.yml b/core/modules/field_ui/field_ui.services.yml
index 2ab3051..0005eaa 100644
--- a/core/modules/field_ui/field_ui.services.yml
+++ b/core/modules/field_ui/field_ui.services.yml
@@ -6,9 +6,5 @@ services:
      - { name: event_subscriber }
   access_check.field_ui.view_mode:
     class: Drupal\field_ui\Access\ViewModeAccessCheck
-    tags:
-     - { name: access_check }
   access_check.field_ui.form_mode:
     class: Drupal\field_ui\Access\FormModeAccessCheck
-    tags:
-     - { name: access_check }
diff --git a/core/modules/filter/filter.services.yml b/core/modules/filter/filter.services.yml
index ac2029f..52ac9a2 100644
--- a/core/modules/filter/filter.services.yml
+++ b/core/modules/filter/filter.services.yml
@@ -8,8 +8,6 @@ services:
     arguments: [filter]
   access_check.filter_disable:
     class: Drupal\filter\Access\FormatDisableCheck
-    tags:
-      - { name: access_check }
   plugin.manager.filter:
     class: Drupal\filter\FilterPluginManager
     arguments: ['@container.namespaces', '@cache.cache', '@language_manager', '@module_handler']
diff --git a/core/modules/node/node.services.yml b/core/modules/node/node.services.yml
index 0b839a5..e37ffc4 100644
--- a/core/modules/node/node.services.yml
+++ b/core/modules/node/node.services.yml
@@ -5,10 +5,6 @@ services:
   access_check.node.revision:
     class: Drupal\node\Access\NodeRevisionAccessCheck
     arguments: ['@entity.manager', '@database']
-    tags:
-      - { name: access_check }
   access_check.node.add:
     class: Drupal\node\Access\NodeAddAccessCheck
     arguments: ['@plugin.manager.entity']
-    tags:
-      - { name: access_check }
diff --git a/core/modules/overlay/overlay.services.yml b/core/modules/overlay/overlay.services.yml
index aed4378..a40e80f 100644
--- a/core/modules/overlay/overlay.services.yml
+++ b/core/modules/overlay/overlay.services.yml
@@ -7,5 +7,3 @@ services:
 
   access_check.overlay.dismiss_message:
     class: Drupal\overlay\Access\DismissMessageAccessCheck
-    tags:
-      - { name: access_check }
diff --git a/core/modules/rest/rest.services.yml b/core/modules/rest/rest.services.yml
index d238442..1ef94eb 100644
--- a/core/modules/rest/rest.services.yml
+++ b/core/modules/rest/rest.services.yml
@@ -16,8 +16,6 @@ services:
     arguments: ['@plugin.manager.rest', '@config.factory']
   access_check.rest.csrf:
     class: Drupal\rest\Access\CSRFAccessCheck
-    tags:
-      - { name: access_check }
   rest.link_manager:
     class: Drupal\rest\LinkManager\LinkManager
     arguments: ['@rest.link_manager.type', '@rest.link_manager.relation']
diff --git a/core/modules/search/search.services.yml b/core/modules/search/search.services.yml
index 8af9864..72ea3b4 100644
--- a/core/modules/search/search.services.yml
+++ b/core/modules/search/search.services.yml
@@ -6,14 +6,10 @@ services:
   access_check.search:
     class: Drupal\search\Access\SearchAccessCheck
     arguments: ['@plugin.manager.search']
-    tags:
-      - { name: access_check }
 
   access_check.search_plugin:
     class: Drupal\search\Access\SearchPluginAccessCheck
     arguments: ['@plugin.manager.search']
-    tags:
-      - { name: access_check }
 
   route_subscriber.search:
     class: Drupal\search\Routing\SearchRouteSubscriber
diff --git a/core/modules/shortcut/shortcut.services.yml b/core/modules/shortcut/shortcut.services.yml
index 439a0e0..e001202 100644
--- a/core/modules/shortcut/shortcut.services.yml
+++ b/core/modules/shortcut/shortcut.services.yml
@@ -1,15 +1,9 @@
 services:
   access_check.shortcut.link:
     class: Drupal\shortcut\Access\LinkAccessCheck
-    tags:
-      - { name: access_check }
 
   access_check.shortcut.shortcut_set_edit:
     class: Drupal\shortcut\Access\ShortcutSetEditAccessCheck
-    tags:
-      - { name: access_check }
 
   access_check.shortcut.shortcut_set_switch:
     class: Drupal\shortcut\Access\ShortcutSetSwitchAccessCheck
-    tags:
-      - { name: access_check }
diff --git a/core/modules/system/system.services.yml b/core/modules/system/system.services.yml
index ae137da..d464f0f 100644
--- a/core/modules/system/system.services.yml
+++ b/core/modules/system/system.services.yml
@@ -1,8 +1,6 @@
 services:
   access_check.cron:
     class: Drupal\system\Access\CronAccessCheck
-    tags:
-      - { name: access_check }
   system.manager:
     class: Drupal\system\SystemManager
     arguments: ['@module_handler', '@database', '@entity.manager']
diff --git a/core/modules/toolbar/toolbar.services.yml b/core/modules/toolbar/toolbar.services.yml
index c700b62..a2318f0 100644
--- a/core/modules/toolbar/toolbar.services.yml
+++ b/core/modules/toolbar/toolbar.services.yml
@@ -1,8 +1,6 @@
 services:
   access_check.toolbar_subtree:
     class: Drupal\toolbar\Access\SubtreeAccess
-    tags:
-      - { name: access_check }
   cache.toolbar:
     class: Drupal\Core\Cache\CacheBackendInterface
     tags:
diff --git a/core/modules/translation/translation.services.yml b/core/modules/translation/translation.services.yml
index e6520d5..5059363 100644
--- a/core/modules/translation/translation.services.yml
+++ b/core/modules/translation/translation.services.yml
@@ -1,5 +1,3 @@
 services:
   access_check.translation.node_overview:
     class: Drupal\translation\Access\TranslationNodeOverviewAccessCheck
-    tags:
-      - { name: access_check }
diff --git a/core/modules/update/update.services.yml b/core/modules/update/update.services.yml
index 0ffafc2..9f70d4e 100644
--- a/core/modules/update/update.services.yml
+++ b/core/modules/update/update.services.yml
@@ -2,5 +2,3 @@ services:
   access_check.update.manager_access:
     class: Drupal\update\Access\UpdateManagerAccessCheck
     arguments: ['@settings']
-    tags:
-      - { name: access_check }
diff --git a/core/modules/user/user.services.yml b/core/modules/user/user.services.yml
index 6fb7d47..4164e26 100644
--- a/core/modules/user/user.services.yml
+++ b/core/modules/user/user.services.yml
@@ -1,20 +1,12 @@
 services:
   access_check.permission:
     class: Drupal\user\Access\PermissionAccessCheck
-    tags:
-      - { name: access_check }
   access_check.user.register:
     class: Drupal\user\Access\RegisterAccessCheck
-    tags:
-      - { name: access_check }
   access_check.user.role:
     class: Drupal\user\Access\RoleAccessCheck
-    tags:
-      - { name: access_check }
   access_check.user.login_status:
     class: Drupal\user\Access\LoginStatusCheck
-    tags:
-      - { name: access_check }
   user.data:
     class: Drupal\user\UserData
     arguments: ['@database']
