Habilitar a criptografia de disco para os nós de cluster do Azure Service Fabric no Linux
Neste tutorial, você aprenderá de que modo habilitar a criptografia de disco para os nós de cluster do Azure Service Fabric no Linux. Será preciso seguir as etapas abaixo para cada um dos tipos de nós ou conjuntos de dimensionamento de máquinas virtuais. Para criptografar os nós, usaremos a funcionalidade do Azure Disk Encryption em conjuntos de dimensionamento de máquinas virtuais.
O guia abordará os seguintes tópicos:
- Conceitos importantes a serem considerados 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.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
Auto-registro
A versão prévia da criptografia de disco para o conjunto de dimensionamento de máquinas virtuais exige obter um auto-registro. Use as seguintes etapas:
- Execute o seguinte comando:
Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
- Aguarde cerca de 10 minutos até que a leitura do status seja Registrado. É possível 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 como conjunto de dimensionamento. Depois selecione a política de acesso EnabledForDiskEncryption no cofre de chaves usando o respectivo cmdlet do PowerShell. Também é possível definir a política usando a interface do usuário do Key Vault 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 da versão do Azure PowerShell. Veja abaixo os cmdlets do Azure Disk Encryption do conjunto de dimensionamento de máquinas virtuais para habilitar (definir) a criptografia, recuperar (obter) o status da criptografia e remover (desabilitar) a criptografia na instância do conjunto de dimensionamento.
Comando | Versão | Fonte |
---|---|---|
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 com suporte para criptografia de disco
- A criptografia para os conjuntos de dimensionamento de máquinas virtuais é compatível somente com os conjuntos de dimensionamento criados com os discos gerenciados. Não é suportado para conjuntos de escala de discos nativos (ou não gerenciados).
- Usar a criptografia e desabilitar a criptografia são ações compatíveis com o sistema operacional e os volumes de dados usados em conjuntos de dimensionamento de máquinas virtuais no Linux.
- As operações usadas para atualizar a VM (máquina virtual) e refazer imagem dela para os conjuntos de dimensionamento de máquinas virtuais não são compatíveis com a versão prévia atual.
Criar um 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.
Entrar no Azure
Entre usando os seguintes comandos:
Login-AzAccount
Set-AzContext -SubscriptionId <guid>
azure login
az account set --subscription $subscriptionId
Usar um modelo personalizado que você já tem
Caso precise criar um modelo personalizado, recomendamos usar um dos modelos disponíveis na página de Exemplos de modelos de criação de cluster do Azure Service Fabric.
Caso já tenha um modelo personalizado, verifique se os três parâmetros relacionados ao certificado usados no modelo e no arquivo de parâmetros estão nomeados conforme mostrado abaixo. Verifique também se os valores são nulos conforme mostrado abaixo:
"certificateThumbprint": {
"value": ""
},
"sourceVaultValue": {
"value": ""
},
"certificateUrlValue": {
"value": ""
},
Uma vez que somente a criptografia de disco de dados é compatível com os conjuntos de dimensionamento de máquinas virtuais no Linux, será preciso adicionar um disco de dados usando um modelo do Resource Manager. Atualize o modelo para provisionar o disco de dados conforme mostrado abaixo:
"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
Veja abaixo o comando equivalente da CLI. Altere os valores nas instruções declaradas usando os valores apropriados. A CLI é compatível com todos os outros parâmetros compatíveis com o comando anterior do PowerShell.
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 prosseguir com a criptografia em um conjunto de dimensionamento de máquinas virtuais, verifique se o disco de dados adicionado está montado de modo adequado. Entre na VM do cluster do Linux e execute o comando LSBLK. A saída deverá mostrar a coluna Ponto de Montagem com esse disco de dados adicionado.
Implantar o aplicativo em um cluster do Service Fabric no Linux
Para implantar um aplicativo em seu cluster, siga as etapas e diretrizes indicadas no artigo Guia de início rápido: implantar contêineres do Linux no Service Fabric.
Habilitar a criptografia de disco para os conjuntos de dimensionamento de máquinas virtuais criados anteriormente
A fim de habilitar a criptografia de disco para os conjuntos de dimensionamento de máquinas virtuais criados por meio das 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>
Verifique se a criptografia de disco está habilitada para um conjunto de dimensionamento de máquinas virtuais no Linux
Para obter o status de um conjunto de dimensionamento de máquinas virtuais completo ou de instâncias em um conjunto de dimensionamento, execute os comandos a seguir. Além disso, é possível entrar na VM do cluster do Linux e executar o comando LSBLK. A saída deverá mostrar a coluna Ponto de Montagem com o disco de dados adicionado e a coluna Tipo com a opção 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áquinas virtuais em um cluster do Service Fabric
Desabilite a criptografia de disco para um conjunto de dimensionamento de máquinas virtuais executando os comandos a seguir. Observe que desabilitar a criptografia de disco se aplica ao conjunto de dimensionamento de máquinas virtuais completo, em vez de somente uma instância individual.
$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $VmssName
az vmss encryption disable -g <resourceGroupName> -n <VMSS name>
Próximas etapas
Neste momento, você deve ter um cluster protegido e saber de que modo habilitar e desabilitar a criptografia de disco para os nós de cluster e conjuntos de dimensionamento de máquinas virtuais do Service Fabric. Para obter diretrizes semelhantes sobre os nós de cluster do Service Fabric no Linux, confira a Criptografia de disco para Windows.