Konfigurera kundhanterade nycklar för kryptering Azure Service Bus vilande data

Azure Service Bus Premium tillhandahåller kryptering av vilande data med Azure Storage Service Encryption (Azure SSE). Service Bus Premium använder Azure Storage för att lagra data. Alla data som lagras med Azure Storage krypteras med hjälp av Microsoft-hanterade nycklar. Om du använder din egen nyckel (kallas även BYOK (Bring Your Own Key) eller kundhanterad nyckel krypteras data fortfarande med hjälp av den Microsoft-hanterade nyckeln, men dessutom krypteras den Microsoft-hanterade nyckeln med hjälp av den kundhanterade nyckeln. Med den här funktionen kan du skapa, rotera, inaktivera och återkalla åtkomst till kundhanterade nycklar som används för kryptering av Microsoft-hanterade nycklar. Aktivering av BYOK-funktionen är en engångskonfigurationsprocess för ditt namnområde.

Det finns vissa varningar till den kundhanterade nyckeln för kryptering på tjänstsidan.

  • Den här funktionen stöds av Azure Service Bus Premium nivån. Det går inte att aktivera för standardnivå Service Bus namnområden.
  • Krypteringen kan bara aktiveras för nya eller tomma namnområden. Om namnområdet innehåller köer eller ämnen misslyckas krypteringsåtgärden.

Du kan använda Azure Key Vault för att hantera dina nycklar och granska din nyckelanvändning. Du kan antingen skapa egna nycklar och lagra dem i ett nyckelvalv, eller så kan du använda API:erna för Azure Key Vault för att generera nycklar. Mer information om Azure Key Vault finns i Vad är Azure Key Vault?

Aktivera kundhanterade nycklar (Azure Portal)

Följ dessa steg om du vill aktivera kundhanterade nycklar i Azure Portal:

  1. Gå till ditt Service Bus Premium namnområde.

  2. På sidan Inställningar i namnområdet Service Bus väljer du Kryptering.

  3. Välj den kundhanterade nyckelkryptering i vila som du ser i följande bild.

    Enable customer managed key

Konfigurera ett nyckelvalv med nycklar

När du har aktiverat kundhanterade nycklar måste du associera den kundhanterade nyckeln med ditt Azure Service Bus namnområde. Service Bus stöder endast Azure Key Vault. Om du aktiverar alternativet Kryptering med kundhanterad nyckel i föregående avsnitt måste nyckeln importeras till Azure Key Vault. Dessutom måste nycklarna ha mjuk borttagning och Rensa inte konfigurerat för nyckeln. De här inställningarna kan konfigureras med PowerShell eller CLI.

  1. Om du vill skapa ett nytt nyckelvalv följer du snabbstarten för Azure Key Vault. Mer information om hur du importerar befintliga nycklar finns i Om nycklar, hemligheter och certifikat.

    Viktigt

    Användning av kundhanterade nycklar med Azure Service Bus kräver att nyckelvalvet har två nödvändiga egenskaper konfigurerade. De är: Mjuk borttagning och Rensa inte. Egenskapen Mjuk borttagning är aktiverad som standard när du skapar ett nytt nyckelvalv i Azure Portal medan rensningsskyddet är valfritt, så se till att välja det när du skapar Key Vault. Om du behöver aktivera dessa egenskaper i ett befintligt nyckelvalv måste du använda antingen PowerShell eller Azure CLI.

  2. Om du vill aktivera både mjuk borttagning och rensningsskydd när du skapar ett valv använder du kommandot az keyvault create .

    az keyvault create --name contoso-SB-BYOK-keyvault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true
    
  3. Om du vill lägga till rensningsskydd i ett befintligt valv (som redan har mjuk borttagning aktiverat) använder du kommandot az keyvault update .

    az keyvault update --name contoso-SB-BYOK-keyvault --resource-group ContosoRG --enable-purge-protection true
    
  4. Skapa nycklar genom att följa dessa steg:

    1. Om du vill skapa en ny nyckel väljer du Generera/importera på menyn Nycklar under Inställningar.

      Select Generate/Import button

    2. Ange Alternativ till Generera och ge nyckeln ett namn.

      Create a key

    3. Nu kan du välja den här nyckeln för att associera med Service Bus namnrymd för kryptering från listrutan.

      Select key from key vault

      Anteckning

      För redundans kan du lägga till upp till 3 nycklar. Om en av nycklarna har upphört att gälla eller inte är tillgänglig används de andra nycklarna för kryptering.

    4. Fyll i informationen för nyckeln och klicka på Välj. Detta aktiverar kryptering av den Microsoft-hanterade nyckeln med din nyckel (kundhanterad nyckel).

    Viktigt

    Om du vill använda kundhanterad nyckel tillsammans med geo-haveriberedskap kan du läsa det här avsnittet.

    Om du vill aktivera kryptering av Microsoft-hanterad nyckel med en kundhanterad nyckel konfigureras en åtkomstprincip för den Service Bus hanterade identiteten på det angivna Azure KeyVault. Detta säkerställer kontrollerad åtkomst till Azure KeyVault från Azure Service Bus-namnområdet.

    På grund av detta:

    • Om geo-haveriberedskap redan har aktiverats för Service Bus namnrymd och du vill aktivera kundhanterad nyckel, så

      • Bryt parkopplingen
      • Konfigurera åtkomstprincipen för den hanterade identiteten för både de primära och sekundära namnrymderna till nyckelvalvet.
      • Konfigurera kryptering för det primära namnområdet.
      • Koppla om de primära och sekundära namnrymderna.
    • Om du vill aktivera Geo-DR på en Service Bus namnrymd där kundhanterad nyckel redan har konfigurerats, så -

      • Konfigurera åtkomstprincipen för den hanterade identiteten för det sekundära namnområdet till nyckelvalvet.
      • Koppla ihop de primära och sekundära namnrymderna.

Hanterade identiteter

Det finns två typer av hanterade identiteter som du kan tilldela till ett Service Bus namnområde.

  • Systemtilldelad: Du kan aktivera en hanterad identitet direkt på ett Service Bus namnområde. När du aktiverar en systemtilldelad hanterad identitet skapas en identitet i Azure AD som är kopplad till livscykeln för den Service Bus namnrymden. Så när namnområdet tas bort tar Azure automatiskt bort identiteten åt dig. Det är avsiktligt att endast den Azure-resursen (namnrymden) kan använda den här identiteten för att begära token från Azure AD.

  • Användartilldelad: Du kan också skapa en hanterad identitet som en fristående Azure-resurs, som kallas användartilldelad identitet. Du kan skapa en användartilldelad hanterad identitet och tilldela den till en eller flera Service Bus namnområden. När det gäller användartilldelade hanterade identiteter hanteras identiteten separat från de resurser som använder den. De är inte knutna till namnområdets livscykel. Du kan uttryckligen ta bort en användartilldelad identitet när du inte längre behöver den.

    Mer information finns i Vad är hanterade identiteter för Azure-resurser?

Kryptera med systemtilldelade identiteter (mall)

Det här avsnittet visar hur du utför följande uppgifter:

  1. Skapa ett premiumnamnområde Service Bus med en hanterad tjänstidentitet.
  2. Skapa ett nyckelvalv och ge tjänstidentiteten åtkomst till nyckelvalvet.
  3. Uppdatera namnområdet Service Bus med nyckelvalvets information (nyckel/värde).

Skapa ett premiumnamnområde Service Bus med hanterad tjänstidentitet

Det här avsnittet visar hur du skapar ett Azure Service Bus namnområde med hanterad tjänstidentitet med hjälp av en Azure Resource Manager-mall och PowerShell.

  1. Skapa en Azure Resource Manager-mall för att skapa ett namnområde på Service Bus Premium-nivå med en hanterad tjänstidentitet. Ge filen namnet: CreateServiceBusPremiumNamespace.json:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          }
       },
       "resources":[
          {
             "type":"Microsoft.ServiceBus/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Premium",
                "tier":"Premium",
                "capacity":1
             },
             "properties":{
    
             }
          }
       ],
       "outputs":{
          "ServiceBusNamespaceId":{
             "type":"string",
             "value":"[resourceId('Microsoft.ServiceBus/namespaces',parameters('namespaceName'))]"
          }
       }
    }
    
  2. Skapa en mallparameterfil med namnet: CreateServiceBusPremiumNamespaceParams.json.

    Anteckning

    Ersätt följande värden:

    • <ServiceBusNamespaceName>– Namnet på ditt Service Bus namnområde
    • <Location>– Plats för Service Bus namnrymd
    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "namespaceName":{
             "value":"<ServiceBusNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          }
       }
    }
    
  3. Kör följande PowerShell-kommando för att distribuera mallen för att skapa ett premium-Service Bus namnområde. Hämta sedan ID:t för Service Bus-namnområdet för att använda det senare. Ersätt {MyRG} med namnet på resursgruppen innan du kör kommandot .

    $outputs = New-AzResourceGroupDeployment -Name CreateServiceBusPremiumNamespace -ResourceGroupName {MyRG} -TemplateFile ./CreateServiceBusPremiumNamespace.json -TemplateParameterFile ./CreateServiceBusPremiumNamespaceParams.json
    
    $ServiceBusNamespaceId = $outputs.Outputs["serviceBusNamespaceId"].value
    

Ge Service Bus namnområdesidentitet åtkomst till nyckelvalvet

  1. Kör följande kommando för att skapa ett nyckelvalv med rensningsskydd och mjuk borttagning aktiverat.

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

    (OR)

    Kör följande kommando för att uppdatera ett befintligt nyckelvalv. Ange värden för resursgrupps- och nyckelvalvsnamn innan du kör kommandot .

    ($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. Ange åtkomstprincipen för nyckelvalvet så att den hanterade identiteten för Service Bus-namnområdet kan komma åt nyckelvärdet i nyckelvalvet. Använd ID:t för Service Bus-namnområdet från föregående avsnitt.

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

Kryptera data i Service Bus namnrymd med kundhanterad nyckel från nyckelvalvet

Du har gjort följande hittills:

  1. Skapade ett premiumnamnområde med en hanterad identitet.
  2. Skapa ett nyckelvalv och bevilja den hanterade identiteten åtkomst till nyckelvalvet.

I det här steget uppdaterar du Service Bus namnrymd med information om nyckelvalvet.

  1. Skapa en JSON-fil med namnet UpdateServiceBusNamespaceWithEncryption.json med följande innehåll:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "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.ServiceBus/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Premium",
                "tier":"Premium",
                "capacity":1
             },
             "properties":{
                "encryption":{
                   "keySource":"Microsoft.KeyVault",
                   "keyVaultProperties":[
                      {
                         "keyName":"[parameters('keyName')]",
                         "keyVaultUri":"[parameters('keyVaultUri')]"
                      }
                   ]
                }
             }
          }
       ]
    }
    
  2. Skapa en mallparameterfil: UpdateServiceBusNamespaceWithEncryptionParams.json.

    Anteckning

    Ersätt följande värden:

    • <ServiceBusNamespaceName>– Namnet på ditt Service Bus namnområde
    • <Location>– Plats för Service Bus namnrymd
    • <KeyVaultName> – Namnet på ditt nyckelvalv
    • <KeyName> – Namnet på nyckeln i nyckelvalvet
    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "namespaceName":{
             "value":"<ServiceBusNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          },
          "keyName":{
             "value":"<KeyName>"
          },
          "keyVaultUri":{
             "value":"https://<KeyVaultName>.vault.azure.net"
          }
       }
    }
    
  3. Kör följande PowerShell-kommando för att distribuera Resource Manager-mallen. Ersätt {MyRG} med namnet på resursgruppen innan du kör kommandot .

    New-AzResourceGroupDeployment -Name UpdateServiceBusNamespaceWithEncryption -ResourceGroupName {MyRG} -TemplateFile ./UpdateServiceBusNamespaceWithEncryption.json -TemplateParameterFile ./UpdateServiceBusNamespaceWithEncryptionParams.json
    

Kryptera med användartilldelade identiteter (mall)

  1. Skapa en användartilldelad identitet.
  2. Skapa ett nyckelvalv och bevilja åtkomst till den användartilldelade identiteten via åtkomstprinciper.
  3. Skapa ett premium-Service Bus namnområde med den hanterade användaridentiteten och nyckelvalvets information.

Skapa en användartilldelad identitet

Följ anvisningarna i artikeln Skapa en användartilldelad hanterad identitet för att skapa en användartilldelad identitet. Du kan också skapa en användartilldelad identitet med hjälp av CLI, PowerShell, Azure Resource Manager mall och REST.

Anteckning

Du kan tilldela upp till 4 användaridentiteter till ett namnområde. Dessa associationer tas bort när namnområdet tas bort eller när du skickar identity -> type i mallen till None.

Skapa ett nyckelvalv och bevilja åtkomst till användartilldelad identitet

  1. Kör följande kommando för att skapa ett nyckelvalv med rensningsskydd och mjuk borttagning aktiverat.

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

    (OR)

    Kör följande kommando för att uppdatera ett befintligt nyckelvalv. Ange värden för resursgrupps- och nyckelvalvsnamn innan du kör kommandot .

    ($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. Hämta tjänstens huvudnamns-ID för användaridentiteten med hjälp av följande PowerShell-kommando. I exemplet ud1 är den användartilldelade identitet som ska användas för kryptering.

    $servicePrincipal=Get-AzADServicePrincipal -SearchString "ud1"    
    
  3. Ge den användartilldelade identiteten åtkomst till nyckelvalvet genom att tilldela en åtkomstprincip.

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

    Anteckning

    Du kan lägga till upp till tre nycklar, men användaridentiteten som används för kryptering bör vara densamma för alla nycklar. För närvarande stöds endast en enda krypteringsidentitet.

Skapa ett Premium Service Bus-namnområde med information om användaridentitet och nyckelvalv

Det här avsnittet innehåller ett exempel som visar hur du utför följande uppgifter med hjälp av en Azure Resource Manager-mall.

  • Tilldela en användarhanterad identitet till ett Service Bus namnområde.

                "identity": {
                    "type": "UserAssigned",
                    "userAssignedIdentities": {
                        "[parameters('identity').userAssignedIdentity]": {}
                    }
                },
    
  • Aktivera kryptering i namnområdet genom att ange en nyckel från ditt nyckelvalv och den användarhanterade identiteten för att få åtkomst till nyckeln.

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  1. Skapa en JSON-fil med namnet CreateServiceBusNamespaceWithUserIdentityAndEncryption.json med följande innehåll:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "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.ServiceBus/namespaces",
             "apiVersion":"2021-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Premium",
                "tier":"Premium",
                "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. Skapa en mallparameterfil: CreateServiceBusNamespaceWithUserIdentityAndEncryptionParams.json.

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "namespaceName":{
             "value":"<ServiceBusNamespaceName>"
          },
          "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>"
            }
         }
       }
    }
    

    I parameterfilen ersätter du platshållarna med lämpliga värden.

    Platshållare värde
    <ServiceBusNamespaceName> Namnet på Service Bus namnområdet.
    <Location> Plats där du vill att namnområdet ska skapas.
    <KeyVaultName> Namnet på nyckelvalvet.
    <KeyName> Namnet på nyckeln i nyckelvalvet.
    <AZURE SUBSCRIPTION ID> ditt prenumerations-ID för Azure
    <RESOURCE GROUP NAME> Resursgrupp för den användarhanterade identiteten.
    <USER MANAGED IDENTITY NAME> Namnet på den användarhanterade identiteten.
  3. Kör följande PowerShell-kommando för att distribuera Resource Manager-mallen. Ersätt {MyRG} med namnet på resursgruppen innan du kör kommandot .

    New-AzResourceGroupDeployment -Name CreateServiceBusNamespaceWithEncryption -ResourceGroupName {MyRG} -TemplateFile ./ CreateServiceBusNamespaceWithUserIdentityAndEncryption.json -TemplateParameterFile ./ CreateServiceBusNamespaceWithUserIdentityAndEncryptionParams.json        
    

Använda både användartilldelade och systemtilldelade identiteter

Ett namnområde kan ha både systemtilldelade och användartilldelade identiteter samtidigt. I det här fallet type är SystemAssignedegenskapen , UserAssigned som du ser i följande exempel.

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

I det här scenariot kan du välja antingen den systemtilldelade identiteten eller den användartilldelade identiteten för kryptering av vilande data.

Om du inte anger något identity attribut i mallen Resource Manager används den systemhanterade identiteten. Här är ett exempelfragment.

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

Se följande exempel för att använda den användarhanterade identiteten för krypteringen. identity Observera att attributet är inställt på den användarhanterade identiteten.

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

Aktivera infrastrukturkryptering (dubbel) av data

Om du behöver en högre säkerhetsnivå för att dina data ska vara säkra kan du aktivera kryptering på infrastrukturnivå, vilket även kallas dubbelkryptering.

När infrastrukturkryptering är aktiverat krypteras data i Azure Service Bus två gånger, en gång på tjänstnivå och en gång på infrastrukturnivå, med hjälp av två olika krypteringsalgoritmer och två olika nycklar. Därför skyddar infrastrukturkryptering av Azure Service Bus data mot ett scenario där en av krypteringsalgoritmerna eller nycklarna kan komprometteras.

Du kan aktivera infrastrukturkryptering genom att uppdatera Azure Resource Manager-mallen med requireInfrastructureEncryption egenskapen i ovanstående UpdateServiceBusNamespaceWithEncryption.json enligt nedan.

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

