Partilhar via


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

Neste tutorial, você aprenderá a habilitar a criptografia de disco em nós de cluster do Azure Service Fabric no Linux. 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 serem observados ao habilitar a criptografia de disco em conjuntos de dimensionamento de máquinas virtuais de cluster do Service Fabric no Linux.
  • Etapas a serem seguidas antes de habilitar a criptografia de disco em nós de cluster do Service Fabric no Linux.
  • Etapas a serem seguidas para habilitar a criptografia de disco em nós de cluster do Service Fabric no Linux.

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. 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 escalas. 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 e a desativação da criptografia são suportadas para volumes de SO e dados em conjuntos de dimensionamento de máquinas virtuais no Linux.
  • As operações de reimagem e atualização de máquinas virtuais (VM) 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, é altamente recomendável usar um dos modelos na página de exemplos de modelo de criação de cluster do Azure Service Fabric.

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 estão nomeados da seguinte maneira. Certifique-se também de que os valores são nulos da seguinte forma:

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

Como apenas a criptografia de disco de dados é suportada para conjuntos de dimensionamento de máquina virtual no Linux, você deve adicionar um disco de dados usando um modelo do Gerenciador de Recursos. Atualize seu modelo para o provisionamento de disco de dados da seguinte maneira:

   
   "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 

Aqui está o comando equivalente da CLI. Altere os valores nas instruções declare para os valores apropriados. A CLI suporta todos os outros parâmetros suportados pelo comando 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 em uma instância do Linux

Antes de continuar com a criptografia em um conjunto de dimensionamento de máquina virtual, verifique se o disco de dados adicionado está montado corretamente. Entre na VM do cluster Linux e execute o comando LSBLK . A saída deve mostrar que o disco de dados adicionado na coluna Ponto de montagem.

Implantar aplicativo em um cluster do Service Fabric no Linux

Para implantar um aplicativo em seu cluster, siga as etapas e orientações em Guia de início rápido: implantar contêineres Linux no Service Fabric.

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 um conjunto de dimensionamento de máquina virtual no Linux

Para obter o status de um conjunto de escala de máquina virtual inteiro ou de qualquer instância em um conjunto de escala, execute os seguintes comandos. Além disso, você pode entrar na VM do cluster 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>

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 Windows.