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

Центры событий Azure обеспечивают шифрование неактивных данных с помощью Шифрования службы хранилища Azure. Для хранения данных служба "Центры событий" использует службу хранилища Azure. Все данные, хранящиеся в службе хранилища Azure, шифруются с помощью ключей, управляемых корпорацией Майкрософт. Если вы используете собственный ключ (также называется созданием собственных ключей (BYOK) или ключом, управляемым клиентом), данные по-прежнему шифруются с помощью ключа, управляемого корпорацией Майкрософт. Кроме того, ключ, управляемый корпорацией Майкрософт, будет зашифрован с помощью ключа, управляемого клиентом. Эта возможность позволяет создавать, менять, отключать и отменять доступ к управляемым клиентом ключам, которые используются для шифрования ключей, управляемых корпорацией Майкрософт. Включение возможности BYOK — это однократный процесс настройки в вашем пространстве имен.

Важно!

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

Для управления ключами и аудита использования ключа можно использовать Azure Key Vault. Можно либо создать собственные ключи и хранить их в хранилище ключей, либо использовать API-интерфейсы Azure Key Vault для их генерации. Дополнительные сведения об Azure Key Vault см. в статье Что такое Azure Key Vault?

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

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

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

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

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

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

    Enable customer managed key

Настройка хранилища ключей, содержащего ключи

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

  1. Чтобы создать новое хранилище ключей, следуйте инструкциям из краткого руководства по Azure Key Vault. Дополнительные сведения об импорте имеющихся ключей см. в статье Общие сведения о ключах, секретах и сертификатах Azure Key Vault.

    Важно!

    Для использования ключей, управляемых клиентом, с Центрами событий Azure необходимо, чтобы в хранилище ключей было настроено два обязательных свойства. Этими свойствами являются Обратимое удаление и Не очищать. Эти свойства включены по умолчанию при создании нового хранилища ключей на портале Azure. Однако если требуется включить эти свойства в имеющемся хранилище ключей, необходимо использовать PowerShell или Azure CLI.

  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
    
  4. Чтобы создать ключи, выполните следующее.

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

      Select Generate/Import button

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

      Create a key

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

      Select key from key vault

      Примечание.

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

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

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

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

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

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

    См. сведения об управляемых удостоверениях для ресурсов Azure.

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

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

  1. Создайте пространство имен Центров событий с помощью удостоверения управляемой службы.
  2. Создайте хранилище ключей и предоставьте удостоверению службы доступ к нему.
  3. Обновите пространство имен Центров событий, указав сведения о хранилище ключей ("ключ — значение").

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

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

  1. Создайте шаблон Azure Resource Manager, чтобы создать пространство имен Центров с управляемым удостоверением службы. Присвойте файлу имя 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> — имя пространства имен Центров событий;
    • <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, чтобы развернуть шаблон для создания пространства имен Центров событий. Затем получите идентификатор пространства имен Центров событий, чтобы использовать его позже. Замените {MyRG} именем группы ресурсов перед выполнением команды.

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

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

  1. Выполните следующую команду, чтобы создать хранилище ключей с включенным параметром Защита от очистки и Обратимое удаление.

    New-AzureRmKeyVault -Name {keyVaultName} -ResourceGroupName {RGName}  -Location {location} -EnableSoftDelete -EnablePurgeProtection    
    

    (ИЛИ)

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

    ($updatedKeyVault = Get-AzureRmResource -ResourceId (Get-AzureRmKeyVault -ResourceGroupName {RGName} -VaultName {keyVaultName}).ResourceId).Properties| Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"-Force | Add-Member -MemberType "NoteProperty" -Name "enablePurgeProtection" -Value "true" -Force
    
  2. Задайте политику доступа к хранилищу ключей, чтобы управляемое удостоверение пространства имен Центров событий могло получить доступ к значению ключа в хранилище ключей. Используйте идентификатор пространства имен Центров событий из предыдущего раздела.

    $identity = (Get-AzureRmResource -ResourceId $EventHubNamespaceId -ExpandProperties).Identity
    
    Set-AzureRmKeyVaultAccessPolicy -VaultName {keyVaultName} -ResourceGroupName {RGName} -ObjectId $identity.PrincipalId -PermissionsToKeys get,wrapKey,unwrapKey,list
    

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

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

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

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

  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> — имя пространства имен Центров событий;
    • <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. Создайте хранилище ключей и предоставьте доступ удостоверению, назначаемому пользователем, с помощью политик доступа.
  3. Создайте пространство имен Центров событий с управляемым идентификатором пользователя и информацией о хранилище ключей.

Создание назначаемого пользователем удостоверения

Следуйте инструкциям из статьи Создание управляемого пользователем удостоверения, чтобы создать удостоверение, назначаемое пользователем. Вы также можете создать удостоверение, назначаемое пользователем, с помощью интерфейса командной строки, PowerShell, шаблона Azure Resource Manager и REST.

Примечание.

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

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

  1. Выполните следующую команду, чтобы создать хранилище ключей с включенным параметром "Защита от очистки" и "Обратимое удаление".

    New-AzureRmKeyVault -Name "{keyVaultName}" -ResourceGroupName {RGName} -Location "{location}" -EnableSoftDelete -EnablePurgeProtection           
    

    (ИЛИ)

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

    ($updatedKeyVault = Get-AzureRmResource -ResourceId (Get-AzureRmKeyVault -ResourceGroupName {RGName} -VaultName {keyVaultName}).ResourceId).Properties| Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"-Force | Add-Member -MemberType "NoteProperty" -Name "enablePurgeProtection" -Value "true" -Force            
    
  2. Получите Идентификатор субъекта-службы для удостоверения пользователя с помощью следующей команды PowerShell. В этом примере ud1 — это удостоверение, назначаемое пользователем, которое будет использоваться для шифрования.

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

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

    Примечание.

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

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

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

  • Назначьте управляемое пользователем удостоверение пространству имен Центров событий.

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

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  1. Создайте 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]"
                            }
                        }
                   ]
                }
             }
          }
       ]
    }        
    
  2. Создайте файл параметров шаблона 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> Имя управляемого пользователем удостоверения.
  3. Выполните следующую команду 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>" : {}
    }
}

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

Если в шаблоне диспетчера ресурсов не указан атрибут 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. Для автоматизации смены ключей можно также задать даты активации и истечения срока действия. Служба "Центры событий" обнаружит новые версии ключей и начнет использовать их автоматически.

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

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

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

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

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

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

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

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

Важно!

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

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

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

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

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

Геоизбыточное аварийное восстановление — шифрование с удостоверениями, назначаемыми пользователем

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

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

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

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

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

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

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

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