 core/modules/taxonomy/src/Entity/Vocabulary.php    |  3 +-
 .../src/VocabularyAccessControlHandler.php         | 29 +++++++++++++++++
 .../taxonomy/tests/src/Kernel/VocabularyTest.php   | 37 ++++++++++++++++++++++
 3 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/core/modules/taxonomy/src/Entity/Vocabulary.php b/core/modules/taxonomy/src/Entity/Vocabulary.php
index fa6cc18..7f9c822 100644
--- a/core/modules/taxonomy/src/Entity/Vocabulary.php
+++ b/core/modules/taxonomy/src/Entity/Vocabulary.php
@@ -19,7 +19,8 @@
  *       "default" = "Drupal\taxonomy\VocabularyForm",
  *       "reset" = "Drupal\taxonomy\Form\VocabularyResetForm",
  *       "delete" = "Drupal\taxonomy\Form\VocabularyDeleteForm"
- *     }
+ *     },
+ *     "access" = "Drupal\taxonomy\VocabularyAccessControlHandler"
  *   },
  *   admin_permission = "administer taxonomy",
  *   config_prefix = "vocabulary",
diff --git a/core/modules/taxonomy/src/VocabularyAccessControlHandler.php b/core/modules/taxonomy/src/VocabularyAccessControlHandler.php
new file mode 100644
index 0000000..309b26e
--- /dev/null
+++ b/core/modules/taxonomy/src/VocabularyAccessControlHandler.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Drupal\taxonomy;
+
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\Entity\EntityAccessControlHandler;
+use Drupal\Core\Entity\EntityInterface;
+
+/**
+ * Defines the access control handler for the vocabulary entity type.
+ *
+ * @see \Drupal\taxonomy\Entity\Vocabulary
+ */
+class VocabularyAccessControlHandler extends EntityAccessControlHandler {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
+    // Allow all users to view vocabulary config entities.
+    if ($operation === 'view') {
+      return AccessResult::allowed();
+    }
+
+    return parent::checkAccess($entity, $operation, $account);
+  }
+
+}
diff --git a/core/modules/taxonomy/tests/src/Kernel/VocabularyTest.php b/core/modules/taxonomy/tests/src/Kernel/VocabularyTest.php
new file mode 100644
index 0000000..0c20d8f
--- /dev/null
+++ b/core/modules/taxonomy/tests/src/Kernel/VocabularyTest.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Drupal\Tests\taxonomy\Kernel;
+
+use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
+use Drupal\taxonomy\Entity\Vocabulary;
+use Drupal\user\Entity\User;
+
+/**
+ * @group taxonomy
+ */
+class VocabularyTest extends EntityKernelTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['taxonomy'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+  }
+
+  public function testAnonymousAccess() {
+    Vocabulary::create([
+      'vid' => 'tags',
+      'name' => 'Tags',
+    ])->save();
+
+    $this->assertTrue(Vocabulary::load('tags')->access('view', User::load(0), TRUE)->isAllowed());
+  }
+
+}
