Habilitar a criptografia de disco para nós de cluster do Azure Service Fabric no Windows

Neste tutorial, você aprenderá como habilitar a criptografia de disco em nós de cluster do Service Fabric no Windows. Você precisará seguir estas etapas para cada um dos tipos de nó e conjuntos de escala de máquina virtual. Para criptografar os nós, usaremos o recurso de Criptografia de Disco do Azure em conjuntos de escala de máquina virtual.

O guia abrange os seguintes tópicos:

  • Principais conceitos a ter em conta ao ativar a encriptação de disco em conjuntos de dimensionamento de máquinas virtuais de cluster do Service Fabric no Windows.
  • Etapas a serem seguidas antes de habilitar a criptografia de disco em nós de cluster do Service Fabric no Windows.
  • Etapas a serem seguidas para habilitar a criptografia de disco em nós de cluster do Service Fabric no Windows.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Auto-registo

A visualização de criptografia de disco para o conjunto de dimensionamento de máquina virtual requer autoregistro. Utilize os passos seguintes:

  1. Primeiro, execute o seguinte comando:
    Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
    
  2. Aguarde cerca de 10 minutos até que o status leia Registrado. Você pode verificar o status executando o seguinte comando:
    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
    

Azure Key Vault

  1. Crie um cofre de chaves na mesma assinatura e região do conjunto de escala e, em seguida, selecione a política de acesso EnabledForDiskEncryption no cofre de chaves usando seu cmdlet do PowerShell. Você também pode definir a política usando a interface do usuário do Cofre da Chave no portal do Azure com o seguinte comando:
    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption
    
  2. Instale a versão mais recente da CLI do Azure, que tem os novos comandos de criptografia.
  3. Instale a versão mais recente do SDK do Azure a partir da versão do Azure PowerShell . A seguir estão os cmdlets do Azure Disk Encryption do conjunto de dimensionamento de máquina virtual para habilitar (definir) a criptografia, recuperar (obter) o status da criptografia e remover (desabilitar) a criptografia na instância do conjunto de escala.
Comando Versão Origem
Get-AzVmssDiskEncryptionStatus 1.0.0 ou posterior Az.Compute
Get-AzVmssVMDiskEncryptionStatus 1.0.0 ou posterior Az.Compute
Disable-AzVmssDiskEncryption 1.0.0 ou posterior Az.Compute
Get-AzVmssDiskEncryption 1.0.0 ou posterior Az.Compute
Get-AzVmssVMDiskEncryption 1.0.0 ou posterior Az.Compute
Set-AzVmssDiskEncryptionExtension 1.0.0 ou posterior Az.Compute

Cenários suportados para criptografia de disco

  • A criptografia para conjuntos de dimensionamento de máquina virtual é suportada apenas para conjuntos de dimensionamento criados com discos gerenciados. Não há suporte para conjuntos de escala de disco nativos (ou não gerenciados).
  • A criptografia é suportada para SO e volumes de dados em conjuntos de dimensionamento de máquinas virtuais no Windows. A desativação da criptografia também é suportada para SO e volumes de dados para conjuntos de dimensionamento de máquinas virtuais no Windows.
  • As operações de reimagem e atualização de máquinas virtuais para conjuntos de dimensionamento de máquinas virtuais não são suportadas na visualização atual.

Criar um novo cluster e habilitar a criptografia de disco

Use os comandos a seguir para criar um cluster e habilitar a criptografia de disco usando um modelo do Azure Resource Manager e um certificado autoassinado.

Iniciar sessão no Azure

Inicie sessão com os seguintes comandos:

Login-AzAccount
Set-AzContext -SubscriptionId <guid>


azure login
az account set --subscription $subscriptionId

Use o modelo personalizado que você já tem

Se você precisar criar um modelo personalizado para atender às suas necessidades, é altamente recomendável que você comece com um dos modelos disponíveis na página de exemplos de modelo de criação de cluster do Azure Service Fabric. Para personalizar a seção de modelo de cluster, consulte as diretrizes a seguir.

Se você já tiver um modelo personalizado, verifique se todos os três parâmetros relacionados ao certificado no modelo e no arquivo de parâmetros são nomeados da seguinte maneira e se os valores são nulos da seguinte maneira:

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },
$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 


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

Implantar um aplicativo em um cluster do Service Fabric no Windows

Para implantar um aplicativo em seu cluster, siga as etapas e orientações em Implantar e remover aplicativos usando o PowerShell.

Habilitar a criptografia de disco para os conjuntos de dimensionamento de máquina virtual criados anteriormente

Para habilitar a criptografia de disco para os conjuntos de escala de máquina virtual criados nas etapas anteriores, execute os seguintes 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>

Validar se a criptografia de disco está habilitada para uma escala de máquina virtual definida no Windows

Obtenha o status de um conjunto de escala de máquina virtual inteiro ou de qualquer instância em um conjunto de escala executando os comandos a seguir.


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

Além disso, você pode entrar no conjunto de escala da máquina virtual e certificar-se de que as unidades estão criptografadas.

Desabilitar a criptografia de disco para um conjunto de dimensionamento de máquina virtual em um cluster do Service Fabric

Desative a criptografia de disco para um conjunto de escala de máquina virtual executando os seguintes comandos. Observe que a desativação da criptografia de disco se aplica a todo o conjunto de dimensionamento da máquina virtual e não a uma instância individual.


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


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

Próximos passos

Neste ponto, você deve ter um cluster seguro e saber como habilitar e desabilitar a criptografia de disco para nós de cluster do Service Fabric e conjuntos de dimensionamento de máquina virtual. Para obter orientações semelhantes sobre nós de cluster do Service Fabric no Linux, consulte Criptografia de disco para Linux.