Bekleyen Azure Event Hubs verilerini şifrelemek için müşteri tarafından yönetilen anahtarları yapılandırma

Azure Event Hubs, Azure Depolama Hizmet Şifrelemesi (Azure SSE) ile bekleyen verilerin şifrelenmesini sağlar. Event Hubs hizmeti verileri depolamak için Azure Depolama kullanır. Azure Depolama ile depolanan tüm veriler Microsoft tarafından yönetilen anahtarlar kullanılarak şifrelenir. Kendi anahtarınızı (Kendi Anahtarını Getir (BYOK) veya müşteri tarafından yönetilen anahtar olarak da adlandırılır) kullanıyorsanız, veriler Microsoft tarafından yönetilen anahtar kullanılarak şifrelenir, ancak ayrıca Microsoft tarafından yönetilen anahtar müşteri tarafından yönetilen anahtar kullanılarak şifrelenir. Bu özellik, Microsoft tarafından yönetilen anahtarları şifrelemek için kullanılan müşteri tarafından yönetilen anahtarlar oluşturmanızı, döndürmenizi, devre dışı bırakmanızı ve erişimi iptal etmenizi sağlar. KAG özelliğini etkinleştirmek, ad alanınızda tek seferlik bir kurulum işlemidir.

Önemli

  • BYOK özelliği, Event Hubs'ın premium ve ayrılmış katmanları tarafından desteklenir.
  • Şifreleme yalnızca yeni veya boş ad alanları için etkinleştirilebilir. Ad alanı olay hub'ları içeriyorsa şifreleme işlemi başarısız olur.

Anahtarlarınızı yönetmek ve anahtar kullanımınızı denetlemek için Azure Key Vault'ı kullanabilirsiniz. Kendi anahtarlarınızı oluşturup bir anahtar kasasında depolayabilir veya anahtar oluşturmak için Azure Key Vault API'lerini kullanabilirsiniz. Azure Key Vault hakkında daha fazla bilgi için bkz. Azure Key Vault nedir?

Bu makalede, Azure portalını kullanarak müşteri tarafından yönetilen anahtarlarla anahtar kasası yapılandırma adımları gösterilmektedir. Azure portalını kullanarak anahtar kasası oluşturmayı öğrenmek için bkz . Hızlı Başlangıç: Azure portalını kullanarak Azure Key Vault oluşturma.

Müşteri tarafından yönetilen anahtarları etkinleştirme (Azure portalı)

Azure portalında müşteri tarafından yönetilen anahtarları etkinleştirmek için aşağıdaki adımları izleyin. Ayrılmış katmanı kullanıyorsanız önce Event Hubs Ayrılmış kümenize gidin.

  1. KAG'yi etkinleştirmek istediğiniz ad alanını seçin.

  2. Event Hubs ad alanınızın Ayarlar sayfasında Şifreleme'yi seçin.

  3. Aşağıdaki görüntüde gösterildiği gibi Bekleyen müşteri tarafından yönetilen anahtar şifrelemesini seçin.

    Enable customer managed key

Anahtarlarla anahtar kasası ayarlama

Müşteri tarafından yönetilen anahtarları etkinleştirdikten sonra, müşteri tarafından yönetilen anahtarı Azure Event Hubs ad alanınızla ilişkilendirmeniz gerekir. Event Hubs yalnızca Azure Key Vault'ı destekler. Önceki bölümde Müşteri tarafından yönetilen anahtarla şifreleme seçeneğini etkinleştirirseniz anahtarın Azure Key Vault'a aktarılmış olması gerekir. Ayrıca anahtarlar için Geçici Silme ve Temizleme'nin yapılandırılmış olması gerekir. Bu ayarlar PowerShell veya CLI kullanılarak yapılandırılabilir.

  1. Yeni bir anahtar kasası oluşturmak için Azure Key Vault Hızlı Başlangıcı'nı izleyin. Mevcut anahtarları içeri aktarma hakkında daha fazla bilgi için bkz . Anahtarlar, gizli diziler ve sertifikalar hakkında.

    Önemli

    Azure Event Hubs ile müşteri tarafından yönetilen anahtarların kullanılması için anahtar kasasında iki gerekli özelliğin yapılandırılması gerekir. Bunlar: Geçici Silme ve Temizleme. Azure portalında yeni bir anahtar kasası oluşturduğunuzda bu özellikler varsayılan olarak etkinleştirilir. Ancak, bu özellikleri mevcut bir anahtar kasasında etkinleştirmeniz gerekiyorsa PowerShell veya Azure CLI kullanmanız gerekir.

  2. Kasa oluştururken hem geçici silme hem de temizleme korumasını açmak için az keyvault create komutunu kullanın.

    az keyvault create --name ContosoVault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true
    
  3. Mevcut bir kasaya temizleme koruması eklemek için (geçici silme özelliği zaten etkindir), az keyvault update komutunu kullanın.

    az keyvault update --name ContosoVault --resource-group ContosoRG --enable-purge-protection true
    
  4. Şu adımları izleyerek anahtarlar oluşturun:

    1. Yeni bir anahtar oluşturmak için, Ayarlar altındaki Anahtarlar menüsünden Oluştur/İçeri Aktar'ı seçin.

      Select Generate/Import button

    2. Seçenekler'i Oluştur olarak ayarlayın ve anahtara bir ad verin.

      Create a key

    3. Artık açılan listeden şifrelemek üzere Event Hubs ad alanıyla ilişkilendirmek üzere bu anahtarı seçebilirsiniz.

      Select key from key vault

      Dekont

      Yedeklilik için en fazla 3 anahtar ekleyebilirsiniz. Anahtarlardan birinin süresinin dolması veya erişilebilir olmaması durumunda, diğer anahtarlar şifreleme için kullanılır.

    4. Anahtarın ayrıntılarını doldurun ve Seç'e tıklayın. Bu, Microsoft tarafından yönetilen anahtarın anahtarınızla (müşteri tarafından yönetilen anahtar) şifrelenmesini sağlar.

Yönetilen kimlikler

Event Hubs ad alanına atayabileceğiniz iki tür yönetilen kimlik vardır.

  • Sistem tarafından atanan: Yönetilen kimliği doğrudan bir Event Hubs ad alanında etkinleştirebilirsiniz. Sistem tarafından atanan yönetilen kimliği etkinleştirdiğinizde, Microsoft Entra'da bu Event Hubs ad alanının yaşam döngüsüne bağlı bir kimlik oluşturulur. Bu nedenle, ad alanı silindiğinde Azure sizin için kimliği otomatik olarak siler. Tasarım gereği, bu kimliği yalnızca bu Azure kaynağı (ad alanı) Microsoft Entra Id'den belirteç istemek için kullanabilir.

  • Kullanıcı tarafından atanan: Yönetilen kimliği, kullanıcı tarafından atanan kimlik olarak adlandırılan tek başına Azure kaynağı olarak da oluşturabilirsiniz. Kullanıcı tarafından atanan bir yönetilen kimlik oluşturabilir ve bunu bir veya daha fazla Event Hubs ad alanına atayabilirsiniz. Kullanıcı tarafından atanan yönetilen kimlikler söz konusu olduğunda, kimlik onu kullanan kaynaklardan ayrı olarak yönetilir. Bunlar ad alanının yaşam döngüsüne bağlı değildir. Kullanıcı tarafından atanan bir kimliği artık ihtiyacınız kalmadığında açıkça silebilirsiniz.

    Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nedir?.

Sistem tarafından atanan kimlikleri kullanarak şifreleme (şablon)

Bu bölüm, Azure Resource Manager şablonlarını kullanarak aşağıdaki görevlerin nasıl yapılacağını gösterir.

  1. Yönetilen hizmet kimliğiyle bir Event Hubs ad alanı oluşturun.
  2. Bir anahtar kasası oluşturun ve hizmet kimliğine anahtar kasasına erişim verin.
  3. Event Hubs ad alanını anahtar kasası bilgileriyle (anahtar/değer) güncelleştirin.

Yönetilen hizmet kimliğiyle Event Hubs kümesi ve ad alanı oluşturma

Bu bölümde, Azure Resource Manager şablonu ve PowerShell kullanarak yönetilen hizmet kimliğine sahip bir Azure Event Hubs ad alanı oluşturma adımları gösterilmektedir.

  1. Yönetilen hizmet kimliğine sahip bir Event Hubs ad alanı oluşturmak için bir Azure Resource Manager şablonu oluşturun. Dosyayı adlandırın: CreateEventHubClusterAndNamespace.json:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/clusters",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('clusterName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Dedicated",
                "capacity":1
             }
          },
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
             "properties":{
                "isAutoInflateEnabled":false,
                "maximumThroughputUnits":0,
                "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]"
             },
             "dependsOn":[
                "[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]"
             ]
          }
       ],
       "outputs":{
          "EventHubNamespaceId":{
             "type":"string",
             "value":"[resourceId('Microsoft.EventHub/namespaces',parameters('namespaceName'))]"
          }
       }
    }
    
  2. CreateEventHubClusterAndNamespaceParams.json adlı bir şablon parametre dosyası oluşturun.

    Dekont

    Aşağıdaki değerleri değiştirin:

    • <EventHubsClusterName> - Event Hubs kümenizin adı
    • <EventHubsNamespaceName> - Event Hubs ad alanınızın adı
    • <Location> - Event Hubs ad alanınızın konumu
    {
       "$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. Event Hubs ad alanı oluşturmak üzere şablonu dağıtmak için aşağıdaki PowerShell komutunu çalıştırın. Daha sonra kullanmak için Event Hubs ad alanının kimliğini alın. komutunu çalıştırmadan önce değerini kaynak grubunun adıyla değiştirin {MyRG} .

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

Anahtar kasasına Event Hubs ad alanı kimliği erişimi verme

  1. Temizleme koruması ve geçici silme etkin bir anahtar kasası oluşturmak için aşağıdaki komutu çalıştırın.

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

    (VEYA)

    Mevcut bir anahtar kasasını güncelleştirmek için aşağıdaki komutu çalıştırın. Komutunu çalıştırmadan önce kaynak grubu ve anahtar kasası adları için değerleri belirtin.

    ($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. Event Hubs ad alanının yönetilen kimliğinin anahtar kasasındaki anahtar değerine erişebilmesi için anahtar kasası erişim ilkesini ayarlayın. Önceki bölümdeki Event Hubs ad alanının kimliğini kullanın.

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

Event Hubs ad alanındaki verileri anahtar kasasından müşteri tarafından yönetilen anahtarla şifreleme

Şu ana kadar aşağıdaki adımları gerçekleştirdiniz:

  1. Yönetilen kimlikle bir premium ad alanı oluşturuldu.
  2. Bir anahtar kasası oluşturun ve yönetilen kimliğe anahtar kasasına erişim izni verin.

Bu adımda Event Hubs ad alanını anahtar kasası bilgileriyle güncelleştireceksiniz.

  1. Aşağıdaki içeriğe sahip CreateEventHubClusterAndNamespace.json adlı bir JSON dosyası oluşturun:

    {
       "$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. Şablon parametre dosyası oluşturma: UpdateEventHubClusterAndNamespaceParams.json.

    Dekont

    Aşağıdaki değerleri değiştirin:

    • <EventHubsClusterName> - Event Hubs kümenizin adı.
    • <EventHubsNamespaceName> - Event Hubs ad alanınızın adı
    • <Location> - Event Hubs ad alanınızın konumu
    • <KeyVaultName> - Anahtar kasanızın adı
    • <KeyName> - Anahtar kasasındaki anahtarın adı
    {
       "$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. Resource Manager şablonunu dağıtmak için aşağıdaki PowerShell komutunu çalıştırın. komutunu çalıştırmadan önce değerini kaynak grubunuzun adıyla değiştirin {MyRG} .

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

Kullanıcı tarafından atanan kimlikleri (şablon) kullanarak şifreleme

  1. Kullanıcı tarafından atanan bir kimlik oluşturun.
  2. Bir anahtar kasası oluşturun ve erişim ilkeleri aracılığıyla kullanıcı tarafından atanan kimliğe erişim izni verin.
  3. Yönetilen kullanıcı kimliği ve anahtar kasası bilgileriyle bir Event Hubs ad alanı oluşturun.

Kullanıcı tarafından atanan kimlik oluşturma

Kullanıcı tarafından atanan kimlik oluşturmak için Kullanıcı tarafından atanan yönetilen kimlik oluşturma makalesindeki yönergeleri izleyin. CLI, PowerShell, Azure Resource Manager şablonu ve REST kullanarak kullanıcı tarafından atanan bir kimlik de oluşturabilirsiniz.

Dekont

Ad alanına en fazla 4 kullanıcı kimliği atayabilirsiniz. Bu ilişkilendirmeler, ad alanı silindiğinde veya şablonuna Nonegeçirdiğinizde identity -> type silinir.

Anahtar kasası oluşturma ve kullanıcı tarafından atanan kimliğe erişim verme

  1. Temizleme koruması ve geçici silme etkin bir anahtar kasası oluşturmak için aşağıdaki komutu çalıştırın.

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

    (VEYA)

    Mevcut bir anahtar kasasını güncelleştirmek için aşağıdaki komutu çalıştırın. Komutunu çalıştırmadan önce kaynak grubu ve anahtar kasası adları için değerleri belirtin.

    ($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. Aşağıdaki PowerShell komutunu kullanarak kullanıcı kimliği için Hizmet sorumlusu kimliğini alın. Örnekte, ud1 şifreleme için kullanılacak kullanıcı tarafından atanan kimliktir.

    $servicePrincipal=Get-AzADServicePrincipal -SearchString "ud1"    
    
  3. Erişim ilkesi atayarak anahtar kasasına kullanıcı tarafından atanan kimliğe erişim izni verin.

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

    Dekont

    En fazla 3 anahtar ekleyebilirsiniz, ancak şifreleme için kullanılan kullanıcı kimliği tüm anahtarlar için aynı olmalıdır. Şu anda yalnızca tek bir şifreleme kimliği desteklenmektedir.

Kullanıcı kimliği ve anahtar kasası bilgileriyle Event Hubs ad alanı oluşturma

Bu bölümde, bir Azure Resource Manager şablonu kullanarak aşağıdaki görevlerin nasıl gerçekleştirildiğini gösteren bir örnek verilmiştir.

  • Event Hubs ad alanına kullanıcı tarafından yönetilen bir kimlik atayın.

                "identity": {
                    "type": "UserAssigned",
                    "userAssignedIdentities": {
                        "[parameters('identity').userAssignedIdentity]": {}
                    }
                },
    
  • Anahtar kasanızdan bir anahtar ve anahtara erişmek için kullanıcı tarafından yönetilen kimlik belirterek ad alanında şifrelemeyi etkinleştirin.

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  1. Aşağıdaki içeriğe sahip CreateEventHubsNamespaceWithUserIdentityAndEncryption.json adlı bir JSON dosyası oluşturun:

    {
       "$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. Şablon parametre dosyası oluşturma: 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>"
            }
         }
       }
    }
    

    Parametre dosyasında yer tutucuları uygun değerlerle değiştirin.

    Yer tutucu value
    <EventHubsNamespaceName> Event Hubs ad alanının adı.
    <Location> Ad alanının oluşturulmasını istediğiniz konum.
    <KeyVaultName> Anahtar kasasının adı.
    <KeyName> Anahtar kasasındaki anahtarın adı.
    <AZURE SUBSCRIPTION ID> Azure abonelik kimliğiniz.
    <RESOURCE GROUP NAME> Kullanıcı tarafından yönetilen kimliğin kaynak grubu.
    <USER MANAGED IDENTITY NAME> Kullanıcı tarafından yönetilen kimliğin adı.
  3. Resource Manager şablonunu dağıtmak için aşağıdaki PowerShell komutunu çalıştırın. komutunu çalıştırmadan önce değerini kaynak grubunuzun adıyla değiştirin {MyRG} .

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

Hem kullanıcı tarafından atanan hem de sistem tarafından atanan kimlikleri kullanma

Ad alanı hem sistem tarafından atanan hem de kullanıcı tarafından atanan kimliklere aynı anda sahip olabilir. Bu durumda, type aşağıdaki örnekte gösterildiği gibi özelliği olacaktır UserAssignedSystemAssigned.

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

Bu senaryoda, bekleyen verileri şifrelemek için sistem tarafından atanan kimliği veya kullanıcı tarafından atanan kimliği seçebilirsiniz.

Resource Manager şablonunda bir identity öznitelik belirtmezseniz sistem tarafından yönetilen kimlik kullanılır. Burada örnek bir kod parçacığı verilmiş.

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

Şifreleme için kullanıcı tarafından yönetilen kimliği kullanmak için aşağıdaki örne bakın. Özniteliğin identity kullanıcı tarafından yönetilen kimliğe ayarlandığına dikkat edin.

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

Verilerin altyapı (veya çift) şifrelemesini etkinleştirme

Verilerinizin güvenli olduğuna dair daha yüksek düzeyde güvenceye ihtiyacınız varsa, Çift Şifreleme olarak da bilinen altyapı düzeyinde şifrelemeyi etkinleştirebilirsiniz.

Altyapı şifreleme etkinleştirildiğinde Event Hubs ad alanı hesabındaki veriler, iki farklı şifreleme algoritması ve iki farklı anahtar kullanılarak bir kez hizmet düzeyinde ve bir kez altyapı düzeyinde iki kez şifrelenir. Bu nedenle Event Hubs verilerinin altyapı şifrelemesi, şifreleme algoritmalarından veya anahtarlardan birinin gizliliğinin tehlikeye atıldığı bir senaryoya karşı koruma sağlar.

Azure Resource Manager şablonunu aşağıda gösterildiği gibi yukarıdaki CreateEventHubClusterAndNamespace.json dosyasındaki özelliğiyle requireInfrastructureEncryption güncelleştirerek altyapı şifrelemesini etkinleştirebilirsiniz.

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

Şifreleme anahtarlarını döndürme, iptal etme ve önbelleğe alma

Şifreleme anahtarlarınızı döndürme

Azure Key Vaults döndürme mekanizmasını kullanarak anahtarınızı anahtar kasasında döndürebilirsiniz. Anahtar döndürmeyi otomatikleştirmek için etkinleştirme ve son kullanma tarihleri de ayarlanabilir. Event Hubs hizmeti yeni anahtar sürümlerini algılar ve bunları otomatik olarak kullanmaya başlar.

Anahtarlara erişimi iptal etme

Şifreleme anahtarlarına erişimi iptal etmek verileri Event Hubs'dan temizlemez. Ancak verilere Event Hubs ad alanından erişilemiyor. Erişim ilkesi aracılığıyla veya anahtarı silerek şifreleme anahtarını iptal edebilirsiniz. Güvenli erişimden anahtar kasasına erişim ilkeleri ve anahtar kasanızın güvenliğini sağlama hakkında daha fazla bilgi edinin.

Şifreleme anahtarı iptal edilirse, şifrelenmiş ad alanındaki Event Hubs hizmeti kullanılamaz hale gelir. Anahtara erişim etkinleştirilirse veya silme anahtarı geri yüklenirse, Event Hubs hizmeti şifrelenmiş Event Hubs ad alanından verilere erişebilmeniz için anahtarı seçer.

Anahtarların Önbelleğe Alma

Event Hubs örneği (olay hub'ı) listelenen şifreleme anahtarlarını her 5 dakikada bir yoklar. 5 dakika sonra bir sonraki ankete kadar bunları önbelleğe alır ve kullanır. En az bir anahtar kullanılabildiği sürece olay hub'ına erişilebilir. Yoklama sırasında listelenen tüm anahtarlara erişilemiyorsa, tüm olay hub'ları kullanılamaz duruma gelir.

Diğer ayrıntılar şunlardır:

  • Event Hubs hizmeti 5 dakikada bir ad alanının kaydında listelenen tüm müşteri tarafından yönetilen anahtarları yoklar:
    • Bir anahtar döndürüldüyse, kayıt yeni anahtarla güncelleştirilir.
    • Bir anahtar iptal edildiyse, anahtar kayıttan kaldırılır.
    • Tüm anahtarlar iptal edildiyse, ad alanının şifreleme durumu İptal Edildi olarak ayarlanır. Verilere Event Hubs ad alanından erişilemiyor.'

Coğrafi olağanüstü durum kurtarma kullanırken dikkat edilmesi gerekenler

Önemli

BYOK şifrelemesini kullanan bir ad alanında Geo-DR'yi etkinleştirmek için, eşleştirme için ikincil ad alanında sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğin etkinleştirilmesi gerekir.

Coğrafi olağanüstü durum kurtarma - sistem tarafından atanan kimliklerle şifreleme

Microsoft tarafından yönetilen anahtarın müşteri tarafından yönetilen anahtarla şifrelenmesini etkinleştirmek için, belirtilen Azure KeyVault üzerinde sistem tarafından atanan yönetilen kimlik için bir erişim ilkesi ayarlanır. Bu, Azure Event Hubs ad alanından Azure KeyVault'a denetimli erişim sağlar.

Bunun nedeni:

Coğrafi olağanüstü durum kurtarma - kullanıcı tarafından atanan kimliklerle şifreleme

İşte birkaç öneri:

  1. Yönetilen kimlik oluşturun ve yönetilen kimliğinize Key Vault izinleri atayın.
  2. Kimliği kullanıcı tarafından atanan kimlik olarak ekleyin ve her iki ad alanında da kimlikle şifrelemeyi etkinleştirin.
  3. Ad alanlarını birlikte eşleştirme

Kullanıcı Tarafından Atanan Kimliklerle Coğrafi DR ve Şifrelemeyi etkinleştirme koşulları:

  1. Şifreleme etkinleştirilmiş bir birincil ad alanıyla eşleştirilecekse, ikincil ad alanında Kullanıcı Tarafından Atanan kimlikle Şifreleme zaten etkin olmalıdır.
  2. İkincil ad alanıyla ilişkilendirilmiş kullanıcı tarafından atanan bir kimliğe sahip olsa bile, zaten eşleştirilmiş bir birincilde Şifrelemeyi etkinleştirmek mümkün değildir.

Tanılama günlükleri ayarlama

BYOK özellikli ad alanları için tanılama günlüklerini ayarlamak, işlemler hakkında gerekli bilgileri sağlar. Bu günlükler etkinleştirilip daha sonra bir olay hub'ına aktarılabilir veya log analytics aracılığıyla analiz edilebilir ya da özelleştirilmiş analiz gerçekleştirmek için depolamaya akışla aktarılabilir. Tanılama günlükleri hakkında daha fazla bilgi edinmek için bkz . Azure Tanılama günlüklerine genel bakış. Şema için bkz . Veri başvurularını izleme.

Sonraki adımlar

Aşağıdaki makalelere bakın: