Door de klant beheerde sleutels configureren voor het versleutelen van Azure Event Hubs-gegevens-at-rest

Azure Event Hubs biedt versleuteling van data-at-rest met Azure Storage Service Encryption (Azure SSE). De Event Hubs-service maakt gebruik van Azure Storage om de gegevens op te slaan. Alle gegevens die zijn opgeslagen met Azure Storage, worden versleuteld met behulp van door Microsoft beheerde sleutels. Als u uw eigen sleutel gebruikt (ook wel Bring Your Own Key (BYOK) of door de klant beheerde sleutel genoemd), worden de gegevens nog steeds versleuteld met behulp van de door Microsoft beheerde sleutel, maar worden de door Microsoft beheerde sleutel bovendien versleuteld met behulp van de door de klant beheerde sleutel. Met deze functie kunt u de toegang tot door de klant beheerde sleutels maken, draaien, uitschakelen en intrekken die worden gebruikt voor het versleutelen van door Microsoft beheerde sleutels. Het inschakelen van de BYOK-functie is een eenmalig installatieproces voor uw naamruimte.

Belangrijk

  • De BYOK-functie wordt ondersteund door premium - en toegewezen lagen van Event Hubs.
  • De versleuteling kan alleen worden ingeschakeld voor nieuwe of lege naamruimten. Als de naamruimte Event Hubs bevat, mislukt de versleutelingsbewerking.

U kunt Azure Key Vault gebruiken om uw sleutels te beheren en uw sleutelgebruik te controleren. U kunt uw eigen sleutels maken en deze opslaan in een sleutelkluis of u kunt de Azure Key Vault API's gebruiken om sleutels te genereren. Zie Wat is Azure Key Vault? voor meer informatie over Azure Key Vault.

In dit artikel wordt beschreven hoe u een sleutelkluis configureert met door de klant beheerde sleutels met behulp van Azure Portal. Zie de quickstart: Een Azure Key Vault maken met behulp van Azure Portal voor meer informatie over het maken van een sleutelkluis met behulp van Azure Portal.

Door de klant beheerde sleutels inschakelen (Azure Portal)

Volg deze stappen om door de klant beheerde sleutels in te schakelen in Azure Portal. Als u de toegewezen laag gebruikt, gaat u eerst naar uw Event Hubs Dedicated-cluster.

  1. Selecteer de naamruimte waarop u BYOK wilt inschakelen.

  2. Selecteer Versleuteling op de pagina Instellingen van uw Event Hubs-naamruimte.

  3. Selecteer de versleuteling van door de klant beheerde sleutel-at-rest , zoals wordt weergegeven in de volgende afbeelding.

    Enable customer managed key

Een sleutelkluis met sleutels instellen

Nadat u door de klant beheerde sleutels hebt ingeschakeld, moet u de door de klant beheerde sleutel koppelen aan uw Azure Event Hubs-naamruimte. Event Hubs ondersteunt alleen Azure Key Vault. Als u de optie Versleuteling met door de klant beheerde sleutel inschakelt in de vorige sectie, moet u de sleutel importeren in Azure Key Vault. Bovendien moeten voor de sleutels Voorlopig verwijderen zijn geconfigureerd en Niet opschonen voor de sleutel zijn geconfigureerd. Deze instellingen kunnen worden geconfigureerd met behulp van PowerShell of CLI.

  1. Als u een nieuwe sleutelkluis wilt maken, volgt u de quickstart van Azure Key Vault. Zie Over sleutels, geheimen en certificaten voor meer informatie over het importeren van bestaande sleutels.

    Belangrijk

    Voor het gebruik van door de klant beheerde sleutels met Azure Event Hubs is vereist dat de sleutelkluis twee vereiste eigenschappen heeft geconfigureerd. Ze zijn: Voorlopig verwijderen en niet leegmaken. Deze eigenschappen worden standaard ingeschakeld wanneer u een nieuwe sleutelkluis maakt in Azure Portal. Als u deze eigenschappen echter wilt inschakelen voor een bestaande sleutelkluis, moet u PowerShell of Azure CLI gebruiken.

  2. Als u zowel voorlopig verwijderen als opschonen wilt inschakelen bij het maken van een kluis, gebruikt u de opdracht az keyvault create .

    az keyvault create --name ContosoVault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true
    
  3. Als u beveiliging tegen opschonen wilt toevoegen aan een bestaande kluis (waarvoor voorlopig verwijderen al is ingeschakeld), gebruikt u de opdracht az keyvault update .

    az keyvault update --name ContosoVault --resource-group ContosoRG --enable-purge-protection true
    
  4. Maak sleutels door de volgende stappen uit te voeren:

    1. Als u een nieuwe sleutel wilt maken, selecteert u Genereren/importeren in het menu Sleutels onder Instellingen.

      Select Generate/Import button

    2. Stel Opties in om de sleutel te genereren en een naam te geven.

      Create a key

    3. U kunt deze sleutel nu selecteren om te koppelen aan de Event Hubs-naamruimte voor versleuteling in de vervolgkeuzelijst.

      Select key from key vault

      Notitie

      Voor redundantie kunt u maximaal 3 sleutels toevoegen. Als een van de sleutels is verlopen of niet toegankelijk is, worden de andere sleutels gebruikt voor versleuteling.

    4. Vul de details voor de sleutel in en klik op Selecteren. Hiermee schakelt u de versleuteling van de door Microsoft beheerde sleutel in met uw sleutel (door de klant beheerde sleutel).

Beheerde identiteiten

Er zijn twee typen beheerde identiteiten die u kunt toewijzen aan een Event Hubs-naamruimte.

  • Door het systeem toegewezen: u kunt een beheerde identiteit rechtstreeks inschakelen in een Event Hubs-naamruimte. Wanneer u een door het systeem toegewezen beheerde identiteit inschakelt, wordt er een identiteit gemaakt in Microsoft Entra die is gekoppeld aan de levenscyclus van die Event Hubs-naamruimte. Dus wanneer de naamruimte wordt verwijderd, wordt de identiteit automatisch voor u verwijderd. Alleen die Azure-resource (naamruimte) kan deze identiteit standaard gebruiken om tokens aan te vragen bij Microsoft Entra-id.

  • Door de gebruiker toegewezen: U kunt ook een beheerde identiteit maken als een zelfstandige Azure-resource, die door de gebruiker toegewezen identiteit wordt genoemd. U kunt een door de gebruiker toegewezen beheerde identiteit maken en deze toewijzen aan een of meer Event Hubs-naamruimten. In het geval van door de gebruiker toegewezen beheerde identiteiten, wordt de identiteit afzonderlijk beheerd van de resources die deze gebruikt. Ze zijn niet gekoppeld aan de levenscyclus van de naamruimte. U kunt een door de gebruiker toegewezen identiteit expliciet verwijderen wanneer u deze niet meer nodig hebt.

    Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie.

Versleutelen met door het systeem toegewezen identiteiten (sjabloon)

In deze sectie ziet u hoe u de volgende taken uitvoert met behulp van Azure Resource Manager-sjablonen.

  1. Maak een Event Hubs-naamruimte met een beheerde service-identiteit.
  2. Maak een sleutelkluis en ververleent de service-identiteit toegang tot de sleutelkluis.
  3. Werk de Event Hubs-naamruimte bij met de sleutelkluisgegevens (sleutel/waarde).

Een Event Hubs-cluster en -naamruimte met beheerde service-identiteit maken

