Настройка ключей, управляемых клиентом, для шифрования неактивных данных Azure Event Hubs

Azure Event Hubs обеспечивает шифрование неактивных данных с помощью шифрования службы Azure Storage (Azure SSE). Служба Центров событий использует Azure Storage для хранения данных. Все данные, хранящиеся в Azure Storage, шифруются с помощью ключей, управляемых корпорацией Майкрософт. Если вы используете собственный ключ (также называемый Bring Your Own Key (BYOK) или ключом, управляемым клиентом), данные по-прежнему шифруются с помощью ключа, управляемого корпорацией Майкрософт, но, кроме того, ключ корпорации Майкрософт будет зашифрован с помощью ключа, управляемого клиентом. Эта функция позволяет создавать, изменять, отключать и отменять доступ к ключам, управляемым клиентом, которые используются для шифрования ключей, управляемых корпорацией Майкрософт. Включение возможности BYOK — это однократный процесс настройки в вашем пространстве имен.

Внимание

  • Возможность BYOK поддерживается на уровнях Премиум и Выделенный в Центрах событий.
  • Шифрование можно включить только для новых или пустых пространств имен. Если пространство имен содержит центры событий, операция шифрования завершается ошибкой.

Вы можете использовать Azure Key Vault (включая модуль безопасности управляемого оборудования Azure Key Vault) для управления ключами и аудита использования ключей. Вы можете создать собственные ключи и сохранить их в key vault или использовать API Azure Key Vault для создания ключей. Дополнительные сведения о Azure Key Vault см. в разделе Что такое Azure Key Vault?

В этой статье показано, как настроить key vault с ключами, управляемыми клиентом, с помощью Azure portal. Чтобы узнать, как создать хранилище ключей с помощью портала Azure, см. статью Краткое руководство: создание хранилища ключей Azure с помощью портала Azure.

Включение ключей, управляемых клиентом (Azure portal)

Чтобы включить ключи, управляемые клиентом в Azure portal, выполните следующие действия. Если вы используете выделенный уровень, сначала перейдите к выделенному кластеру Центров событий.

  1. Выберите пространство имен, для которого требуется включить BYOK.

  2. На странице Параметры пространства имен Центров событий выберите Шифрование.

  3. Выберите Шифрование данных в состоянии покоя, управляемое клиентом, как показано на следующем рисунке.

                  Включение управляемого клиентом ключа

Примечание.

В настоящее время невозможно настроить управляемый HSM Azure Key Vault на портале.

Настройте хранилище ключей с ключами

После включения ключей, управляемых клиентом, необходимо связать управляемый клиентом ключ с пространством имен Azure Event Hubs. Центры событий поддерживают только Azure Key Vault. Если включить параметр Encryption с ключом, управляемым клиентом в предыдущем разделе, необходимо импортировать ключ в Azure Key Vault. Кроме того, для ключей должны быть настроены параметры Обратимое удаление и Не очищать. Эти параметры можно настроить с помощью PowerShell или CLI.

Создайте хранилище ключей или управляемый модуль HSM

Внимание

Использование ключей, управляемых клиентом, с Azure Event Hubs требует, чтобы хранилище ключей имело два обязательных свойства. Этими свойствами являются Мягкое удаление и Не удалять данные. Эти свойства включены по умолчанию при создании нового Key Vault на портале Azure. Однако если необходимо включить эти свойства в существующей key vault, необходимо использовать PowerShell или Azure CLI.

  1. Чтобы создать новое хранилище ключей, выполните Краткое руководство по началу работы с Azure Key Vault. Дополнительные сведения о ключах, секретах и сертификатах см. в About keys, secrets, and certificates.

  2. Чтобы включить мягкое удаление и защиту от очистки при создании хранилища, используйте команду az keyvault create.

    az keyvault create --name ContosoVault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true
    
  3. Чтобы добавить защиту очистки в существующее хранилище (уже включено обратимое удаление), используйте команду az keyvault update.

    az keyvault update --name ContosoVault --resource-group ContosoRG --enable-purge-protection true
    

Создание ключей

