diff --git a/core/modules/layout_builder/css/layout-builder.css b/core/modules/layout_builder/css/layout-builder.css
index 9d3a3e62b165dbd2ba6c9f00f8a62267f50f520b..837709f52afaeab4530e7651dc0bc28f5217e0a7 100644
--- a/core/modules/layout_builder/css/layout-builder.css
+++ b/core/modules/layout_builder/css/layout-builder.css
@@ -83,6 +83,23 @@
   pointer-events: none;
 }
 
+.layout-builder__message .messages {
+  background-repeat: no-repeat;
+}
+.layout-builder__message--defaults .messages {
+  background-image: url('../images/globe.svg');
+}
+.layout-builder__message--overrides .messages {
+  background-image: url('../images/location.svg');
+}
+
+/**
+ * @todo Remove Umami specific styling in https://www.drupal.org/node/3043228.
+ */
+.layout-builder__message .messages .messages__content {
+  background: none;
+}
+
 #drupal-off-canvas .layout-selection li {
   display: block;
   padding-bottom: 1em;
diff --git a/core/modules/layout_builder/images/globe.svg b/core/modules/layout_builder/images/globe.svg
new file mode 100644
index 0000000000000000000000000000000000000000..57992c3e67c7d2624fa0fadb2f01344d38d90daa
--- /dev/null
+++ b/core/modules/layout_builder/images/globe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#73b355"><path d="M8,0.0309333333 C12.4181818,0.0309333333 16,3.5328 16,7.85315556 C16,12.1731556 12.4181818,15.6750222 8,15.6750222 C3.58181818,15.6750222 0,12.1731556 0,7.85315556 C0,3.5328 3.58181818,0.0309333333 8,0.0309333333 Z M12.7236364,4.69653333 C12.5116364,4.95288889 12.1872727,4.50133333 11.9,4.3552 C11.6130909,4.20871111 11.5505455,4.69653333 11.2138182,5.25795556 C10.8767273,5.81937778 10.6770909,5.56302222 10.3774545,5.25795556 C10.0781818,4.95288889 10.2650909,4.68444444 10.5774545,4.56248889 C10.8890909,4.44053333 10.9141818,4.39182222 10.6894545,4.14755556 C10.4650909,3.90364444 10.3650909,4.00106667 10.5898182,3.80586667 C10.8141818,3.61066667 10.9516364,3.6352 11.4385455,3.34222222 C11.9250909,3.04924444 11.3636364,2.7808 11.0389091,2.99484444 C10.7145455,3.20853333 10.3025455,2.56142222 10.2152727,2.01671111 C10.128,1.47164444 10.3901818,1.64622222 10.6894545,1.45066667 C10.7610909,1.40444444 10.7192727,1.29386667 10.6170909,1.15377778 C9.80363636,0.849066667 8.92181818,0.680177778 8,0.680177778 C7.08945455,0.680177778 6.21745455,0.8448 5.41236364,1.14275556 C5.26763636,1.33795556 5.23709091,1.49475556 5.53527273,1.4752 C6.284,1.42648889 6.29672727,1.26791111 6.55890909,1.6096 C6.82072727,1.95128889 6.696,2.65884444 6.22181818,2.46364444 C5.74763636,2.26844444 4.96145455,1.93884444 4.76181818,2.3296 C4.56181818,2.72 4.84909091,2.81742222 5.236,2.5856 C5.62254545,2.35377778 5.93490909,2.46364444 6.00945455,2.84195556 C6.08436364,3.22026667 6.05963636,3.95235556 5.63527273,3.81831111 C5.21090909,3.68391111 5.07345455,3.8912 5.32327273,4.09884444 C5.57272727,4.30613333 5.29818182,4.42844444 4.91127273,4.26951111 C4.52436364,4.11093333 4.53709091,4.59911111 4.01272727,4.57457778 C3.48872727,4.5504 3.45127273,5.11146667 3.28909091,5.31911111 C3.12690909,5.5264 3.10181818,6.19768889 3.06436364,6.35626667 C3.02690909,6.51484444 2.86472727,6.6368 2.77745455,6.13653333 C2.68981818,5.63626667 2.80218182,5.41653333 2.34072727,5.38026667 C1.87890909,5.34328889 1.41709091,6.29191111 1.65418182,6.49493333 C1.89127273,6.69795556 2.21563636,6.30755556 2.19090909,6.60017778 C2.16581818,6.89315556 2.00363636,8.22328889 2.49018182,8.28408889 C2.97709091,8.34524444 3.30145455,8.29653333 3.70072727,8.55288889 C4.1,8.80888889 4.84909091,8.83342222 5.38545455,9.66328889 C5.92218182,10.4928 6.54618182,10.5905778 7.14545455,10.7249778 C7.74436364,10.8590222 7.68181818,11.1886222 7.36981818,11.6277333 C7.05781818,12.0672 7.23272727,12.5184 6.18436364,12.8600889 C5.136,13.2017778 5.06109091,14.0561778 5.09854545,14.2147556 C5.10618182,14.2471111 5.092,14.3239111 5.06545455,14.4248889 C5.96472727,14.8103111 6.95709091,15.0257778 8,15.0257778 C10.0716364,15.0257778 11.944,14.1802667 13.2792727,12.8256 C13.1043636,12.2965333 12.9294545,11.6920889 12.9236364,11.3713778 C12.9109091,10.7249778 13.0981818,10.6759111 12.8610909,10.2488889 C12.624,9.82186667 12.1370909,10.2368 11.1887273,10.1144889 C10.2403636,9.99253333 10.3901818,9.40693333 9.72872727,8.6016 C9.06727273,7.79626667 10.34,7.13706667 10.6894545,6.30755556 C11.0389091,5.47768889 12.5614545,5.79484444 12.8985455,5.856 C13.2352727,5.91715556 13.1105455,5.69742222 13.8221818,5.18471111 C14.5334545,4.67235556 13.4727273,4.66026667 13.1854545,4.46506667 C12.8985455,4.26951111 12.936,4.44053333 12.7236364,4.69653333 Z M3.53854545,12.4088889 C3.47636364,11.8108444 3.02690909,11.4812444 2.50290909,10.3708444 C1.97854545,9.26044444 2.328,9.13848889 2.41527273,9.05315556 C2.50290909,8.96746667 1.82872727,8.61368889 1.85381818,7.75964444 C1.87890909,6.90524444 1.14254545,7.1008 1.27963636,6.19768889 C1.39745455,5.42328889 1.55018182,4.88426667 1.47381818,4.58417778 C0.957818182,5.56515556 0.664363636,6.67591111 0.664363636,7.85315556 C0.664363636,10.4938667 2.13272727,12.8046222 4.31236364,14.0494222 L4.27490909,13.8851556 C4.27490909,13.8851556 3.60109091,13.0065778 3.53854545,12.4088889 Z M8.48072727,1.69493333 C8.28109091,2.31715556 8.26109091,2.13333333 8.03127273,2.26844444 C7.78254545,2.41457778 7.65709091,2.51235556 7.44472727,2.80533333 C7.23272727,3.09831111 6.74581818,3.03715556 7.01381818,2.72 C7.28145455,2.40248889 7.18290909,1.54844444 7.03309091,1.31662222 C7.03309091,1.31662222 6.83345455,1.13351111 7.28254545,1.06026667 C7.732,0.987022222 8.68036364,1.07271111 8.48072727,1.69493333 Z"></path></svg>
\ No newline at end of file
diff --git a/core/modules/layout_builder/images/location.svg b/core/modules/layout_builder/images/location.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a0f2ab0afce943b62c71a8fdd51b9d179e8a4a8b
--- /dev/null
+++ b/core/modules/layout_builder/images/location.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#73b355"><path d="M5.4749999,0 C2.43935876,0 0,2.45021982 0,5.50153207 C0,8.5518841 5.4749999,16.0038459 5.4749999,16.0038459 C5.4749999,16.0038459 10.9499998,8.5518841 10.9499998,5.50153207 C10.9499998,2.45021982 8.51064105,0 5.4749999,0 Z M5.89615374,8.00192294 C4.48158136,8.00192294 3.36923071,6.89054251 3.36923071,5.4749999 C3.36923071,4.06042752 4.48061114,2.94807687 5.89615374,2.94807687 C7.31072613,2.94807687 8.42307678,4.0594573 8.42307678,5.4749999 C8.42307678,6.89051825 7.31075039,8.00192294 5.89615374,8.00192294 Z"></path></svg>
\ No newline at end of file
diff --git a/core/modules/layout_builder/src/Form/DefaultsEntityForm.php b/core/modules/layout_builder/src/Form/DefaultsEntityForm.php
index 0dd6520fd3b1646be88464ec1f16b9bc1b2fcbea..741395078a03cf4de33f43e589fd630324ff54e1 100644
--- a/core/modules/layout_builder/src/Form/DefaultsEntityForm.php
+++ b/core/modules/layout_builder/src/Form/DefaultsEntityForm.php
@@ -3,8 +3,10 @@
 namespace Drupal\layout_builder\Form;
 
 use Drupal\Core\Entity\EntityForm;
+use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\layout_builder\Entity\LayoutEntityDisplayInterface;
 use Drupal\layout_builder\LayoutTempstoreRepositoryInterface;
 use Drupal\layout_builder\SectionStorageInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -23,6 +25,13 @@ class DefaultsEntityForm extends EntityForm {
    */
   protected $layoutTempstoreRepository;
 
+  /**
+   * The entity type bundle info service.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface
+   */
+  protected $entityTypeBundleInfo;
+
   /**
    * The section storage.
    *
@@ -35,9 +44,16 @@ class DefaultsEntityForm extends EntityForm {
    *
    * @param \Drupal\layout_builder\LayoutTempstoreRepositoryInterface $layout_tempstore_repository
    *   The layout tempstore repository.
+   * @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $entity_type_bundle_info
+   *   The entity type bundle info service.
    */
-  public function __construct(LayoutTempstoreRepositoryInterface $layout_tempstore_repository) {
+  public function __construct(LayoutTempstoreRepositoryInterface $layout_tempstore_repository, EntityTypeBundleInfoInterface $entity_type_bundle_info = NULL) {
     $this->layoutTempstoreRepository = $layout_tempstore_repository;
+    if (!$entity_type_bundle_info) {
+      @trigger_error('The entity_type.bundle.info service must be passed to DefaultsEntityForm::__construct(), it is required before Drupal 9.0.0.', E_USER_DEPRECATED);
+      $entity_type_bundle_info = \Drupal::service('entity_type.bundle.info');
+    }
+    $this->entityTypeBundleInfo = $entity_type_bundle_info;
   }
 
   /**
@@ -45,7 +61,8 @@ public function __construct(LayoutTempstoreRepositoryInterface $layout_tempstore
    */
   public static function create(ContainerInterface $container) {
     return new static(
-      $container->get('layout_builder.tempstore_repository')
+      $container->get('layout_builder.tempstore_repository'),
+      $container->get('entity_type.bundle.info')
     );
   }
 
@@ -64,10 +81,55 @@ public function buildForm(array $form, FormStateInterface $form_state, SectionSt
       '#type' => 'layout_builder',
       '#section_storage' => $section_storage,
     ];
+    $form['layout_builder_message'] = $this->buildMessage($section_storage->getContextValue('display'));
+
     $this->sectionStorage = $section_storage;
     return parent::buildForm($form, $form_state);
   }
 
+  /**
+   * Renders a message to display at the top of the layout builder.
+   *
+   * @param \Drupal\layout_builder\Entity\LayoutEntityDisplayInterface $entity
+   *   The entity view display being edited.
+   *
+   * @return array
+   *   A renderable array containing the message.
+   */
+  protected function buildMessage(LayoutEntityDisplayInterface $entity) {
+    $entity_type_id = $entity->getTargetEntityTypeId();
+    $entity_type = $this->entityTypeManager->getDefinition($entity_type_id);
+    $bundle_info = $this->entityTypeBundleInfo->getBundleInfo($entity_type_id);
+
+    $args = [
+      '@bundle' => $bundle_info[$entity->getTargetBundle()]['label'],
+      '@plural_label' => $entity_type->getPluralLabel(),
+    ];
+    if ($entity_type->hasKey('bundle')) {
+      $message = $this->t('You are editing the layout template for all @bundle @plural_label.', $args);
+    }
+    else {
+      $message = $this->t('You are editing the layout template for all @plural_label.', $args);
+    }
+    return [
+      '#type' => 'container',
+      '#attributes' => [
+        'class' => [
+          'layout-builder__message',
+          'layout-builder__message--defaults',
+        ],
+      ],
+      'message' => [
+        '#theme' => 'status_messages',
+        '#message_list' => ['status' => [$message]],
+        '#status_headings' => [
+          'status' => $this->t('Status message'),
+        ],
+      ],
+      '#weight' => -900,
+    ];
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/layout_builder/src/Form/OverridesEntityForm.php b/core/modules/layout_builder/src/Form/OverridesEntityForm.php
index 552fa5910e7a0514496f454a68aa63d33d312483..dd75eec3afaa3feb8a9174e2efc36bc3eff7b1b7 100644
--- a/core/modules/layout_builder/src/Form/OverridesEntityForm.php
+++ b/core/modules/layout_builder/src/Form/OverridesEntityForm.php
@@ -5,10 +5,12 @@
 use Drupal\Component\Datetime\TimeInterface;
 use Drupal\Core\Entity\ContentEntityForm;
 use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityRepositoryInterface;
 use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\layout_builder\LayoutTempstoreRepositoryInterface;
+use Drupal\layout_builder\OverridesSectionStorageInterface;
 use Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage;
 use Drupal\layout_builder\SectionStorageInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -97,9 +99,73 @@ public function buildForm(array $form, FormStateInterface $form_state, SectionSt
     //   restricts all access to the field, explicitly allow access here until
     //   https://www.drupal.org/node/2942975 is resolved.
     $form[OverridesSectionStorage::FIELD_NAME]['#access'] = TRUE;
+
+    $form['layout_builder_message'] = $this->buildMessage($section_storage->getContextValue('entity'), $section_storage);
     return $form;
   }
 
+  /**
+   * Renders a message to display at the top of the layout builder.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity whose layout is being edited.
+   * @param \Drupal\layout_builder\OverridesSectionStorageInterface $section_storage
+   *   The current section storage.
+   *
+   * @return array
+   *   A renderable array containing the message.
+   */
+  protected function buildMessage(EntityInterface $entity, OverridesSectionStorageInterface $section_storage) {
+    $entity_type = $entity->getEntityType();
+    $bundle_info = $this->entityTypeBundleInfo->getBundleInfo($entity->getEntityTypeId());
+
+    $variables = [
+      '@bundle' => $bundle_info[$entity->bundle()]['label'],
+      '@singular_label' => $entity_type->getSingularLabel(),
+      '@plural_label' => $entity_type->getPluralLabel(),
+    ];
+
+    $defaults_link = $section_storage
+      ->getDefaultSectionStorage()
+      ->getLayoutBuilderUrl();
+
+    if ($defaults_link->access($this->currentUser())) {
+      $variables[':link'] = $defaults_link->toString();
+      if ($entity_type->hasKey('bundle')) {
+        $message = $this->t('You are editing the layout for this @bundle @singular_label. <a href=":link">Edit the template for all @bundle @plural_label instead.</a>', $variables);
+      }
+      else {
+        $message = $this->t('You are editing the layout for this @singular_label. <a href=":link">Edit the template for all @plural_label instead.</a>', $variables);
+      }
+    }
+    else {
+      if ($entity_type->hasKey('bundle')) {
+        $message = $this->t('You are editing the layout for this @bundle @singular_label.', $variables);
+      }
+      else {
+        $message = $this->t('You are editing the layout for this @singular_label.', $variables);
+      }
+    }
+
+    return [
+      '#type' => 'container',
+      '#attributes' => [
+        'class' => [
+          'layout-builder__message',
+          'layout-builder__message--overrides',
+        ],
+      ],
+      'message' => [
+        '#theme' => 'status_messages',
+        '#message_list' => ['status' => [$message]],
+        '#status_headings' => [
+          'status' => $this->t('Status message'),
+        ],
+      ],
+      '#weight' => -900,
+    ];
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
index 4c11a0153f868bd12422c1de33d58856ea6ee9f4..12b876281941bc45523b834ca05b57851af582f4 100644
--- a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
+++ b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\Tests\layout_builder\Functional;
 
+use Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay;
 use Drupal\layout_builder\Section;
 use Drupal\node\Entity\Node;
 use Drupal\Tests\BrowserTestBase;
@@ -63,6 +64,26 @@ protected function setUp() {
     ]);
   }
 
+  /**
+   * Tests Layout Builder overrides without access to edit the default layout.
+   */
+  public function testOverridesWithoutDefaultsAccess() {
+    $assert_session = $this->assertSession();
+    $page = $this->getSession()->getPage();
+
+    $this->drupalLogin($this->drupalCreateUser(['configure any layout']));
+
+    LayoutBuilderEntityViewDisplay::load('node.bundle_with_section_field.default')
+      ->enableLayoutBuilder()
+      ->setOverridable()
+      ->save();
+
+    $this->drupalGet('node/1');
+    $page->clickLink('Layout');
+    $assert_session->elementTextContains('css', '.layout-builder__message.layout-builder__message--overrides', 'You are editing the layout for this Bundle with section field content item.');
+    $assert_session->linkNotExists('Edit the template for all Bundle with section field content items instead.');
+  }
+
   /**
    * Tests functionality of Layout Builder for overrides.
    */
@@ -88,6 +109,8 @@ public function testOverrides() {
     // The layout form should not contain fields for the title of the node by
     // default.
     $assert_session->fieldNotExists('title[0][value]');
+    $assert_session->elementTextContains('css', '.layout-builder__message.layout-builder__message--overrides', 'You are editing the layout for this Bundle with section field content item. Edit the template for all Bundle with section field content items instead.');
+    $assert_session->linkExists('Edit the template for all Bundle with section field content items instead.');
     $page->clickLink('Add Block');
     $page->clickLink('Powered by Drupal');
     $page->fillField('settings[label]', 'This is an override');
@@ -109,6 +132,40 @@ public function testOverrides() {
     $assert_session->pageTextNotContains('This is an override');
   }
 
+  /**
+   * Tests the Layout Builder UI for an entity type without a bundle.
+   */
+  public function testNonBundleEntityType() {
+    $assert_session = $this->assertSession();
+    $page = $this->getSession()->getPage();
+
+    // Log in as a user that can edit layout templates.
+    $this->drupalLogin($this->drupalCreateUser([
+      'configure any layout',
+      'administer user display',
+    ]));
+
+    $this->drupalGet('admin/config/people/accounts/display/default');
+    $this->drupalPostForm(NULL, ['layout[enabled]' => TRUE], 'Save');
+    $this->drupalPostForm(NULL, ['layout[allow_custom]' => TRUE], 'Save');
+
+    $page->clickLink('Manage layout');
+    $assert_session->pageTextContains('You are editing the layout template for all users.');
+
+    $this->drupalGet('user');
+    $page->clickLink('Layout');
+    $assert_session->pageTextContains('You are editing the layout for this user. Edit the template for all users instead.');
+
+    // Log in as a user that cannot edit layout templates.
+    $this->drupalLogin($this->drupalCreateUser([
+      'configure any layout',
+    ]));
+    $this->drupalGet('user');
+    $page->clickLink('Layout');
+    $assert_session->pageTextContains('You are editing the layout for this user.');
+    $assert_session->pageTextNotContains('Edit the template for all users instead.');
+  }
+
   /**
    * Tests that the Layout Builder preserves entity values.
    */
@@ -185,6 +242,7 @@ public function testLayoutBuilderUi() {
     $assert_session->linkExists('Manage layout');
     $this->clickLink('Manage layout');
     $assert_session->addressEquals("$field_ui_prefix/display/default/layout");
+    $assert_session->elementTextContains('css', '.layout-builder__message.layout-builder__message--defaults', 'You are editing the layout template for all Bundle with section field content items.');
     // The body field is only present once.
     $assert_session->elementsCount('css', '.field--name-body', 1);
     // The extra field is only present once.
diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php
index db847e6b7a4dcb376c151297adbce9793369ad6f..26be489f54a3908dc480689be83225eac8e6dfb2 100644
--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php
+++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php
@@ -20,6 +20,7 @@ class TestMultiWidthLayoutsTest extends WebDriverTestBase {
 
   public static $modules = [
     'layout_builder',
+    'layout_builder_test_css_transitions',
     'block',
     'node',
   ];