Share via


Ativar a encriptação de discos para nós de cluster do Azure Service Fabric no Linux

Neste tutorial, irá aprender a ativar a encriptação de discos em nós de cluster do Azure Service Fabric no Linux. Terá de seguir estes passos para cada um dos tipos de nós e conjuntos de dimensionamento de máquinas virtuais. Para encriptar os nós, vamos utilizar a capacidade do Azure Disk Encryption em conjuntos de dimensionamento de máquinas virtuais.

O guia abrange os seguintes tópicos:

  • Principais conceitos a ter em conta ao ativar a encriptação de discos em conjuntos de dimensionamento de máquinas virtuais de cluster do Service Fabric no Linux.
  • Passos a seguir antes de ativar a encriptação de disco nos nós de cluster do Service Fabric no Linux.
  • Passos a seguir para ativar a encriptação de discos nos nós de cluster do Service Fabric no Linux.

Nota

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. 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 pré-visualização da encriptação de discos para o conjunto de dimensionamento de máquinas virtuais requer o auto-registo. Utilize os passos seguintes:

  1. Execute o seguinte comando:
    Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
    
  2. Aguarde cerca de 10 minutos até que o estado seja Registado. Pode verificar o estado ao executar 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 subscrição e região que o conjunto de dimensionamento. Em seguida, selecione a política de acesso EnabledForDiskEncryption no cofre de chaves com o respetivo cmdlet do PowerShell. Também pode definir a política com a IU Key Vault na 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 encriptação.

  3. Instale a versão mais recente do SDK do Azure a partir Azure PowerShell versão. Seguem-se os cmdlets do conjunto de dimensionamento de máquinas virtuais do Azure Disk Encryption para ativar a encriptação (definir), obter o estado de encriptação (obter) e remover (desativar) a encriptação na instância do conjunto de dimensionamento.

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 encriptação de discos

  • A encriptação para conjuntos de dimensionamento de máquinas virtuais é suportada apenas para conjuntos de dimensionamento criados com discos geridos. Não é suportado para conjuntos de dimensionamento de discos nativos (ou não geridos).
  • A encriptação e a desativação da encriptação são suportadas para o SO e volumes de dados em conjuntos de dimensionamento de máquinas virtuais no Linux.
  • As operações de recriação e atualização de máquinas virtuais (VMs) para conjuntos de dimensionamento de máquinas virtuais não são suportadas na pré-visualização atual.

Criar um novo cluster e ativar a encriptação de discos

Utilize os seguintes comandos para criar um cluster e ativar a encriptação de discos com 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

Utilizar o modelo personalizado que já tem

Se precisar de criar um modelo personalizado, recomendamos vivamente que utilize um dos modelos na página de exemplos de modelos de criação de clusters do Azure Service Fabric .

Se já tiver um modelo personalizado, verifique novamente se os três parâmetros relacionados com o certificado no modelo e no ficheiro de parâmetros têm o nome seguinte. Certifique-se também de que os valores são nulos da seguinte forma:

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

Uma vez que apenas a encriptação do disco de dados é suportada para conjuntos de dimensionamento de máquinas virtuais no Linux, tem de adicionar um disco de dados através de um modelo de Resource Manager. Atualize o modelo para aprovisionamento do disco de dados da seguinte forma:

   
   "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 

Eis o comando equivalente da CLI. Altere os valores nas instruções declare para os valores adequados. A CLI suporta todos os outros parâmetros suportados pelo comando do PowerShell anterior.

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

Montar um disco de dados numa instância do Linux

Antes de continuar com a encriptação num conjunto de dimensionamento de máquinas virtuais, certifique-se de que o disco de dados adicionado está corretamente montado. Inicie sessão na VM do cluster do Linux e execute o comando LSBLK . A saída deve mostrar o disco de dados adicionado na coluna Ponto de Montagem .

Implementar a aplicação num cluster do Service Fabric no Linux

Para implementar uma aplicação no cluster, siga os passos e a documentação de orientação em Início Rápido: Implementar contentores do Linux no Service Fabric.

Ativar a encriptação de discos para os conjuntos de dimensionamento de máquinas virtuais criados anteriormente

Para ativar a encriptação de discos para os conjuntos de dimensionamento de máquinas virtuais que criou através dos passos 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 encriptação de discos está ativada para um conjunto de dimensionamento de máquinas virtuais no Linux

Para obter o estado de um conjunto de dimensionamento de máquinas virtuais inteiro ou de qualquer instância num conjunto de dimensionamento, execute os seguintes comandos. Além disso, pode iniciar sessão na VM do cluster do Linux e executar o comando LSBLK . A saída deve mostrar o disco de dados adicionado na coluna Ponto de Montagem e a coluna Tipo deve ler Crypt.


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

Desativar a encriptação de disco para um conjunto de dimensionamento de máquinas virtuais num cluster do Service Fabric

Desative a encriptação de disco para um conjunto de dimensionamento de máquinas virtuais ao executar os seguintes comandos. Tenha em atenção que a desativação da encriptação do disco aplica-se a todo o conjunto de dimensionamento de máquinas virtuais 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>

Passos seguintes

Neste momento, deve ter um cluster seguro e saber como ativar e desativar a encriptação de discos para nós de cluster do Service Fabric e conjuntos de dimensionamento de máquinas virtuais. Para obter orientações semelhantes sobre nós de cluster do Service Fabric no Linux, veja Disk Encryption for Windows (Encriptação de Discos para Windows).