Konfigurace klíčů spravovaných zákazníkem pro šifrování neaktivních uložených dat služby Azure Service Bus

Azure Service Bus Premium poskytuje šifrování neaktivních uložených dat pomocí služby Azure Storage Service Encryption (Azure SSE). Service Bus Premium k ukládání dat používá Službu Azure Storage. Všechna data uložená ve službě Azure Storage se šifrují pomocí klíčů spravovaných Microsoftem. Pokud používáte vlastní klíč (označovaný také jako Přineste si vlastní klíč (BYOK) nebo klíč spravovaný zákazníkem, data se stále šifrují pomocí klíče spravovaného Microsoftem, ale kromě toho se klíč spravovaný Microsoftem zašifruje pomocí klíče spravovaného zákazníkem. Tato funkce umožňuje vytvářet, otáčet, zakazovat a odvolávat přístup ke klíčům spravovaným zákazníkem, které se používají k šifrování klíčů spravovaných Microsoftem. Povolení funkce BYOK je jednorázový proces nastavení vašeho oboru názvů.

Existuje několik upozornění na klíč spravovaný zákazníkem pro šifrování na straně služby.

  • Tuto funkci podporuje úroveň Premium služby Azure Service Bus. Pro obory názvů Service Bus úrovně Standard se nedá povolit.
  • Šifrování je možné povolit pouze pro nové nebo prázdné obory názvů. Pokud obor názvů obsahuje nějaké fronty nebo témata, operace šifrování selže.

Azure Key Vault můžete použít ke správě klíčů a auditování použití klíče. Můžete buď vytvořit vlastní klíče a uložit je do trezoru klíčů, nebo můžete použít rozhraní API služby Azure Key Vault ke generování klíčů. Další informace o službě Azure Key Vault najdete v tématu Co je Azure Key Vault?

Povolení klíčů spravovaných zákazníkem (Azure Portal)

Pokud chcete na webu Azure Portal povolit klíče spravované zákazníkem, postupujte takto:

  1. Přejděte do svého oboru názvů Service Bus Premium.

  2. Na stránce Nastavení oboru názvů služby Service Bus vyberte Šifrování.

  3. Vyberte šifrování neaktivních uložených klíčů spravovaných zákazníkem, jak je znázorněno na následujícím obrázku.

    Enable customer managed key

Nastavení trezoru klíčů s klíči

Po povolení klíčů spravovaných zákazníkem je potřeba přidružit klíč spravovaný zákazníkem k oboru názvů služby Azure Service Bus. Service Bus podporuje pouze Azure Key Vault. Pokud v předchozí části povolíte šifrování pomocí klíče spravovaného zákazníkem, musíte mít klíč naimportovaný do služby Azure Key Vault. Klíče také musí obsahovat obnovitelné odstranění a neprázdnit nakonfigurované pro klíč. Tato nastavení je možné nakonfigurovat pomocí PowerShellu nebo rozhraní příkazového řádku.

  1. Pokud chcete vytvořit nový trezor klíčů, postupujte podle rychlého startu pro Azure Key Vault. Další informace o importu existujících klíčů najdete v tématu O klíčích, tajných klíčích a certifikátech.

    Důležité

    Použití klíčů spravovaných zákazníkem se službou Azure Service Bus vyžaduje, aby trezor klíčů měl nakonfigurované dvě požadované vlastnosti. Jedná se o obnovitelné odstranění a nevyprázdnění. Vlastnost obnovitelného odstranění je ve výchozím nastavení povolená při vytváření nového trezoru klíčů na webu Azure Portal, zatímco ochrana před vymazáním je volitelná, proto ji při vytváření trezoru klíčů nezapomeňte vybrat. Pokud potřebujete tyto vlastnosti povolit v existujícím trezoru klíčů, musíte použít PowerShell nebo Azure CLI.

  2. Pokud chcete při vytváření trezoru zapnout obnovitelné odstranění i ochranu před vymazáním, použijte příkaz 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. Pokud chcete přidat ochranu před vymazáním do existujícího trezoru (který už má povolené obnovitelné odstranění), použijte příkaz az keyvault update .

    az keyvault update --name contoso-SB-BYOK-keyvault --resource-group ContosoRG --enable-purge-protection true
    
  4. Vytvořte klíče pomocí následujícího postupu:

    1. Pokud chcete vytvořit nový klíč, vyberte v nabídce Klíče v části Nastavení možnost Generovat/Importovat.

      Select Generate/Import button

    2. Nastavte možnosti pro vygenerování a pojmenujte klíč.

      Create a key

    3. Teď můžete vybrat tento klíč, který chcete přidružit k oboru názvů služby Service Bus pro šifrování z rozevíracího seznamu.

      Select key from key vault

      Poznámka:

      Pro redundanci můžete přidat až 3 klíče. V případě, že vypršela platnost jednoho z klíčů nebo není přístupná, ostatní klíče se použijí k šifrování.

    4. Vyplňte podrobnosti o klíči a klikněte na Vybrat. To umožňuje šifrování klíče spravovaného Microsoftem s vaším klíčem (klíč spravovaný zákazníkem).

    Důležité

    Pokud chcete použít klíč spravovaný zákazníkem spolu s geografickým zotavením po havárii, projděte si tuto část.

    Pokud chcete povolit šifrování klíče spravovaného Microsoftem pomocí klíče spravovaného zákazníkem, nastaví se zásada přístupu pro spravovanou identitu služby Service Bus v zadané službě Azure KeyVault. Tím se zajistí řízený přístup ke službě Azure KeyVault z oboru názvů služby Azure Service Bus.

    Z tohoto důvodu:

    • Pokud je pro obor názvů služby Service Bus už povolené geografické zotavení po havárii a chcete povolit klíč spravovaný zákazníkem, pak

      • Přerušení párování
      • Nastavte zásady přístupu pro spravovanou identitu pro primární i sekundární obory názvů do trezoru klíčů.
      • Nastavte šifrování v primárním oboru názvů.
      • Znovu spárujte primární a sekundární obory názvů.
    • Pokud chcete povolit geografickou zotavení po havárii v oboru názvů služby Service Bus, kde už je nastavený klíč spravovaný zákazníkem, pak –

      • Nastavte zásady přístupu pro spravovanou identitu sekundárního oboru názvů do trezoru klíčů.
      • Spárujte primární a sekundární obory názvů.
    • Po spárování bude sekundární obor názvů používat trezor klíčů nakonfigurovaný pro primární obor názvů. Pokud se trezor klíčů pro oba obory názvů liší před párováním geografického zotavení po havárii, musí uživatel delegovat zásady přístupu nebo roli RBAC pro spravovanou identitu sekundárního oboru názvů v trezoru klíčů přidruženém k primárnímu oboru názvů.

Spravované identity

Existují dva typy spravovaných identit, které můžete přiřadit k oboru názvů služby Service Bus.

  • Přiřazené systémem: Spravovanou identitu můžete povolit přímo v oboru názvů služby Service Bus. Když povolíte spravovanou identitu přiřazenou systémem, vytvoří se identita v Microsoft Entra, která je svázaná s životním cyklem tohoto oboru názvů služby Service Bus. Když se tedy obor názvů odstraní, Azure automaticky odstraní identitu za vás. Na základě návrhu může tuto identitu použít pouze prostředek Azure (obor názvů) k vyžádání tokenů z ID Microsoft Entra.

  • Přiřazené uživatelem: Můžete také vytvořit spravovanou identitu jako samostatný prostředek Azure, který se nazývá identita přiřazená uživatelem. Můžete vytvořit spravovanou identitu přiřazenou uživatelem a přiřadit ji k jednomu nebo více oborům názvů služby Service Bus. Pokud používáte spravované identity přiřazené uživatelem, identita se spravuje odděleně od prostředků, které ji používají. Nejsou svázané s životním cyklem oboru názvů. Identitu přiřazenou uživatelem můžete explicitně odstranit, když ji už nepotřebujete.

    Další informace najdete v tématu, které vysvětluje, co jsou spravované identity pro prostředky Azure.

Šifrování pomocí identit přiřazených systémem (šablona)

V této části se dozvíte, jak provádět následující úlohy:

  1. Vytvořte obor názvů služby Service Bus úrovně Premium s identitou spravované služby.
  2. Vytvořte trezor klíčů a udělte identitě služby přístup k trezoru klíčů.
  3. Aktualizujte obor názvů služby Service Bus informacemi o trezoru klíčů (klíč/hodnota).

Vytvoření oboru názvů služby Service Bus úrovně Premium s identitou spravované služby

V této části se dozvíte, jak vytvořit obor názvů služby Azure Service Bus s identitou spravované služby pomocí šablony Azure Resource Manageru a PowerShellu.

  1. Vytvořte šablonu Azure Resource Manageru pro vytvoření oboru názvů úrovně Premium služby Service Bus s identitou spravované služby. Pojmenujte soubor: 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. Vytvořte soubor parametrů šablony s názvem CreateServiceBusPremiumNamespaceParams.json.

    Poznámka:

    Nahraďte následující hodnoty:

    • <ServiceBusNamespaceName> – Název vašeho oboru názvů služby Service Bus
    • <Location> – Umístění vašeho oboru názvů služby Service Bus
    {
       "$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. Spuštěním následujícího příkazu PowerShellu nasaďte šablonu a vytvořte obor názvů služby Service Bus úrovně Premium. Potom načtěte ID oboru názvů služby Service Bus, abyste ho mohli použít později. Před spuštěním příkazu nahraďte {MyRG} názvem skupiny prostředků.

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

Udělení přístupu identitě oboru názvů služby Service Bus k trezoru klíčů

  1. Spuštěním následujícího příkazu vytvořte trezor klíčů s povolenou ochranou před vymazáním a obnovitelného odstranění.

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

    (NEBO)

    Spuštěním následujícího příkazu aktualizujte existující trezor klíčů. Před spuštěním příkazu zadejte hodnoty pro názvy skupin prostředků a trezoru klíčů.

    ($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. Nastavte zásady přístupu trezoru klíčů tak, aby spravovaná identita oboru názvů služby Service Bus přistupovala k hodnotě klíče v trezoru klíčů. Použijte ID oboru názvů služby Service Bus z předchozí části.

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

Šifrování dat v oboru názvů služby Service Bus pomocí klíče spravovaného zákazníkem z trezoru klíčů

Zatím jste provedli následující kroky:

  1. Vytvořili jste obor názvů Premium se spravovanou identitou.
  2. Vytvořte trezor klíčů a udělte spravované identitě přístup k trezoru klíčů.

V tomto kroku aktualizujete obor názvů služby Service Bus informacemi o trezoru klíčů.

  1. Vytvořte soubor JSON s názvem UpdateServiceBusNamespaceWithEncryption.json s následujícím obsahem:

    {
       "$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. Vytvořte soubor parametrů šablony: UpdateServiceBusNamespaceWithEncryptionParams.json.

    Poznámka:

    Nahraďte následující hodnoty:

    • <ServiceBusNamespaceName> – Název vašeho oboru názvů služby Service Bus
    • <Location> – Umístění vašeho oboru názvů služby Service Bus
    • <KeyVaultName> – Název trezoru klíčů
    • <KeyName> – Název klíče v trezoru klíčů
    {
       "$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. Spuštěním následujícího příkazu PowerShellu nasaďte šablonu Resource Manageru. Před spuštěním příkazu nahraďte {MyRG} názvem vaší skupiny prostředků.

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

Šifrování pomocí identit přiřazených uživatelem (šablona)

  1. Vytvořte identitu přiřazenou uživatelem.
  2. Vytvořte trezor klíčů a udělte přístup k identitě přiřazené uživatelem prostřednictvím zásad přístupu.
  3. Vytvořte obor názvů služby Service Bus úrovně Premium se spravovanou identitou uživatele a informacemi o trezoru klíčů.

Vytvoření identity přiřazené uživatelem

Postupujte podle pokynů v článku Vytvoření spravované identity přiřazené uživatelem a vytvořte identitu přiřazenou uživatelem. Identitu přiřazenou uživatelem můžete vytvořit také pomocí rozhraní příkazového řádku, PowerShellu, šablony Azure Resource Manageru a rozhraní REST.

Poznámka:

K oboru názvů můžete přiřadit až 4 identity uživatelů. Tato přidružení jsou odstraněna při odstranění oboru názvů nebo při předání identity -> type šablony do None.

Vytvoření trezoru klíčů a udělení přístupu k identitě přiřazené uživatelem

  1. Spuštěním následujícího příkazu vytvořte trezor klíčů s povolenou ochranou před vymazáním a obnovitelného odstranění.

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

    (NEBO)

    Spuštěním následujícího příkazu aktualizujte existující trezor klíčů. Před spuštěním příkazu zadejte hodnoty pro názvy skupin prostředků a trezoru klíčů.

    ($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. Pomocí následujícího příkazu PowerShellu získejte ID instančního objektu pro identitu uživatele. V tomto příkladu je identita přiřazená uživatelem, ud1 která se má použít k šifrování.

    $servicePrincipal=Get-AzADServicePrincipal -SearchString "ud1"    
    
  3. Přiřaďte identitě přiřazené uživatelem přístup k trezoru klíčů přiřazením zásad přístupu.

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

    Poznámka:

    Můžete přidat až 3 klíče, ale identita uživatele používaná pro šifrování by měla být stejná pro všechny klíče. V současné době se podporuje pouze jedna identita šifrování.

Vytvoření oboru názvů služby Service Bus úrovně Premium s identitou uživatele a informacemi o trezoru klíčů

Tato část obsahuje příklad, který ukazuje, jak provádět následující úlohy pomocí šablony Azure Resource Manageru.

  • Přiřaďte identitu spravovanou uživatelem k oboru názvů služby Service Bus.

                "identity": {
                    "type": "UserAssigned",
                    "userAssignedIdentities": {
                        "[parameters('identity').userAssignedIdentity]": {}
                    }
                },
    
  • Povolte šifrování oboru názvů zadáním klíče z trezoru klíčů a identity spravované uživatelem pro přístup k klíči.

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  1. Vytvořte soubor JSON s názvem CreateServiceBusNamespaceWithUserIdentityAndEncryption.json s následujícím obsahem:

    {
       "$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. Vytvořte soubor parametrů šablony: 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>"
            }
         }
       }
    }
    

    V souboru parametrů nahraďte zástupné symboly příslušnými hodnotami.

    Zástupný symbol hodnota
    <ServiceBusNamespaceName> Název oboru názvů služby Service Bus
    <Location> Umístění, kam chcete obor názvů vytvořit.
    <KeyVaultName> Název trezoru klíčů
    <KeyName> Název klíče v trezoru klíčů
    <AZURE SUBSCRIPTION ID> ID vašeho předplatného Azure
    <RESOURCE GROUP NAME> Skupina prostředků identity spravované uživatelem
    <USER MANAGED IDENTITY NAME> Název identity spravované uživatelem
  3. Spuštěním následujícího příkazu PowerShellu nasaďte šablonu Resource Manageru. Před spuštěním příkazu nahraďte {MyRG} názvem vaší skupiny prostředků.

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

Použití identit přiřazených uživatelem i systémem

Obor názvů může mít současně přiřazené systémové i uživatelem přiřazené identity. V tomto případě type by vlastnost byla SystemAssigned, UserAssigned jak je znázorněno v následujícím příkladu.

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

V tomto scénáři můžete zvolit identitu přiřazenou systémem nebo identitu přiřazenou uživatelem pro šifrování neaktivních uložených dat.

Pokud v šabloně Resource Manageru nezadáte identity atribut, použije se identita spravovaná systémem. Tady je příklad fragmentu kódu.

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

V následujícím příkladu použijte identitu spravovanou uživatelem pro šifrování. Všimněte si, že identity atribut je nastavený na identitu spravovanou uživatelem.

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

Povolení dvojitého šifrování dat infrastruktury

Pokud potřebujete vyšší úroveň záruky, že jsou vaše data zabezpečená, můžete povolit šifrování na úrovni infrastruktury, které se označuje také jako dvojité šifrování.

Pokud je šifrování infrastruktury povolené, data ve službě Azure Service Bus se šifrují dvakrát, jednou na úrovni služby a jednou na úrovni infrastruktury pomocí dvou různých šifrovacích algoritmů a dvou různých klíčů. Šifrování infrastruktury dat služby Azure Service Bus proto chrání před scénářem, kdy může být ohrožen jeden z šifrovacích algoritmů nebo klíčů.

Šifrování infrastruktury můžete povolit aktualizací šablony Azure Resource Manageru s requireInfrastructureEncryption vlastností ve výše uvedeném souboru UpdateServiceBusNamespaceWithEncryption.json , jak je znázorněno níže.

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

Obměna, odvolávání a ukládání klíčů do mezipaměti

Obměna šifrovacích klíčů

Klíč v trezoru klíčů můžete otočit pomocí mechanismu obměny služby Azure Key Vault. Data aktivace a vypršení platnosti je také možné nastavit tak, aby se automatizovala obměně klíčů. Služba Service Bus rozpozná nové verze klíčů a začne je automaticky používat.

Odvolání přístupu ke klíčům

Odvolání přístupu k šifrovacím klíčům nevyprázdní data ze služby Service Bus. K datům ale není možné získat přístup z oboru názvů služby Service Bus. Šifrovací klíč můžete odvolat prostřednictvím zásad přístupu nebo odstraněním klíče. Přečtěte si další informace o zásadách přístupu a zabezpečení trezoru klíčů ze zabezpečeného přístupu k trezoru klíčů.

Po odvolání šifrovacího klíče bude služba Service Bus v šifrovaného oboru názvů nefunkční. Pokud je přístup k klíči povolený nebo odstraněný klíč se obnoví, služba Service Bus klíč vybere, abyste měli přístup k datům z šifrovaného oboru názvů služby Service Bus.

Ukládání do mezipaměti klíčů

Instance služby Service Bus každých 5 minut dotazuje své uvedené šifrovací klíče. Ukládá je do mezipaměti a používá je až do dalšího hlasování, což je po 5 minutách. Pokud je k dispozici alespoň jeden klíč, fronty a témata jsou přístupné. Pokud jsou všechny uvedené klíče při dotazování nedostupné, všechny fronty a témata nebudou k dispozici.

Tady jsou další podrobnosti:

  • Každých 5 minut služba Service Bus dotazuje všechny klíče spravované zákazníkem uvedené v záznamu oboru názvů:
    • Pokud byl klíč otočený, záznam se aktualizuje novým klíčem.
    • Pokud byl klíč odvolán, klíč se ze záznamu odebere.
    • Pokud byly odvolány všechny klíče, stav šifrování oboru názvů je nastaven na Odvolaný. K datům není možné přistupovat z oboru názvů služby Service Bus.

Důležité informace o použití geografického zotavení po havárii

Geografické zotavení po havárii – šifrování pomocí identit přiřazených systémem

Pokud chcete povolit šifrování klíče spravovaného Microsoftem pomocí klíče spravovaného zákazníkem, nastaví se zásada přístupu pro spravovanou identitu přiřazenou systémem v zadané službě Azure KeyVault. Tento krok zajišťuje řízený přístup ke službě Azure KeyVault z oboru názvů služby Azure Service Bus. Proto musíte postupovat takto:

  • Pokud je pro obor názvů služby Service Bus už povolené geografické zotavení po havárii a chcete povolit klíč spravovaný zákazníkem, pak
    • Přerušte párování.
    • Nastavte zásady přístupu pro spravovanou identitu přiřazenou systémem pro primární i sekundární obory názvů pro trezor klíčů.
    • Nastavte šifrování v primárním oboru názvů.
    • Znovu spárujte primární a sekundární obory názvů.
  • Pokud chcete povolit geografické zotavení po havárii v oboru názvů služby Service Bus, ve kterém je klíč spravovaný zákazníkem už nastavený, postupujte takto:
    • Nastavte zásady přístupu pro spravovanou identitu sekundárního oboru názvů do trezoru klíčů.
    • Spárujte primární a sekundární obory názvů.

Geografické zotavení po havárii – šifrování s identitami přiřazenými uživatelem

Zde je několik doporučení:

  1. Vytvořte spravovanou identitu a přiřaďte ke spravované identitě oprávnění služby Key Vault.
  2. Přidejte identitu jako identitu přiřazenou uživatelem a povolte šifrování s identitou v obou oborech názvů.
  3. Spárování oborů názvů

Podmínky povolení geografického zotavení po havárii a šifrování s identitami přiřazenými uživatelem:

  1. Sekundární obor názvů už musí mít povolené šifrování s identitou přiřazenou uživatelem, pokud se má spárovat s primárním oborem názvů s povoleným šifrováním.
  2. U již spárovaného primárního serveru není možné povolit šifrování, a to ani v případě, že sekundární má přiřazenou identitu přiřazenou uživatelem přidruženou k oboru názvů.

Odstranění potíží

Příznaky

Zobrazí se chyba oznamující, že obor názvů služby Service Bus je zakázaný, protože šifrovací klíč už není platný.

Příčina

Je možné, že používáte resource_id nebo version, které odkazuje na konkrétní verzi klíče, jehož platnost vypršela. Pokud je k dispozici konkrétní verze, Service Bus použije tuto verzi klíče, i když se klíč otočí.

Rozlišení

resource__versionless_id Použijte nebo místo použití resource_id nebo versionless_idversion.

Další kroky

Podívejte se na následující články: