Share via


Habilitación del cifrado de disco para nodos de clústeres de Azure Service Fabric en Linux

En este tutorial, obtendrá información sobre cómo habilitar el cifrado de disco en los nodos de clústeres de Azure Service Fabric en Linux. Debe seguir estos pasos para cada uno de los tipos de nodo y de los conjuntos de escalado de máquinas virtuales. Para cifrar los nodos, usaremos la funcionalidad Azure Disk Encryption en los conjuntos de escalado de máquinas virtuales.

En esta guía se tratan los temas siguientes:

  • Conceptos clave que debe tener en cuenta para habilitar el cifrado de disco en conjuntos de escalado de máquinas virtuales de un clúster de Service Fabric en Linux.
  • Pasos que se deben seguir antes de habilitar el cifrado de disco en nodos de clúster de Service Fabric en Linux.
  • Pasos que se deben seguir para habilitar el cifrado de disco en nodos de clúster de Service Fabric en Linux.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Prerrequisitos

Registro automático

La versión preliminar del cifrado de disco de un conjunto de escalado de máquinas virtuales requiere el registro automático. Siga estos pasos:

  1. Ejecute el siguiente comando:
    Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
    
  2. Espere unos 10 minutos hasta que el estado sea Registrado. Puede comprobar el estado ejecutando el siguiente comando:
    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
    

Azure Key Vault

  1. Cree un almacén de claves en la misma suscripción y región que el conjunto de escalado. A continuación, seleccione la directiva de acceso EnabledForDiskEncryption en el almacén de claves mediante el cmdlet de PowerShell. También puede establecer la directiva usando la interfaz de usuario de Key Vault en Azure Portal con el siguiente comando:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption
    
  2. Instale la versión más reciente de la CLI de Azure, que contiene los nuevos comandos de cifrado.

  3. Instale la versión más reciente del SDK de Azure desde Azure PowerShell. Estos son los cmdlets de Azure Disk Encryption para habilitar (set) el cifrado, recuperar (get) el estado de cifrado y eliminar (disable) el cifrado en la instancia del conjunto de escalado.

Get-Help Versión Source
Get-AzVmssDiskEncryptionStatus 1.0.0 o posterior Az.Compute
Get-AzVmssVMDiskEncryptionStatus 1.0.0 o posterior Az.Compute
Disable-AzVmssDiskEncryption 1.0.0 o posterior Az.Compute
Get-AzVmssDiskEncryption 1.0.0 o posterior Az.Compute
Get-AzVmssVMDiskEncryption 1.0.0 o posterior Az.Compute
Set-AzVmssDiskEncryptionExtension 1.0.0 o posterior Az.Compute

Escenarios admitidos para el cifrado de disco

  • El cifrado de conjuntos de escalado de máquinas virtuales se admite solo en conjuntos de escalado creados con discos administrados. No es compatible con conjuntos de escalado con disco nativo (o no administrado).
  • Las opciones de cifrado y de deshabilitación de cifrado son compatibles para el sistema operativo y los volúmenes de datos en conjuntos de escalado de máquinas virtuales en Linux.
  • Las operaciones de restablecimiento de la imagen y actualización de las máquinas virtuales (VM) para conjunto de escalado de máquinas virtuales no se admiten en la versión preliminar actual.

Creación de un nuevo clúster y habilitación del cifrado de disco

Use los siguientes comandos para crear un clúster y habilitar el cifrado de disco con una plantilla de Azure Resource Manager y un certificado autofirmado.

Inicio de sesión en Azure

Inicie sesión con los siguientes comandos:


Login-AzAccount
Set-AzContext -SubscriptionId <guid>


azure login
az account set --subscription $subscriptionId

Uso de la plantilla personalizada ya existente

Si tiene que crear una plantilla personalizada, es muy aconsejable utilizar una de las plantillas de Azure Service Fabric cluster creation template samples (Plantillas de ejemplo de creación de clústeres de Azure Service Fabric).

Si ya tiene una plantilla personalizada, asegúrese de que los tres parámetros relacionados con el certificado de la plantilla y el archivo de parámetros tengan los nombres siguientes. Además, asegúrese de que los valores son NULL de la manera siguiente:

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },

Dado que solo se admite el cifrado de disco de datos para conjunto de escalado de máquinas virtuales en Linux, es necesario agregar un disco de datos mediante una plantilla de Resource Manager. Actualice la plantilla para el aprovisionamiento de disco de datos como se indica a continuación:

   
   "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 

Este es el comando equivalente de la CLI. Cambie los valores de las instrucciones declare por los valores adecuados. La CLI admite todos los demás parámetros que admiten los comandos de PowerShell anteriores.

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

Montaje de un disco de datos en una instancia de Linux

Antes de continuar con el cifrado en un conjunto de escalado de máquinas virtuales, asegúrese de que el disco de datos agregado esté correctamente montado. Inicie sesión en la máquina virtual del clúster de Linux y ejecute el comando LSBLK. El resultado debe mostrar ese disco de datos agregado en la columna Punto de montaje.

Implementación de una aplicación en un clúster de Service Fabric en Linux

Para implementar una aplicación en el clúster, siga los pasos y la guía en Inicio rápido: Implementación contenedores Linux en Service Fabric.

Habilitación del cifrado de disco para los conjuntos de escalado de máquinas virtuales creados previamente

Para habilitar el cifrado de disco para los conjuntos de escalado de máquinas virtuales que se han creado siguiendo los pasos anteriores, ejecute los siguientes comandos:

$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>

Validación de que el cifrado de disco está habilitado para un conjunto de escalado de máquinas virtuales en Linux

Para obtener el estado de un conjunto de escalado de máquinas virtuales completo o de cualquier instancia en un conjunto de escalado, ejecute los siguientes comandos. Además, puede iniciar sesión en la máquina virtual del clúster de Linux y ejecutar el comando LSBLK. El resultado debe mostrar el disco de datos agregado en la columna Punto de montaje y la columna Tipo debe mostrar Cifrado.


$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>

Deshabilitación del cifrado de disco para un conjunto de escalado de máquinas virtuales en un clúster de Service Fabric

Deshabilite el cifrado de disco para un conjunto de escalado de máquinas virtuales en un clúster de Service Fabric ejecutando los siguientes comandos. Tenga en cuenta que la deshabilitación del cifrado de disco se aplica al conjunto de escalado de máquinas virtuales completo y no a una instancia individual.

$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $VmssName

az vmss encryption disable -g <resourceGroupName> -n <VMSS name>

Pasos siguientes

En este punto, debe tener un clúster seguro y el procedimiento para habilitar o deshabilitar el cifrado del disco para los nodos de clúster y los conjuntos de escalado de máquinas virtuales de Service Fabric. Para obtener instrucciones similares sobre los nodos de clúster de Service Fabric en Linux, consulte Cifrado de disco para Windows.