Чтобы создать ключи, выполните следующее.

  1. Чтобы создать новый ключ, выберите Создать или импортировать из меню Ключи в разделе Параметры.

                  Выберите кнопку создания/импорта

  2. Задайте Параметры, чтобы Создать и присвоить имя для ключа.

                  Создание ключа

  3. Теперь можно выбрать этот ключ из раскрывающегося списка, чтобы связать его с пространством имен Центров событий для шифрования.

    Выберите ключ из хранилища ключей

    Примечание.

    Для избыточности можно добавить до трех ключей. Если срок действия одного из ключей истек или недоступен, другие ключи используются для шифрования.

  4. Введите сведения о ключе и нажмите кнопку Выбрать. Это обеспечивает возможность шифрования ключа, управляемого корпорацией Майкрософт, с использованием вашего ключа (управляемого клиентом ключа).

Управляемые удостоверения

Существуют два типа управляемых удостоверений, которые можно назначить пространству имен Event Hubs.

  • Назначаемый системой: вы можете включить управляемое удостоверение непосредственно в пространстве имен Event Hubs. При включении управляемого удостоверения, назначаемого системой, создается удостоверение в Microsoft Entra, связанное с жизненным циклом пространства имен Event Hubs. Поэтому при удалении пространства имен Azure автоматически удаляет идентификатор для вас. Только данный ресурс Azure (пространство имен) по замыслу может использовать это удостоверение для запроса токенов от Microsoft Entra ID.

  • User-assigned. Вы также можете создать управляемое удостоверение как автономный ресурс Azure, который называется удостоверением, назначенным пользователем. Вы можете создать управляемое удостоверение, присваиваемое пользователем, и назначить его одному или нескольким пространствам имен Event Hubs. В случае назначенных пользователем управляемых удостоверений управление таким удостоверением осуществляется отдельно от ресурсов, которые его используют. Они не привязаны к жизненному циклу пространства имен. Вы можете явно удалить назначенную пользователем идентичность, когда она больше не нужна.

    Дополнительные сведения см. в разделе Что такое управляемые удостоверения для ресурсов Azure?.

Шифрование с использованием присвоенных системой идентификаторов (шаблон)

В этом разделе показано, как выполнить следующие задачи с помощью шаблонов Azure Resource Manager.

  1. Создайте пространство имен для концентраторов событий с управляемым удостоверением службы.
  2. Создайте key vault и предоставьте удостоверение службы доступ к key vault.
  3. Обновите пространство имен Event Hubs с помощью данных хранилища ключей (ключ/значение).

Создание кластера Центров событий и пространства имен с управляемым удостоверением службы

В этом разделе показано, как создать пространство имен Azure Event Hubs с управляемым удостоверением службы с помощью шаблона Azure Resource Manager и PowerShell.

  1. Создайте шаблон Azure Resource Manager для создания пространства имен Event Hubs с управляемым удостоверением службы. Присвойте файлу имя CreateEventHubClusterAndNamespace.json:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/clusters",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('clusterName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Dedicated",
                "capacity":1
             }
          },
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
             "properties":{
                "isAutoInflateEnabled":false,
                "maximumThroughputUnits":0,
                "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]"
             },
             "dependsOn":[
                "[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]"
             ]
          }
       ],
       "outputs":{
          "EventHubNamespaceId":{
             "type":"string",
             "value":"[resourceId('Microsoft.EventHub/namespaces',parameters('namespaceName'))]"
          }
       }
    }
    
  2. Создайте файл параметров шаблона с именем CreateEventHubClusterAndNamespaceParams.json.

    Примечание.

    Измените следующие значения:

    • <EventHubsClusterName> — имя кластера Центров событий;
    • <EventHubsNamespaceName> — имя пространства имен для Event Hubs
    • <Location> — расположение пространства Центров событий.
    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "value":"<EventHubsClusterName>"
          },
          "namespaceName":{
             "value":"<EventHubsNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          }
       }
    }
    
    
  3. Выполните следующую команду PowerShell, чтобы развернуть шаблон и создать пространство имен Event Hubs. Затем получите идентификатор пространства имен Event Hubs, чтобы использовать его позднее. Замените {MyRG} именем группы ресурсов перед выполнением команды.

    $outputs = New-AzResourceGroupDeployment -Name CreateEventHubClusterAndNamespace -ResourceGroupName {MyRG} -TemplateFile ./CreateEventHubClusterAndNamespace.json -TemplateParameterFile ./CreateEventHubClusterAndNamespaceParams.json
    
    $EventHubNamespaceId = $outputs.Outputs["eventHubNamespaceId"].value
    

