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:
- Execute o seguinte comando:
Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
- 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
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
Instale a versão mais recente da CLI do Azure, que tem os novos comandos de criptografia.
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.