Öğretici: Azure Cloud HSM için Event Hubs'ı yapılandırma

Azure Cloud HSM için işlem olay günlüğünü yapılandırdıysanız, Cloud HSM kümenizde HsmServiceOperations günlüklerini Depolama ve Log Analytics yönlendiren çalışan bir tanılama ayarınız zaten vardır. Event Hubs'ı hedef olarak eklemek için, aynı tanılama ayarına üçüncü bir hedef ekleyin veya Event Hubs'ı hedefleyen yeni bir hedef oluşturun.

Azure İzleyici tanılama ayarları aynı anda birden çok hedefi destekler. Log Analytics işlem hattınız Cloud HSM'den günlük emisyonunun çalıştığını zaten kanıtladığı için Event Hubs aynı HsmServiceOperations kategorisini alan başka bir hedef haline gelir.

Bu eğitimde, siz:

  • Cloud HSM günlükleri için bir Event Hubs ad alanı ve olay hub'ı oluşturun.
  • Yetkilendirme kurallarını en az ayrıcalıklı izinlerle yapılandırın.
  • Günlükleri Event Hubs'a akışla aktarmak için tanılama ayarlarını güncelleştirin.
  • Event Hubs'ın Cloud HSM işlem olaylarını aldığını doğrulayın.

Önkoşullar

Logs kaynak grubunun mevcut olduğunu doğrulayın

Event Hubs, HSM işlemleri denetim günlüğü için depolama hesabınızı ve Log Analytics çalışma alanınızı içeren aynı kaynak grubuna dağıtılmalıdır. HSM işlemleri denetim günlüğünü ayarlamadıysanız, önce Azure Cloud HSM için HSM işlemleri denetim günlüğünü yapılandırma ve sorgulama'daki yönergeleri izleyin.

Hedeflenen kaynak grubunuzun mevcut olduğunu doğrulayın:

az group show --name "<resource-group>" --query "{name:name, location:location}" --output table

Event Hubs ad alanı oluşturma

Ad alanı, bir veya daha fazla olay hub'ını barındıran kapsayıcıdır. Tanılama ayarları tümleştirmesi için gereken Standart katmanını kullanın.

az eventhubs namespace create \
  --name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --location "<location>" \
  --sku Standard \
  --capacity 1 \
  --enable-auto-inflate false

Anahtar seçenekleri:

  • Standart SKU: Temel katman, hedef olarak tanılama ayarlarını desteklemez.
  • Kapasite 1: HSM denetim günlükleri için bir aktarım hızı birimi (1 MB/sn giriş, 2 MB/sn çıkış) yeterlidir.
  • Otomatik şişirme devre dışı: HSM günlük kayıt hacmi düşük, bu nedenle otomatik şişirme gerekli değildir.

Ad alanı içinde olay hub'ı oluşturma

Cloud HSM günlüklerini almak için ad alanı içinde bir olay hub'ı oluşturun.

az eventhubs eventhub create \
  --name "cloudhsm-logs" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --partition-count 2 \
  --retention-time-in-hours 168 \
  --cleanup-policy Delete

Anahtar seçenekleri:

  • Bölümlendirme sayısı 2: HSM denetim günlüğü aktarım hızı için iki bölümlendirme yeterlidir.
  • Bekletme süresi 168 saat: İletileri yedi gün boyunca tutun (Standart katman için maksimum süre).
  • Temizleme ilkesi Silme: Bekletme süresi dolduktan sonra iletileri silin.

Tüketici grubu oluşturma

Aşağı akış işleme için ayrılmış bir tüketici grubu oluşturun. Varsayılan $Default grubu diğer kullanımlar için ayırın.

az eventhubs eventhub consumer-group create \
  --name "azure-cloud-hsm" \
  --namespace-name "<eventhub-namespace>" \
  --eventhub-name "cloudhsm-logs" \
  --resource-group "<resource-group>"

Yetkilendirme kuralı oluşturma

Tanılama ayarları, günlükleri olay hub'ına göndermek için Gönderme iznine ihtiyaç duyar. Yalnızca gerekli izinlere sahip bir paylaşılan erişim ilkesi oluşturun.

az eventhubs namespace authorization-rule create \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --rights Send

Uyarı

Bu kural yalnızca Send izni verir, Listen veya Manage vermez. En düşük ayrıcalık ilkesini izleyin. Aşağı akıştaki tüketicileriniz (Azure İşlevleri veya Stream Analytics gibi) Listen iznine sahip ayrı bir kural kullanmalıdır.

Yetkilendirme kuralına ait kaynak kimliğini al

Tanı ayarında kullanmak için yetkilendirme kuralının kaynak kimliğini alın.

authRuleId=$(az eventhubs namespace authorization-rule show \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --query id --output tsv)

echo "Auth Rule ID: $authRuleId"

Bu değeri bir sonraki adımda kullanmak üzere kaydedin.