Предоставление пространству имен Центров событий удостоверения доступа к хранилищу ключей.

Установите политику доступа к хранилищу ключей так, чтобы управляемое удостоверение для пространства имен Event Hubs могло получить доступ к значению ключа в хранилище ключей. Используйте идентификатор пространства имен Центров событий из предыдущего раздела.

$identity = (Get-AzureRmResource -ResourceId $EventHubNamespaceId -ExpandProperties).Identity

Set-AzureRmKeyVaultAccessPolicy -VaultName {keyVaultName} -ResourceGroupName {RGName} -ObjectId $identity.PrincipalId -PermissionsToKeys get,wrapKey,unwrapKey,list

Шифрование данных в пространстве имен в Event Hubs с использованием управляемого клиентом ключа из хранилища ключей.

На данный момент вы выполнили следующие действия:

  1. Создано пространство имен уровня "Премиум" с управляемым удостоверением.
  2. Создайте хранилище ключей и предоставьте управляемой идентичности доступ к нему.

На этом шаге вы обновите пространство имен Event Hubs с информацией из хранилища ключей.

  1. Создайте файл JSON с именем CreateEventHubClusterAndNamespace.json и приведенным ниже содержимым.

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          },
          "keyVaultUri":{
             "type":"string",
             "metadata":{
                "description":"URI of the KeyVault."
             }
          },
          "keyName":{
             "type":"string",
             "metadata":{
                "description":"KeyName."
             }
          }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
             "properties":{
                "isAutoInflateEnabled":false,
                "maximumThroughputUnits":0,
                "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]",
                "encryption":{
                   "keySource":"Microsoft.KeyVault",
                   "keyVaultProperties":[
                      {
                         "keyName":"[parameters('keyName')]",
                         "keyVaultUri":"[parameters('keyVaultUri')]"
                      }
                   ]
                }
             }
          }
       ]
    }
    
  2. Создайте файл параметров шаблона UpdateEventHubClusterAndNamespaceParams.json.

    Примечание.

    Измените следующие значения:

    • <EventHubsClusterName> — имя кластера Центров событий;
    • <EventHubsNamespaceName> — имя пространства имен для Event Hubs
    • <Location> — расположение пространства Центров событий.
    • <KeyVaultName> — имя вашего хранилища ключей
    • <KeyName> — имя ключа в хранилище ключей
    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "value":"<EventHubsClusterName>"
          },
          "namespaceName":{
             "value":"<EventHubsNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          },
          "keyName":{
             "value":"<KeyName>"
          },
          "keyVaultUri":{
             "value":"https://<KeyVaultName>.vault.azure.net"
          }
       }
    }
    
  3. Выполните следующую команду PowerShell, чтобы развернуть шаблон Resource Manager. Замените {MyRG} именем группы ресурсов перед выполнением команды.

    New-AzResourceGroupDeployment -Name UpdateEventHubNamespaceWithEncryption -ResourceGroupName {MyRG} -TemplateFile ./UpdateEventHubClusterAndNamespace.json -TemplateParameterFile ./UpdateEventHubClusterAndNamespaceParams.json 
    

Шифрование с использованием назначенных пользователем идентификаторов (шаблон)

  1. Создайте пользовательскую идентичность.
  2. Создайте key vault и предоставьте доступ удостоверению, созданному пользователем, с помощью политик доступа.
  3. Создайте пространство имен Event Hubs, используя управляемую учетную запись пользователя и информацию Key Vault.

Создание идентификации, назначаемой пользователем

Следуйте инструкциям из статьи Create a user-assigned managed identity, чтобы создать управляемое удостоверение, назначаемое пользователем. Вы также можете создать удостоверение, назначаемое пользователем, с помощью CLI, PowerShell, Azure Resource Manager и REST.

Примечание.

Вы можете назначить до 4 идентификаторов пользователей пространству имен. Эти ассоциации удаляются при удалении пространства имен или при передаче identity -> type в шаблоне в None.

Предоставить доступ назначаемой пользователем идентификации

  1. Получите Service Principal ID для идентичности пользователя с помощью следующей команды PowerShell. В этом примере ud1 — это удостоверение, заданное пользователем, которое будет использоваться для шифрования.

    $servicePrincipal=Get-AzADServicePrincipal -SearchString "ud1"    
    
  2. Предоставьте удостоверению, назначенному пользователем, доступ к ключевому хранилищу, назначив политику доступа.

    Set-AzureRmKeyVaultAccessPolicy -VaultName {keyVaultName} -ResourceGroupName {RGName} -ObjectId $servicePrincipal.Id -PermissionsToKeys get,wrapKey,unwrapKey,list    
    

    Примечание.

    Вы можете добавить до 3 ключей, но удостоверение пользователя, используемое для шифрования, должно быть одинаковым для всех ключей. В настоящее время поддерживается только один идентификатор шифрования.

Создайте пространство имен для концентраторов событий с идентификацией пользователя и сведениями о хранилище ключей.

В этом разделе приведен пример, показывающий, как выполнить следующие задачи с помощью шаблона Azure Resource Manager.

  1. Назначьте управляемое пользователем удостоверение пространству имен Microsoft Event Hubs.

                "identity": {
                    "type": "UserAssigned",
                    "userAssignedIdentities": {
                        "[parameters('identity').userAssignedIdentity]": {}
                    }
                },
    
  2. Включите шифрование в пространстве имен, указав ключ из хранилища ключей и управляемую пользователем личность для получения доступа к ключу.

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  3. Создайте JSON-файл CreateEventHubsNamespaceWithUserIdentityAndEncryption.json со следующим содержимым:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
        "clusterName":{
            "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          },
          "keyVaultUri":{
             "type":"string",
             "metadata":{
                "description":"URI of the KeyVault."
             }
          },
          "keyName":{
             "type":"string",
             "metadata":{
                "description":"KeyName."
             },
         "identity": {
            "type": "Object",
            "defaultValue": {
                "userAssignedIdentity": ""
            },
            "metadata": {
                "description": "user-assigned identity."
            }
         }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/clusters",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('clusterName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Dedicated",
                "capacity":1
             }
          },
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2021-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
            "identity": {
                "type": "UserAssigned",
                "userAssignedIdentities": {
                    "[parameters('identity').userAssignedIdentity]": {}
                }
            },
             "properties":{
                "encryption":{
                   "keySource":"Microsoft.KeyVault",
                   "keyVaultProperties":[
                        {
                            "keyName": "[parameters('keyName')]",
                            "keyVaultUri": "[parameters('keyVaultUri')]",
                            "identity": {
                                "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                            }
                        }
                   ]
                }
             }
          }
       ]
    }        
    
  4. Создайте файл параметров шаблона CreateEventHubsNamespaceWithUserIdentityAndEncryptionParams.json.

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "namespaceName":{
             "value":"<EventHubsNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          },
          "keyVaultUri":{
             "value":"https://<KeyVaultName>.vault.azure.net"
          },
          "keyName":{
             "value":"<KeyName>"
          },
          "identity": {
          "value": {
                "userAssignedIdentity": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER MANAGED IDENTITY NAME>"
          }
       }
       }
    }
    

    В файле параметров замените заполнители соответствующими значениями.

    Заполнитель значение
    <EventHubsNamespaceName> Имя пространства имен Центров событий.
    <Location> Место, где вы хотите создать пространство имен.
    <KeyVaultName> Имя ключевого хранилища.
    <KeyName> Имя ключа в хранилище ключей.
    <AZURE SUBSCRIPTION ID> Идентификатор подписки Azure.
    <RESOURCE GROUP NAME> Группа ресурсов пользовательски управляемого удостоверения.
    <USER MANAGED IDENTITY NAME> Имя управляемого пользователем удостоверения.
  5. Выполните следующую команду PowerShell, чтобы развернуть шаблон Resource Manager. Замените {MyRG} именем группы ресурсов перед выполнением команды.

    New-AzResourceGroupDeployment -Name CreateEventHubsNamespaceWithEncryption -ResourceGroupName {MyRG} -TemplateFile ./ CreateEventHubsNamespaceWithUserIdentityAndEncryption.json -TemplateParameterFile ./ CreateEventHubsNamespaceWithUserIdentityAndEncryptionParams.json        
    

Использование удостоверений, назначаемых пользователем, и удостоверений, назначаемых системой

Пространство имен может одновременно иметь удостоверения, как назначаемые системой, так и пользователем. В этом случае свойство type будет SystemAssigned, UserAssigned как показано в следующем примере.

"identity": {
    "type": "SystemAssigned, UserAssigned",
    "userAssignedIdentities": {
        "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userIdentity1>" : {}
    }
}

В этом сценарии вы можете выбрать либо удостоверение, назначаемое системой, либо удостоверение, назначаемое пользователем, для шифрования неактивных данных.

Если в шаблоне Resource Manager не указан атрибут identity, используется управляемое системой удостоверение. Вот пример фрагмента.

"properties":{
   "encryption":{
      "keySource":"Microsoft.KeyVault",
      "keyVaultProperties":[
         {
            "keyName":"[parameters('keyName')]",
            "keyVaultUri":"[parameters('keyVaultUri')]"
         }
      ]
   }
}

См. следующий пример использования управляемого пользователем удостоверения для шифрования. Обратите внимание, что для атрибута identity задан идентификатор, управляемый пользователем.

"properties":{
   "encryption":{
      "keySource":"Microsoft.KeyVault",
      "keyVaultProperties":[
         {
            "keyName":"[parameters('keyName')]",
            "keyVaultUri":"[parameters('keyVaultUri')]",
            "identity": {
                "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
            }
         }
      ]
   }
}

Включение шифрования инфраструктуры или двойного шифрования данных

Если вам требуется повышенный уровень гарантии защищенности данных, можно включить шифрование на уровне инфраструктуры, которое также называется двойным шифрованием.

Если включено шифрование инфраструктуры, данные в пространстве имен Центров событий шифруются дважды (один раз на уровне службы и один раз на уровне инфраструктуры) с использованием двух разных алгоритмов шифрования и двух разных ключей. Таким образом, шифрование инфраструктуры данных Центров событий защищает от сценария, в котором можно скомпрометировать один из алгоритмов шифрования или ключей.

Вы можете включить шифрование инфраструктуры, обновив шаблон Azure Resource Manager с помощью свойства requireInfrastructureEncryption в приведенном выше CreateEventHubClusterAndNamespace.json, как показано в следующем примере.

"properties":{
   "isAutoInflateEnabled":false,
   "maximumThroughputUnits":0,
   "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]",
   "encryption":{
      "keySource":"Microsoft.KeyVault",
      "requireInfrastructureEncryption":true,
      "keyVaultProperties":[
         {
            "keyName":"[parameters('keyName')]",
            "keyVaultUri":"[parameters('keyVaultUri')]"
         }
      ]
   }
}

Замена, отзыв и кэширование ключей шифрования

Поворот ключей шифрования

Вы можете заменить ключ в хранилище ключей с помощью механизма ротации Azure Key Vault. Для автоматизации смены ключей можно также задать даты активации и истечения срока действия. Служба Центров событий обнаруживает новые версии ключей и начинает использовать их автоматически.

Отменить доступ к ключам

Отзыв доступа к ключам шифрования не удаляет данные из Центров событий. Однако получить доступ к данным из пространства имен Центров событий невозможно. Ключ шифрования можно отозвать с помощью политики доступа или удаления ключа. Узнайте больше о политиках доступа и защите хранилища ключей из Безопасного доступа к хранилищу ключей.

После отзыва ключа шифрования служба Центров событий в зашифрованном пространстве имен становится неработоспособной. Если доступ к ключу включен или ключ удаления восстановлен, служба Event Hubs выбирает ключ, чтобы вы могли получить доступ к данным из зашифрованного пространства имен Event Hubs.

Кэширование ключей

Экземпляр Event Hubs (event hub) опрашивает перечисленные ключи шифрования раз в 5 минут. Он кэширует и использует их до следующего опроса, который произойдет через 5 минут. Пока доступен по крайней мере один ключ, центр событий доступен. Если все перечисленные ключи недоступны при опросе, все центры событий становятся недоступными.

Вот дополнительные сведения:

  • Каждые 5 минут служба Центров событий опрашивает все ключи, управляемые клиентом, перечисленные в записи пространства имен:
    • Если ключ был подвергнут ротации, запись обновляется с использованием нового ключа.
    • Если ключ был отменен, он удаляется из записи.
    • Если все ключи были отменены, состояние шифрования пространства имен определяется как Отменено. Получить доступ к данным из пространства имен Центров событий невозможно.

Рекомендации при использовании геоизбыточного аварийного восстановления

Внимание

Чтобы включить Geo-DR в пространстве имен, использующем шифрование BYOK, вторичное пространство имен для связывания должно иметь включенное управляемое удостоверение, назначенное системой или назначаемое пользователем.

Геоаварийное восстановление — шифрование с присвоенными системой идентификаторами

Чтобы включить шифрование ключа, управляемого корпорацией Майкрософт, с помощью управляемого клиентом ключа, настраивается политика доступа для назначаемого системой управляемого удостоверения в указанном Azure KeyVault. Это обеспечивает контроль доступа к Azure KeyVault из пространства имен Azure Event Hubs.

Вследствие этого происходит следующее.

  • Если геоизбыточное аварийное восстановление уже включено для пространства имен Центров событий, и вы хотите включить ключ, управляемый клиентом, то
    • Разорвите пару.
    • Настройте политику доступа для управляемого удостоверения, назначаемого системой, как для основного, так и для вторичного пространства имен в хранилище ключей.
    • Настройте шифрование для основного пространства имен.
    • Повторно соедините основные и второстепенные пространства имен.
  • Если вы хотите включить гео-дисперсию в пространстве имен Центров событий, где уже настроен ключ, управляемый заказчиком, продолжайте выполнение следующих действий.
    • Настройте политику доступа для управляемой идентичности для вторичного пространства имен в хранилище ключей.
    • Свяжите основное и второстепенное пространства имен.

Устранение последствий гео-катастроф — шифрование с идентификаторами, назначенными пользователем

Вот несколько рекомендаций.

  1. Создайте управляемое удостоверение и назначьте ему разрешения на Key Vault.
  2. Добавьте удостоверение в качестве удостоверения, назначаемого пользователем, и включите шифрование с использованием этого удостоверения в обоих пространствах имен.
  3. Связывание пространств имен

Условия для включения гео-доступного аварийного восстановления и шифрования с использованием пользовательских удостоверений:

  1. Вторичное пространство имен должно уже иметь включенное шифрование через назначенное пользователем удостоверение, если требуется сопряжение с основным пространством имен, в котором также включено шифрование.
  2. Невозможно активировать шифрование на уже связанном главном объекте, даже если вторичный объект имеет удостоверение, назначенное пользователем, связанное с пространством имен.

Настройка журналов диагностики

Настройка журналов диагностики для пространств имен с включенной функцией BYOK предоставляет необходимые сведения об операциях. Эти журналы можно включить, а затем поток данных позже может быть направлен в концентратор событий или проанализирован с помощью Log Analytics либо передан в хранилище для выполнения пользовательской аналитики. Дополнительные сведения о журналах диагностики можно найти в разделе Обзор журналов диагностики Azure. Сведения о схеме см. в справочных материалах по данным мониторинга.

Дальнейшие действия

См. следующие статьи: