Aktivieren der Datenträgerverschlüsselung für Azure Service Fabric-Clusterknoten unter Linux
In diesem Tutorial erfahren Sie, wie Sie die Datenträgerverschlüsselung auf Azure Service Fabric-Clusterknoten unter Linux aktivieren. Diese Schritte müssen für alle Knotentypen und VM-Skalierungsgruppen ausgeführt werden. Für die Verschlüsselung der Knoten verwenden wir die Azure Disk Encryption-Funktion für VM-Skalierungsgruppen.
Der Leitfaden behandelt folgende Themen:
- Schlüsselkonzepte, die Sie zum Aktivieren der Datenträgerverschlüsselung auf einer VM-Skalierungsgruppe im Service Fabric-Cluster unter Linux berücksichtigen müssen.
- Schritte, die Sie vor dem Aktivieren der Datenträgerverschlüsselung auf Service Fabric-Clusterknoten unter Linux ausführen müssen.
- Schritte, die Sie zum Aktivieren der Datenträgerverschlüsselung auf Service Fabric-Clusterknoten unter Linux ausführen müssen.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Voraussetzungen
Selbstregistrierung
Die Vorschauversion der Datenträgerverschlüsselung für die VM-Skalierungsgruppe erfordert eine Selbstregistrierung. Führen Sie die folgenden Schritte durch:
- Führen Sie den folgenden Befehl aus:
Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
- Warten Sie etwa zehn Minuten, bis der Status Registriert angezeigt wird. Sie können den Status überprüfen, indem Sie den folgenden Befehl ausführen:
Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption" Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
Azure Key Vault
Erstellen Sie einen Schlüsseltresor im selben Abonnement und in derselben Region wie die Skalierungsgruppe. Wählen Sie dann die Zugriffsrichtlinie EnabledForDiskEncryption für den Schlüsseltresor mit seinem PowerShell-Cmdlet aus. Sie können die Richtlinie auch mit folgendem Befehl über die Key Vault-Benutzeroberfläche im Azure-Portal festlegen:
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption
Installieren Sie die neueste Version der Azure-Befehlszeilenschnittstelle, da diese über die neuen Verschlüsselungsbefehle verfügt.
Installieren Sie die neueste Version des Azure SDK aus dem Azure PowerShell-Release. Es folgen die Azure Disk Encryption-Cmdlets (ADE) der VM-Skalierungsgruppe zum Aktivieren (set) der Verschlüsselung, Abrufen (get) des Verschlüsselungsstatus und Entfernen (disable) der Verschlüsselung aus der Skalierungsgruppeninstanz.
Get-Help | Version | `Source` |
---|---|---|
Get-AzVmssDiskEncryptionStatus | 1.0.0 oder höher | Az.Compute |
Get-AzVmssVMDiskEncryptionStatus | 1.0.0 oder höher | Az.Compute |
Disable-AzVmssDiskEncryption | 1.0.0 oder höher | Az.Compute |
Get-AzVmssDiskEncryption | 1.0.0 oder höher | Az.Compute |
Get-AzVmssVMDiskEncryption | 1.0.0 oder höher | Az.Compute |
Set-AzVmssDiskEncryptionExtension | 1.0.0 oder höher | Az.Compute |
Unterstützte Szenarien für die Datenträgerverschlüsselung
- Die Verschlüsselung für VM-Skalierungsgruppen wird nur für Skalierungsgruppen mit verwalteten Datenträgern unterstützt. Sie wird nicht für native (oder nicht verwaltete) Datenträger-Skalierungsgruppen unterstützt.
- Die Verschlüsselung und Deaktivierung der Verschlüsselung wird bei Betriebssystem- und Datenvolumes für VM-Skalierungsgruppen unter Linux unterstützt.
- Reimaging- und Upgradevorgänge von virtuellen Computern (VMs) für VM-Skalierungsgruppen werden in der aktuellen Vorschauversion nicht unterstützt.
Erstellen eines neuen Clusters und Aktivieren der Datenträgerverschlüsselung
Verwenden Sie die folgenden Befehle, um Cluster zu erstellen und die Datenträgerverschlüsselung mit Azure Resource Manager-Vorlage und selbstsigniertem Zertifikat zu aktivieren.
Anmelden bei Azure
Melden Sie sich mit den folgenden Befehlen an:
Login-AzAccount
Set-AzContext -SubscriptionId <guid>
azure login
az account set --subscription $subscriptionId
Verwenden einer bereits vorhandenen benutzerdefinierten Vorlage
Wenn Sie eine benutzerdefinierte Vorlage erstellen müssen, empfehlen wir Ihnen dringend, eine der Vorlagen auf der Seite Beispiele für Azure Service Fabric-Clustererstellungsvorlagen zu verwenden.
Wenn Sie bereits über eine benutzerdefinierte Vorlage verfügen, überprüfen Sie nochmals, dass alle drei zertifikatbezogenen Parameter in der Vorlage und der Parameterdatei wie folgt benannt werden. Stellen Sie außerdem sicher, dass die Werte wie folgt NULL sind.
"certificateThumbprint": {
"value": ""
},
"sourceVaultValue": {
"value": ""
},
"certificateUrlValue": {
"value": ""
},
Da nur die Datenträgerverschlüsselung für VM-Skalierungsgruppen unter Linux unterstützt wird, müssen Sie einen Datenträger mithilfe einer Resource Manager-Vorlage hinzufügen. Aktualisieren Sie die Vorlage für die Bereitstellung des Datenträgers wie folgt:
"storageProfile": {
"imageReference": {
"publisher": "[parameters('vmImagePublisher')]",
"offer": "[parameters('vmImageOffer')]",
"sku": "[parameters('vmImageSku')]",
"version": "[parameters('vmImageVersion')]"
},
"osDisk": {
"caching": "ReadOnly",
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "[parameters('storageAccountType')]"
}
},
"dataDisks": [
{
"diskSizeGB": 1023,
"lun": 0,
"createOption": "Empty"
$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force
$certOutputFolder="c:\certificates"
$parameterFilePath="c:\templates\templateparam.json"
$templateFilePath="c:\templates\template.json"
New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -TemplateFile $templateFilePath -ParameterFile $parameterFilePath
Im Folgenden sehen Sie den entsprechenden CLI-Befehl. Ändern Sie die Werte in den declare-Anweisungen in die entsprechenden Werte. Die CLI unterstützt alle anderen Parameter, die vom zuvor genannten PowerShell-Befehl unterstützt werden.
declare certPassword=""
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare certSubjectName="mylinuxsecure.westus.cloudapp.azure.com"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"
declare certOutputFolder="c:\certificates"
az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation \
--certificate-output-folder $certOutputFolder --certificate-password $certPassword \
--certificate-subject-name $certSubjectName \
--template-file $templateFilePath --parameter-file $parametersFilePath
Einbinden eines Datenträgers in eine Linux-Instanz
Bevor Sie mit der Verschlüsselung für eine VM-Skalierungsgruppe fortfahren, vergewissern Sie sich, dass der hinzugefügte Datenträger ordnungsgemäß eingebunden ist. Melden Sie sich bei der Linux-Cluster-VM an, und führen Sie den LSBLK-Befehl aus. Die Ausgabe sollte diesen hinzugefügten Datenträger in der Spalte für den Bereitstellungspunkt anzeigen.
Bereitstellen einer Anwendung in einem Service Fabric-Cluster unter Linux
Befolgen Sie zum Bereitstellen einer Anwendung in Ihrem Cluster die Schritte und Anleitungen unter Schnellstart: Bereitstellen von Linux-Containern in Service Fabric.
Aktivieren der Datenträgerverschlüsselung für die zuvor erstellten VM-Skalierungsgruppen
Führen Sie die folgenden Befehle aus, um die Datenträgerverschlüsselung für die VM-Skalierungsgruppen zu aktivieren, die Sie in den vorherigen Schritten erstellt haben:
$VmssName = "nt1vm"
$vaultName = "mykeyvault"
$resourceGroupName = "mycluster"
$KeyVault = Get-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
Set-AzVmssDiskEncryptionExtension -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType All
az vmss encryption enable -g <resourceGroupName> -n <VMSS name> --disk-encryption-keyvault <KeyVaultResourceId>
Vergewissern Sie sich, dass die Datenträgerverschlüsselung für eine VM-Skalierungsgruppe unter Linux aktiviert ist.
Rufen Sie mit den folgenden Befehlen den Status einer gesamten VM-Skalierungsgruppe bzw. einer beliebigen Instanz in einer Skalierungsgruppe ab. Sie können sich auch bei der Linux-Cluster-VM anmelden und den LSBLK-Befehl ausführen. Die Ausgabe sollte den hinzugefügten Datenträger in der Spalte für den Bereitstellungspunkt und die Spalte für den Typ als Crypt anzeigen.
$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Get-AzVmssDiskEncryption -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName
Get-AzVmssVMDiskEncryption -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName -InstanceId "0"
az vmss encryption show -g <resourceGroupName> -n <VMSS name>
Deaktivieren der Datenträgerverschlüsselung für eine VM-Skalierungsgruppe in einem Service Fabric-Cluster
Deaktivieren Sie die Datenträgerverschlüsselung für eine VM-Skalierungsgruppe, indem Sie die folgenden Befehle ausführen. Beachten Sie, dass sich das Deaktivieren der Datenträgerverschlüsselung auf die gesamte VM-Skalierungsgruppe und nicht auf eine einzelne Instanz bezieht.
$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $VmssName
az vmss encryption disable -g <resourceGroupName> -n <VMSS name>
Nächste Schritte
An diesem Punkt sollten Sie über einen sicheren Cluster verfügen und wissen, wie Sie die Datenträgerverschlüsselung für Service Fabric-Clusterknoten und VM-Skalierungsgruppen aktivieren und deaktivieren. Eine ähnliche Anleitung zu Service Fabric-Clusterknoten unter Linux finden Sie unter Datenträgerverschlüsselung für Windows.