Event Hubs eklemek için tanılama ayarını güncelleştirme

Event Hubs'ı hedef olarak eklemek için iki seçeneğiniz vardır:

Bu yaklaşım, Depolama ve Log Analytics'i koruyarak Event Hubs eklemek için mevcut tanılama ayarınızı güncelleştirir.

# Set your resource group variables
hsmResourceGroup="<resource-group>"
logsResourceGroup="<resource-group>"

# Find the HSM cluster name (auto-generated during deployment)
hsmClusterName=$(az resource list \
  --resource-group $hsmResourceGroup \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --query "[0].name" --output tsv)
echo "HSM Cluster: $hsmClusterName"

# Get the HSM cluster resource ID
hsmResourceId=$(az resource show \
  --resource-group $hsmResourceGroup \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --name $hsmClusterName \
  --query id --output tsv)

# Get your existing storage account ID
storageAccountId=$(az storage account list \
  --resource-group $logsResourceGroup \
  --query "[0].id" --output tsv)

# Get your existing Log Analytics workspace ID
workspaceId=$(az monitor log-analytics workspace list \
  --resource-group $logsResourceGroup \
  --query "[0].id" --output tsv)

# Get the Event Hubs auth rule ID
authRuleId=$(az eventhubs namespace authorization-rule show \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group $logsResourceGroup \
  --query id --output tsv)

# Update the diagnostic setting with all three destinations
az monitor diagnostic-settings create \
  --name "<diagnostic-setting-name>" \
  --resource $hsmResourceId \
  --storage-account $storageAccountId \
  --workspace $workspaceId \
  --event-hub "cloudhsm-logs" \
  --event-hub-rule $authRuleId \
  --logs '[{"category":"HsmServiceOperations","enabled":true}]'

Önemli

Ad mevcut bir adla eşleşiyorsa hem CLI hem de PowerShell komutları tanılama ayarının tamamının yerini alır. Depolama hesabını ve çalışma alanını yeniden eklemeniz gerekir, aksi durumda bu hedefler kaldırılır.

B Seçeneği: Yalnızca Event Hubs için ayrı bir tanılama ayarı oluşturma

Mevcut ayarınızı değiştirmeden tutmayı ve ikinci bir ayar eklemeyi tercih ederseniz,

# Find the HSM cluster name
hsmClusterName=$(az resource list \
  --resource-group "<resource-group>" \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --query "[0].name" --output tsv)

hsmResourceId=$(az resource show \
  --resource-group "<resource-group>" \
  --resource-type Microsoft.HardwareSecurityModules/cloudHsmClusters \
  --name $hsmClusterName \
  --query id --output tsv)

authRuleId=$(az eventhubs namespace authorization-rule show \
  --name "DiagnosticSettingsSendRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --query id --output tsv)

az monitor diagnostic-settings create \
  --name "chsm-eventhub-diagnostic-setting" \
  --resource $hsmResourceId \
  --event-hub "cloudhsm-logs" \
  --event-hub-rule $authRuleId \
  --logs '[{"category":"HsmServiceOperations","enabled":true}]'

Uyarı

Azure kaynak başına en fazla beş tanılama ayarı destekler. İkinci bir ayar geçerlidir ve endişeleri ayrı tutar.

Event Hubs'ın ileti aldığını doğrulama

Tanılama ayarını yapılandırdıktan sonra Event Hubs'ın Cloud HSM günlüklerini aldığını doğrulayın.

Portalda tanılama ayarını denetleyin

  1. Azure portalında Bulut HSM kümenize gidin.
  2. İzleme'nin altında Tanılama ayarları'nı seçin.
  3. Event Hubs'ın hedef olarak listelendiğini onaylayın.

Event Hubs ölçümlerini denetleme

Son bir saat içinde gelen iletileri denetlemek için aşağıdaki komutu çalıştırın:

# Get your subscription ID
subId=$(az account show --query id --output tsv)

# Check incoming messages (last 1 hour)
az monitor metrics list \
  --resource "/subscriptions/$subId/resourceGroups/<resource-group>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>" \
  --metric "SuccessfulRequests" \
  --interval PT1H \
  --output table

İletileri görüntüleme (isteğe bağlı)

İçeriği onaylamak için birkaç iletiyi okumak istiyorsanız bir Dinleme kuralı oluşturun:

# Create a Listen rule for your consumer
az eventhubs namespace authorization-rule create \
  --name "ConsumerListenRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --rights Listen

# Get the connection string
az eventhubs namespace authorization-rule keys list \
  --name "ConsumerListenRule" \
  --namespace-name "<eventhub-namespace>" \
  --resource-group "<resource-group>" \
  --query primaryConnectionString --output tsv

İletileri görüntülemek için bu bağlantı dizesini Azure Event Hubs Gezgini, Visual Studio Code Event Hubs eklentisi veya bir Python betiği ile kullanabilirsiniz.