Share via


Aktivieren von Datenträgerverschlüsselung für verwaltete Service Fabric-Clusterknoten

Die Managed Cluster von Service Fabric unterstützen zwei Optionen für die Verschlüsselung von Datenträgern, um Ihre Daten zu schützen und Ihre organisatorischen Sicherheits- und Compliance-Verpflichtungen zu erfüllen. Die empfohlene Option ist Verschlüsselung auf dem Host, aber auch Azure Disk Encryption wird unterstützt. Überprüfen Sie die Optionen zur Datenträgerverschlüsselung und stellen Sie sicher, dass die gewählte Option Ihren Anforderungen entspricht.

Aktivieren der Verschlüsselung auf dem Host

Diese Verschlüsselungsmethode verbessert die Azure Disk Encryption, indem sie alle OS-Typen und Images, einschließlich benutzerdefinierter Images, für Ihre VMs unterstützt, indem sie Daten im Azure Storage Service verschlüsselt. Diese Methode nutzt weder die CPU Ihrer VMs noch beeinträchtigt sie die Leistung Ihrer VMs, so dass die Arbeitslasten alle verfügbaren SKU-Ressourcen der VMs nutzen können.

Hinweis

Sie können diese Funktion nicht für bestehende Knotentypen aktivieren. Sie müssen einen neuen Knotentyp bereitstellen und Ihre Arbeitslast migrieren.

Hinweis

Der Status der Datenträgerverschlüsselung im Azure Security Center wird derzeit als "Unhealthy" angezeigt, wenn Verschlüsselung auf dem Host verwendet wird

Führen Sie die folgenden Schritte aus und verweisen Sie auf diese Beispielvorlage, um einen neuen verwalteten Service Fabric-Cluster mit aktivierter Host-Verschlüsselung einzusetzen.

  1. Überprüfen Sie die folgenden Einschränkungen, um sicherzustellen, dass sie Ihren Anforderungen entsprechen.

  2. Richten Sie die erforderlichen Voraussetzungen vor dem Bereitstellung des Clusters ein.

  3. Konfigurieren Sie die Eigenschaft enableEncryptionAtHost in der verwalteten Cluster-Vorlage für jeden Node-Typ, für den eine Datenträger-Verschlüsselung erforderlich ist. Das Muster ist vorkonfiguriert.

    • Die apiVersion der von Service Fabric verwalteten Clusterressource muss 2021-11-01-preview oder höher sein.
         {
                "apiVersion": "[variables('sfApiVersion')]",
                "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
                "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
                "location": "[resourcegroup().location]",
                "properties": {
                    "enableEncryptionAtHost": true
                    ...
                }
        }
    
  4. Einsetzen und Überprüfen

    Stellen Sie Ihren verwalteten Cluster mit aktivierter Host-Verschlüsselung bereit.

    $clusterName = "<clustername>" 
    $resourceGroupName = "<rg-name>"
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    Mithilfe des Befehls Get-AzVmss können Sie den Status der Datenträgerverschlüsselung für die zugrunde liegende Skalierungsgruppe eines Knotentyps überprüfen. Zunächst müssen Sie den Namen der unterstützenden Ressourcengruppe Ihres verwalteten Clusters finden (die das zugrunde liegende virtuelle Netzwerk, den Load Balancer, die öffentliche IP-Adresse, die NSG, die Skalierungsgruppe(n) und die Speicherkonten enthält). Achten Sie darauf, dass Sie NodeTypeNAme in den Namen des zu überprüfenden Clusterknotens (wie in der Bereitstellungsvorlage angegeben) ändern.

    $NodeTypeName = "NT2"
    $clustername = <clustername>
    $resourceGroupName = "<rg-name>"
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    $VMSS = Get-AzVmss -ResourceGroupName $supportResourceGroupName -Name $NodeTypeName
    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    

    Die Rückgabe sollte in etwa so aussehen:

    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    True
    

Azure Disk Encryption aktivieren

Azure Disk Encryption bietet Volume-Verschlüsselung für die Betriebssystem- und Datenträger von virtuellen Azure-Maschinen (VMs) unter Verwendung der DM-Crypt-Funktion in Linux oder der BitLocker-Funktion von Windows. ADE ist in Azure Key Vault integriert, um Ihnen die Steuerung und Verwaltung der Datenträgerverschlüsselungsschlüssel und -geheimnisse zu erleichtern.

In dieser Anleitung erfahren Sie, wie Sie die Datenträgerverschlüsselung für verwaltete Service Fabric-Clusterknoten in Windows mithilfe der Funktion Azure Disk Encryption für VM-Skalierungsgruppen über ARM-Vorlagen (Azure Resource Manager) aktivieren.

  1. Registrieren für Azure Disk Encryption

    Die Vorschauversion der Datenträgerverschlüsselung für die VM-Skalierungsgruppe erfordert eine Selbstregistrierung. Führen Sie den folgenden Befehl aus:

    Register-AzProviderFeature -FeatureName "UnifiedDiskEncryption" -ProviderNamespace "Microsoft.Compute"
    

    Überprüfen Sie den Registrierungsstatus, indem Sie Folgendes ausführen:

    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    

    Sobald sich der Status in Registriert geändert hat, können Sie den Vorgang fortsetzen.

  2. Bereitstellen eines Key Vault für die Datenträgerverschlüsselung

    Azure Disk Encryption erfordert Azure Key Vault zum Steuern und Verwalten von Verschlüsselungsschlüsseln und Geheimnissen für die Datenträgerverschlüsselung. Ihr Key Vault und Ihr verwalteter Service Fabric-Cluster müssen sich in derselben Azure-Region und demselben Azure-Abonnement befinden. Solange diese Anforderungen erfüllt sind, können Sie einen neuen oder vorhandenen Key Vault verwenden, indem Sie die Datenträgerverschlüsselung für diesen aktivieren.

  3. Erstellen eines Key Vault mit aktivierter Datenträger Verschlüsselung

    Führen Sie die folgenden Befehle aus, um einen neuen Key Vault für die Datenträgerverschlüsselung zu erstellen. Vergewissern Sie sich, dass die Region für Ihren Key Vault in der gleichen Region liegt wie Ihr Cluster.

    $resourceGroupName = "<rg-name>" 
    $keyvaultName = "<kv-name>" 
    
    New-AzResourceGroup -Name $resourceGroupName -Location eastus2 
    New-AzKeyVault -ResourceGroupName $resourceGroupName -Name $keyvaultName -Location eastus2 -EnabledForDiskEncryption
    

  1. Aktualisieren eines vorhandenen Key Vault zum Aktivieren der Datenträgerverschlüsselung

    Führen Sie die folgenden Befehle aus, um die Datenträgerverschlüsselung für einen vorhandenen Key Vault zu aktivieren.

    Set-AzKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $keyvaultName -EnabledForDiskEncryption
    

Aktualisieren der Vorlagen- und Parameterdateien für die Datenträgerverschlüsselung

Der folgende Schritt führt Sie durch die erforderlichen Änderungen an der Vorlage, um die Datenträgerverschlüsselung für einen vorhandenen verwalteten Cluster zu aktivieren. Alternativ können Sie mit der folgenden Vorlage einen neuen verwalteten Service Fabric-Cluster mit aktivierter Datenträgerverschlüsselung bereitstellen: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption

  1. Fügen Sie der Vorlage die folgenden Parameter hinzu, und ersetzen Sie dabei das Abonnement, den Ressourcengruppennamen und den Key Vault-Namen unter keyVaultResourceId durch Ihre eigenen Werte:

    "parameters": {
     "keyVaultResourceId": { 
       "type": "string", 
       "defaultValue": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>", 
       "metadata": { 
       "description": "Full resource id of the Key Vault used for disk encryption." 
    } 
     },
     "volumeType": { 
      "type": "string", 
      "defaultValue": "All", 
      "metadata": { 
       "description": "Type of the volume OS or Data to perform encryption operation" 
    }
    }
    }, 
    
  2. Fügen Sie als Nächstes die VM-Erweiterung AzureDiskEncryption den verwalteten Clusterknotentypen in der Vorlage hinzu:

    "properties": { 
    "vmExtensions": [ 
    { 
    "name": "AzureDiskEncryption", 
    "properties": { 
      "publisher": "Microsoft.Azure.Security", 
      "type": "AzureDiskEncryption", 
      "typeHandlerVersion": "2.2", 
      "autoUpgradeMinorVersion": true, 
      "settings": {      
            "EncryptionOperation": "EnableEncryption", 
            "KeyVaultURL": "[reference(parameters('keyVaultResourceId'),'2016-10-01').vaultUri]", 
         "KeyVaultResourceId": "[parameters('keyVaultResourceID')]",
         "VolumeType": "[parameters('volumeType')]" 
         } 
       } 
    } 
    ] 
    } 
    
  3. Aktualisieren Sie schließlich die Parameterdatei, und ersetzen Sie dabei das Abonnement, die Ressourcengruppe und den Key Vault-Namen in keyVaultResourceId durch Ihre eigenen Werte:

    "parameters": { 
    ...
     "keyVaultResourceId": { 
      "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" 
     },   
     "volumeType": { 
      "value": "All" 
     }    
    } 
    
  4. Bereitstellen und Überprüfen der Änderungen

    Sobald Sie fertig sind, stellen Sie die Änderungen bereit, um die Datenträgerverschlüsselung für Ihren verwalteten Cluster zu aktivieren.

    $clusterName = "<clustername>" 
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    Mithilfe des Befehls Get-AzVmssDiskEncryption können Sie den Status der Datenträgerverschlüsselung für die zugrunde liegende Skalierungsgruppe eines Knotentyps überprüfen. Zuerst müssen Sie den Namen der unterstützenden Ressourcengruppe Ihres verwalteten Clusters (mit dem zugrunde liegenden virtuellen Netzwerk, dem Load Balancer, der öffentlichen IP-Adresse, der NSG, den Skalierungsgruppen und Speicherkonten) ermitteln. Achten Sie darauf, dass Sie VmssName in den Namen des zu überprüfenden Clusterknotens (wie in der Bereitstellungsvorlage angegeben) ändern.

    $VmssName = "NT1"
    $clustername = <clustername>
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    Get-AzVmssDiskEncryption -ResourceGroupName $supportResourceGroupName -VMScaleSetName $VmssName
    

    Die Ausgabe sollte in etwa folgendermaßen aussehen:

    ResourceGroupName            : SFC_########-####-####-####-############
    VmScaleSetName               : NT1
    EncryptionEnabled            : True
    EncryptionExtensionInstalled : True
    

Nächste Schritte

Beispiel: Standard SKU Service Fabric verwalteter Cluster, ein Knotentyp mit aktivierter Datenträger-Verschlüsselung

Azure Disk Encryption für Windows-VMs

Verschlüsseln von VM-Skalierungsgruppen mit Azure Resource Manager