Rotera, återkalla och cachelagrade nycklar

Rotera dina krypteringsnycklar

Du kan rotera nyckeln i nyckelvalvet med hjälp av rotationsmekanismen för Azure Key Vaults. Aktiverings- och förfallodatum kan också anges för att automatisera nyckelrotation. Tjänsten Service Bus identifierar nya nyckelversioner och börjar använda dem automatiskt.

Återkalla åtkomst till nycklar

Om du återkallar åtkomsten till krypteringsnycklarna rensas inte data från Service Bus. Data kan dock inte nås från Service Bus namnrymd. Du kan återkalla krypteringsnyckeln via åtkomstprincipen eller genom att ta bort nyckeln. Läs mer om åtkomstprinciper och hur du skyddar ditt nyckelvalv från Säker åtkomst till ett nyckelvalv.

När krypteringsnyckeln har återkallats kommer Service Bus-tjänsten i det krypterade namnområdet att bli obrukbar. Om åtkomsten till nyckeln är aktiverad eller om den borttagna nyckeln återställs väljer Service Bus-tjänsten nyckeln så att du kan komma åt data från den krypterade Service Bus namnområdet.

Cachelagring av nycklar

Den Service Bus instansen avsöker sina listade krypteringsnycklar var 5:e minut. Den cachelagrar och använder dem till nästa avsökning, som är efter 5 minuter. Så länge minst en nyckel är tillgänglig är köer och ämnen tillgängliga. Om alla nycklar i listan inte är tillgängliga när den avsöker blir alla köer och ämnen otillgängliga.

Här finns mer information:

  • Var femte minut avsöker Service Bus-tjänsten alla kundhanterade nycklar som anges i namnområdets post:
    • Om en nyckel har roterats uppdateras posten med den nya nyckeln.
    • Om en nyckel har återkallats tas nyckeln bort från posten.
    • Om alla nycklar har återkallats är namnområdets krypteringsstatus inställd på Återkallad. Data kan inte nås från Service Bus namnrymd.

Att tänka på när du använder geo-haveriberedskap

Geo-haveriberedskap – kryptering med systemtilldelade identiteter

För att aktivera kryptering av Microsoft-hanterad nyckel med en kundhanterad nyckel konfigureras en åtkomstprincip för en systemtilldelad hanterad identitet på det angivna Azure KeyVault. Detta säkerställer kontrollerad åtkomst till Azure KeyVault från Azure Service Bus-namnområdet.

På grund av detta:

  • Om geo-haveriberedskap redan har aktiverats för Service Bus namnrymd och du vill aktivera kundhanterad nyckel, så
    • Bryt parkopplingen.
    • Konfigurera åtkomstprincipen för den systemtilldelade hanterade identiteten för både de primära och sekundära namnrymderna till nyckelvalvet.
    • Konfigurera kryptering för det primära namnområdet.
    • Koppla om de primära och sekundära namnrymderna.
  • Om du vill aktivera Geo-DR på ett Service Bus namnområde där kundhanterad nyckel redan har konfigurerats följer du dessa steg:
    • Konfigurera åtkomstprincipen för den hanterade identiteten för det sekundära namnområdet till nyckelvalvet.
    • Koppla ihop de primära och sekundära namnrymderna.

Geo-haveriberedskap – kryptering med användartilldelade identiteter

Här är några rekommendationer:

  1. Skapa hanterad identitet och tilldela Key Vault behörigheter till din hanterade identitet.
  2. Lägg till identiteten som en användartilldelad identitet och aktivera kryptering med identiteten på båda namnrymderna.
  3. Koppla ihop namnområden

Villkor för att aktivera geo-DR och kryptering med User-Assigned identiteter:

  1. Det sekundära namnområdet måste redan ha Kryptering aktiverat med en User-Assigned identitet om den ska paras ihop med ett primärt namnområde som har kryptering aktiverat.
  2. Det går inte att aktivera kryptering på en redan parkopplad primär, även om den sekundära har en User-Assigned identitet som är associerad med namnområdet.

Nästa steg

Se följande artiklar: