diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php
index fd3bd14..b349906 100644
--- a/core/modules/field/src/Entity/FieldStorageConfig.php
+++ b/core/modules/field/src/Entity/FieldStorageConfig.php
@@ -125,7 +125,8 @@ class FieldStorageConfig extends ConfigEntityBase implements FieldStorageConfigI
    * If TRUE, some actions not available though the UI (but are still possible
    * through direct API manipulation):
    * - field settings cannot be changed,
-   * - new fields cannot be created
+   * - new fields cannot be created,
+   * - storage settings cannot be changed,
    * - existing fields cannot be deleted.
    * Defaults to FALSE.
    *
diff --git a/core/modules/field/src/FieldConfigAccessControlHandler.php b/core/modules/field/src/FieldConfigAccessControlHandler.php
index c408765..7da3f26 100644
--- a/core/modules/field/src/FieldConfigAccessControlHandler.php
+++ b/core/modules/field/src/FieldConfigAccessControlHandler.php
@@ -23,8 +23,11 @@ class FieldConfigAccessControlHandler extends EntityAccessControlHandler {
    * {@inheritdoc}
    */
   protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) {
-    if ($operation == 'delete') {
-      $field_storage_entity = $entity->getFieldStorageDefinition();
+    $field_storage_entity = $entity->getFieldStorageDefinition();
+    if ($operation == 'edit' && $field_storage_entity->isLocked()) {
+      return AccessResult::forbidden()->cacheUntilEntityChanges($field_storage_entity);
+    }
+    elseif ($operation == 'delete') {
       if ($field_storage_entity->isLocked()) {
         return AccessResult::forbidden()->cacheUntilEntityChanges($field_storage_entity);
       }
@@ -32,6 +35,7 @@ protected function checkAccess(EntityInterface $entity, $operation, $langcode, A
         return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->entity_type . ' fields')->cacheUntilEntityChanges($field_storage_entity);
       }
     }
+
     return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->entity_type . ' fields');
   }
 
diff --git a/core/modules/field_ui/src/Form/FieldStorageEditForm.php b/core/modules/field_ui/src/Form/FieldStorageEditForm.php
index 92ddca1..f6d0c12 100644
--- a/core/modules/field_ui/src/Form/FieldStorageEditForm.php
+++ b/core/modules/field_ui/src/Form/FieldStorageEditForm.php
@@ -84,6 +84,14 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldConf
     $form['#field'] = $field_storage;
     $form['#bundle'] = $this->field->bundle;
 
+    // Forbid access to the form if the field is locked.
+    if ($field_storage->isLocked()) {
+      $form['locked'] = array(
+        '#markup' => $this->t('The field %field is locked and cannot be edited.', array('%field' => $field_config->getLabel())),
+      );
+      return $form;
+    }
+
     $description = '<p>' . $this->t('These settings apply to the %field field everywhere it is used. These settings impact the way that data is stored in the database and cannot be changed once data has been created.', array('%field' => $this->field->label())) . '</p>';
 
     // Create a form structure for the field values.