In deze sectie wordt beschreven hoe u een Azure Event Hubs-naamruimte met beheerde service-identiteit maakt met behulp van een Azure Resource Manager-sjabloon en PowerShell.

  1. Maak een Azure Resource Manager-sjabloon om een Event Hubs-naamruimte te maken met een beheerde service-identiteit. Geef het bestand de naam: 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. Maak een sjabloonparameterbestand met de naam: CreateEventHubClusterAndNamespaceParams.json.

    Notitie

    Vervang de volgende waarden:

    • <EventHubsClusterName> - Naam van uw Event Hubs-cluster
    • <EventHubsNamespaceName> - Naam van uw Event Hubs-naamruimte
    • <Location> - Locatie van uw Event Hubs-naamruimte
    {
       "$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. Voer de volgende PowerShell-opdracht uit om de sjabloon te implementeren om een Event Hubs-naamruimte te maken. Haal vervolgens de id van de Event Hubs-naamruimte op om deze later te gebruiken. Vervang {MyRG} door de naam van de resourcegroep voordat u de opdracht uitvoert.

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

Event Hubs-naamruimte-identiteit toegang verlenen tot de sleutelkluis

  1. Voer de volgende opdracht uit om een sleutelkluis te maken met opschoningsbeveiliging en voorlopig verwijderen ingeschakeld.

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

    (OF)

    Voer de volgende opdracht uit om een bestaande sleutelkluis bij te werken. Geef waarden op voor resourcegroep- en sleutelkluisnamen voordat u de opdracht uitvoert.

    ($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. Stel het toegangsbeleid voor de sleutelkluis in, zodat de beheerde identiteit van de Event Hubs-naamruimte toegang heeft tot de sleutelwaarde in de sleutelkluis. Gebruik de id van de Event Hubs-naamruimte uit de vorige sectie.

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

Gegevens versleutelen in Event Hubs-naamruimte met door de klant beheerde sleutel uit de sleutelkluis

U hebt de volgende stappen tot nu toe uitgevoerd:

  1. Er is een Premium-naamruimte gemaakt met een beheerde identiteit.
  2. Maak een sleutelkluis en verleent de beheerde identiteit toegang tot de sleutelkluis.

In deze stap werkt u de Event Hubs-naamruimte bij met sleutelkluisgegevens.

  1. Maak een JSON-bestand met de naam CreateEventHubClusterAndNamespace.json met de volgende inhoud:

    {
       "$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. Maak een sjabloonparameterbestand: UpdateEventHubClusterAndNamespaceParams.json.

    Notitie

    Vervang de volgende waarden:

    • <EventHubsClusterName> - Naam van uw Event Hubs-cluster.
    • <EventHubsNamespaceName> - Naam van uw Event Hubs-naamruimte
    • <Location> - Locatie van uw Event Hubs-naamruimte
    • <KeyVaultName> - Naam van uw sleutelkluis
    • <KeyName> - Naam van de sleutel in de sleutelkluis
    {
       "$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. Voer de volgende PowerShell-opdracht uit om de Resource Manager-sjabloon te implementeren. Vervang {MyRG} door de naam van de resourcegroep voordat u de opdracht uitvoert.

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

Versleutelen met door de gebruiker toegewezen identiteiten (sjabloon)

  1. Maak een door de gebruiker toegewezen identiteit.
  2. Maak een sleutelkluis en verwijs toegang tot de door de gebruiker toegewezen identiteit via toegangsbeleid.
  3. Maak een Event Hubs-naamruimte met de beheerde gebruikersidentiteit en de sleutelkluisgegevens.

Een door de gebruiker toegewezen identiteit maken

Volg de instructies in het artikel Een door de gebruiker toegewezen beheerde identiteit maken om een door de gebruiker toegewezen identiteit te maken. U kunt ook een door de gebruiker toegewezen identiteit maken met behulp van CLI, PowerShell, Azure Resource Manager-sjabloon en REST.

Notitie

U kunt maximaal 4 gebruikersidentiteiten toewijzen aan een naamruimte. Deze koppelingen worden verwijderd wanneer de naamruimte wordt verwijderd of wanneer u de identity -> type sjabloon doorgeeft aan None.

Een sleutelkluis maken en toegang verlenen tot door de gebruiker toegewezen identiteit

  1. Voer de volgende opdracht uit om een sleutelkluis te maken met opschoningsbeveiliging en voorlopig verwijderen ingeschakeld.

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

    (OF)

    Voer de volgende opdracht uit om een bestaande sleutelkluis bij te werken. Geef waarden op voor resourcegroep- en sleutelkluisnamen voordat u de opdracht uitvoert.

    ($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. Haal de service-principal-id voor de gebruikersidentiteit op met behulp van de volgende PowerShell-opdracht. In het voorbeeld ud1 moet de door de gebruiker toegewezen identiteit worden gebruikt voor versleuteling.

    $servicePrincipal=Get-AzADServicePrincipal -SearchString "ud1"    
    
  3. Verwijs de door de gebruiker toegewezen identiteit toegang tot de sleutelkluis door een toegangsbeleid toe te wijzen.

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

    Notitie

    U kunt maximaal 3 sleutels toevoegen, maar de gebruikersidentiteit die wordt gebruikt voor versleuteling moet hetzelfde zijn voor alle sleutels. Op dit moment wordt slechts één versleutelingsidentiteit ondersteund.

Een Event Hubs-naamruimte maken met informatie over gebruikersidentiteit en sleutelkluis

In deze sectie ziet u een voorbeeld van hoe u de volgende taken kunt uitvoeren met behulp van een Azure Resource Manager-sjabloon.

  • Wijs een door de gebruiker beheerde identiteit toe aan een Event Hubs-naamruimte.

                "identity": {
                    "type": "UserAssigned",
                    "userAssignedIdentities": {
                        "[parameters('identity').userAssignedIdentity]": {}
                    }
                },
    
  • Schakel versleuteling in voor de naamruimte door een sleutel op te geven uit uw sleutelkluis en de door de gebruiker beheerde identiteit voor toegang tot de sleutel.

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  1. Maak een JSON-bestand met de naam CreateEventHubsNamespaceWithUserIdentityAndEncryption.json met de volgende inhoud:

    {
       "$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. Maak een sjabloonparameterbestand: 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>"
            }
         }
       }
    }
    

    Vervang in het parameterbestand tijdelijke aanduidingen door de juiste waarden.

    Tijdelijke aanduiding waarde
    <EventHubsNamespaceName> Naam van de Event Hubs-naamruimte.
    <Location> Locatie waar u de naamruimte wilt maken.
    <KeyVaultName> Naam van de sleutelkluis.
    <KeyName> Naam van de sleutel in de sleutelkluis.
    <AZURE SUBSCRIPTION ID> Uw Azure-abonnements-id.
    <RESOURCE GROUP NAME> Resourcegroep van de door de gebruiker beheerde identiteit.
    <USER MANAGED IDENTITY NAME> Naam van de door de gebruiker beheerde identiteit.
  3. Voer de volgende PowerShell-opdracht uit om de Resource Manager-sjabloon te implementeren. Vervang {MyRG} door de naam van de resourcegroep voordat u de opdracht uitvoert.

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

Zowel door de gebruiker toegewezen als door het systeem toegewezen identiteiten gebruiken

Een naamruimte kan zowel door het systeem toegewezen als door de gebruiker toegewezen identiteiten tegelijk hebben. In dit geval is SystemAssignedde type eigenschap, UserAssigned zoals wordt weergegeven in het volgende voorbeeld.

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

In dit scenario kunt u de door het systeem toegewezen identiteit of de door de gebruiker toegewezen identiteit kiezen voor het versleutelen van de data-at-rest.

Als u in de Resource Manager-sjabloon geen kenmerk opgeeft identity , wordt de door het systeem beheerde identiteit gebruikt. Hier volgt een voorbeeldfragment.

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

Zie het volgende voorbeeld voor het gebruik van de door de gebruiker beheerde identiteit voor de versleuteling. U ziet dat het identity kenmerk is ingesteld op de door de gebruiker beheerde identiteit.

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

Infrastructuurversleuteling (of dubbele) versleuteling van gegevens inschakelen

Als u een hoger zekerheidsniveau nodig hebt dat uw gegevens veilig zijn, kunt u versleuteling op infrastructuurniveau inschakelen, ook wel dubbele versleuteling genoemd.

Wanneer infrastructuurversleuteling is ingeschakeld, worden gegevens in het Event Hubs-naamruimteaccount tweemaal versleuteld, eenmaal op serviceniveau en eenmaal op infrastructuurniveau, met behulp van twee verschillende versleutelingsalgoritmen en twee verschillende sleutels. Infrastructuurversleuteling van Event Hubs-gegevens beschermt daarom tegen een scenario waarin een van de versleutelingsalgoritmen of sleutels kan worden aangetast.

U kunt infrastructuurversleuteling inschakelen door de Azure Resource Manager-sjabloon met requireInfrastructureEncryption eigenschap bij te werken in de bovenstaande CreateEventHubClusterAndNamespace.json , zoals hieronder wordt weergegeven.

"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')]"
         }
      ]
   }
}

Versleutelingssleutels draaien, intrekken en cachen

Uw versleutelingssleutels draaien

U kunt uw sleutel in de sleutelkluis roteren met behulp van het rotatiemechanisme van Azure Key Vaults. Activerings- en vervaldatums kunnen ook worden ingesteld om sleutelrotatie te automatiseren. De Event Hubs-service detecteert nieuwe sleutelversies en gebruikt deze automatisch.

Toegang tot sleutels intrekken

Als u de toegang tot de versleutelingssleutels inroept, worden de gegevens niet verwijderd uit Event Hubs. De gegevens kunnen echter niet worden geopend vanuit de Event Hubs-naamruimte. U kunt de versleutelingssleutel intrekken via toegangsbeleid of door de sleutel te verwijderen. Meer informatie over toegangsbeleid en het beveiligen van uw sleutelkluis vanuit Beveiligde toegang tot een sleutelkluis.

Zodra de versleutelingssleutel is ingetrokken, is de Event Hubs-service op de versleutelde naamruimte onbruikbaar. Als de toegang tot de sleutel is ingeschakeld of de verwijdersleutel wordt hersteld, kiest de Event Hubs-service de sleutel zodat u toegang hebt tot de gegevens uit de versleutelde Event Hubs-naamruimte.

Cache van sleutels

De Event Hubs-instantie (Event Hub) peilt elke 5 minuten de vermelde versleutelingssleutels. De cache slaat deze op en gebruikt deze tot de volgende poll, die na 5 minuten valt. Zolang er ten minste één sleutel beschikbaar is, is de Event Hub toegankelijk. Als alle vermelde sleutels niet toegankelijk zijn wanneer er polls worden uitgevoerd, zijn alle Event Hubs niet meer beschikbaar.

Hier vindt u meer informatie:

  • Elke 5 minuten peilt de Event Hubs-service alle door de klant beheerde sleutels die worden vermeld in de record van de naamruimte:
    • Als een sleutel is geroteerd, wordt de record bijgewerkt met de nieuwe sleutel.
    • Als een sleutel is ingetrokken, wordt de sleutel uit de record verwijderd.
    • Als alle sleutels zijn ingetrokken, wordt de versleutelingsstatus van de naamruimte ingesteld op Ingetrokken. De gegevens kunnen niet worden geopend vanuit de Event Hubs-naamruimte.'

Overwegingen bij het gebruik van geo-noodherstel

Belangrijk

Als u Geo-DR wilt inschakelen voor een naamruimte die gebruikmaakt van de BYOK-versleuteling, moet voor de secundaire naamruimte voor koppelen een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit zijn ingeschakeld.

Herstel na noodgevallen - versleuteling met door het systeem toegewezen identiteiten

Om versleuteling van door Microsoft beheerde sleutel met een door de klant beheerde sleutel in te schakelen, wordt een toegangsbeleid ingesteld voor een door het systeem toegewezen beheerde identiteit in de opgegeven Azure KeyVault. Dit zorgt voor gecontroleerde toegang tot Azure KeyVault vanuit de Azure Event Hubs-naamruimte.

Als gevolg hiervan:

  • Als geo-herstel na noodgevallen al is ingeschakeld voor de Event Hubs-naamruimte en u de door de klant beheerde sleutel wilt inschakelen,
    • De koppeling verbreken.
    • Stel het toegangsbeleid in voor de door het systeem toegewezen beheerde identiteit voor zowel de primaire als de secundaire naamruimten voor de sleutelkluis.
    • Versleuteling instellen voor de primaire naamruimte.
    • Koppel de primaire en secundaire naamruimten opnieuw.
  • Als u Geo-DR wilt inschakelen in een Event Hubs-naamruimte waarin de door de klant beheerde sleutel al is ingesteld, voert u de volgende stappen uit:
    • Stel het toegangsbeleid in voor de beheerde identiteit voor de secundaire naamruimte naar de sleutelkluis.
    • Koppel de primaire en secundaire naamruimten.

Herstel na noodgevallen - versleuteling met door de gebruiker toegewezen identiteiten

Hier volgen enkele aanbevelingen:

  1. Maak een beheerde identiteit en wijs Key Vault-machtigingen toe aan uw beheerde identiteit.
  2. Voeg de identiteit toe als een door de gebruiker toegewezen identiteit en schakel versleuteling in met de identiteit in beide naamruimten.
  3. Naamruimten aan elkaar koppelen

Voorwaarden voor het inschakelen van Geo-DR en versleuteling met door de gebruiker toegewezen identiteiten:

  1. Secundaire naamruimte moet versleuteling al hebben ingeschakeld met een door de gebruiker toegewezen identiteit als deze moet worden gekoppeld aan een primaire naamruimte waarvoor Versleuteling is ingeschakeld.
  2. Het is niet mogelijk om versleuteling in te schakelen op een al gekoppelde primaire, zelfs als de secundaire een door de gebruiker toegewezen identiteit heeft die is gekoppeld aan de naamruimte.

Diagnostische logboeken instellen

Als u diagnostische logboeken instelt voor BYOK-naamruimten, krijgt u de vereiste informatie over de bewerkingen. Deze logboeken kunnen worden ingeschakeld en later naar een Event Hub worden gestreamd of geanalyseerd via Log Analytics of naar de opslag worden gestreamd om aangepaste analyses uit te voeren. Zie Overzicht van diagnostische logboeken van Azure voor meer informatie over diagnostische logboeken. Zie Gegevensreferentie bewaken voor het schema.

Volgende stappen

Zie de volgende artikelen: