Udostępnij za pośrednictwem


Weryfikowanie stanu szyfrowania dla systemu Linux

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Zakresem tego artykułu jest zweryfikowanie stanu szyfrowania maszyny wirtualnej przy użyciu różnych metod: witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia platformy Azure lub systemu operacyjnego maszyny wirtualnej.

Stan szyfrowania można sprawdzić podczas lub po szyfrowaniu, wykonując następujące czynności:

  • Sprawdzanie dysków dołączonych do określonej maszyny wirtualnej.
  • Zapytanie o ustawienia szyfrowania na każdym dysku, niezależnie od tego, czy dysk jest dołączony, czy odłączony.

Ten scenariusz dotyczy rozszerzeń dwuprzepustowych i jednoprzepustowych usługi Azure Disk Encryption. Dystrybucje systemu Linux są jedynym środowiskiem dla tego scenariusza.

Uwaga

Używamy zmiennych w całym artykule. Zastąp wartości odpowiednio.

Portal

W witrynie Azure Portal w sekcji Rozszerzenia wybierz rozszerzenie Azure Disk Encryption na liście. Informacje o komunikacie o stanie wskazują bieżący stan szyfrowania:

Sprawdzanie portalu z wyróżnionym stanem, wersją i komunikatem o stanie

Na liście rozszerzeń zobaczysz odpowiednią wersję rozszerzenia usługi Azure Disk Encryption. Wersja 0.x odpowiada podwójnemu przekazaniom usługi Azure Disk Encryption, a wersja 1.x odpowiada pojedynczemu przekazaniom usługi Azure Disk Encryption.

Aby uzyskać więcej szczegółów, wybierz rozszerzenie, a następnie wybierz pozycję Wyświetl szczegółowy stan. Szczegółowy stan procesu szyfrowania jest wyświetlany w formacie JSON.

Sprawdzanie portalu z podświetlonym linkiem 'Wyświetl szczegółowy stan'

Szczegółowy stan w formacie JSON

Innym sposobem weryfikacji stanu szyfrowania jest zapoznanie się z sekcją Ustawienia dysku.

Stan szyfrowania dysków systemu operacyjnego i dysków danych

Uwaga

Ten stan oznacza, że dyski mają oznaczone ustawienia szyfrowania, a nie, że zostały one rzeczywiście zaszyfrowane na poziomie systemu operacyjnego.

Zgodnie z projektem dyski są najpierw oznaczane i szyfrowane później. Jeśli proces szyfrowania zakończy się niepowodzeniem, dyski mogą zostać oznaczone, ale nie są szyfrowane.

Aby sprawdzić, czy dyski są naprawdę zaszyfrowane, możesz dokładnie sprawdzić szyfrowanie każdego dysku na poziomie systemu operacyjnego.

PowerShell

Ogólny stan szyfrowania zaszyfrowanej maszyny wirtualnej można zweryfikować przy użyciu następujących poleceń programu PowerShell:

   $VMNAME="VMNAME"
   $RGNAME="RGNAME"
   Get-AzVmDiskEncryptionStatus -ResourceGroupName  ${RGNAME} -VMName ${VMNAME}

Ogólny stan szyfrowania w programie PowerShell

Ustawienia szyfrowania z każdego dysku można przechwycić przy użyciu następujących poleceń programu PowerShell.

Pojedynczy przebieg

W jednym przebiegu ustawienia szyfrowania są oznaczane na każdym z dysków (system operacyjny i dane). Ustawienia szyfrowania dysku systemu operacyjnego można przechwycić w jednym przekazaniu w następujący sposób:

$RGNAME = "RGNAME"
$VMNAME = "VMNAME"

$VM = Get-AzVM -Name ${VMNAME} -ResourceGroupName ${RGNAME}
 $Sourcedisk = Get-AzDisk -ResourceGroupName ${RGNAME} -DiskName $VM.StorageProfile.OsDisk.Name
 Write-Host "============================================================================================================================================================="
 Write-Host "Encryption Settings:"
 Write-Host "============================================================================================================================================================="
 Write-Host "Enabled:" $Sourcedisk.EncryptionSettingsCollection.Enabled
 Write-Host "Version:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettingsVersion
 Write-Host "Source Vault:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SourceVault.Id
 Write-Host "Secret URL:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SecretUrl
 Write-Host "Key URL:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.KeyEncryptionKey.KeyUrl
 Write-Host "============================================================================================================================================================="

Ustawienia szyfrowania dla dysku systemu operacyjnego

Jeśli dysk nie ma sygnatur ustawień szyfrowania, dane wyjściowe będą puste:

Puste dane wyjściowe

Użyj następujących poleceń, aby przechwycić ustawienia szyfrowania dla dysków danych:

$RGNAME = "RGNAME"
$VMNAME = "VMNAME"

$VM = Get-AzVM -Name ${VMNAME} -ResourceGroupName ${RGNAME}
 clear
 foreach ($i in $VM.StorageProfile.DataDisks|ForEach-Object{$_.Name})
 {
 Write-Host "============================================================================================================================================================="
 Write-Host "Encryption Settings:"
 Write-Host "============================================================================================================================================================="
 Write-Host "Checking Disk:" $i
 $Disk=(Get-AzDisk -ResourceGroupName ${RGNAME} -DiskName $i)
 Write-Host "Encryption Enable: " $Sourcedisk.EncryptionSettingsCollection.Enabled
 Write-Host "Encryption KeyEncryptionKey: " $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.KeyEncryptionKey.KeyUrl;
 Write-Host "Encryption DiskEncryptionKey: " $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SecretUrl;
 Write-Host "============================================================================================================================================================="
 }

Ustawienia szyfrowania dysków danych

Podwójne przejście

W przypadku podwójnego przekazywania ustawienia szyfrowania są oznaczane w modelu maszyny wirtualnej, a nie na każdym dysku.

Aby sprawdzić, czy ustawienia szyfrowania zostały zastosowane w dwóch przebiegach, użyj następujących poleceń:

$RGNAME = "RGNAME"
$VMNAME = "VMNAME"

$vm = Get-AzVm -ResourceGroupName ${RGNAME} -Name ${VMNAME};
$Sourcedisk = Get-AzDisk -ResourceGroupName ${RGNAME} -DiskName $VM.StorageProfile.OsDisk.Name
clear
Write-Host "============================================================================================================================================================="
Write-Host "Encryption Settings:"
Write-Host "============================================================================================================================================================="
Write-Host "Enabled:" $Sourcedisk.EncryptionSettingsCollection.Enabled
Write-Host "Version:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettingsVersion
Write-Host "Source Vault:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SourceVault.Id
Write-Host "Secret URL:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SecretUrl
Write-Host "Key URL:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.KeyEncryptionKey.KeyUrl
Write-Host "============================================================================================================================================================="

Nieprzyłączone dyski

Sprawdź ustawienia szyfrowania dysków, które nie są dołączone do maszyny wirtualnej.

dyski zarządzane

$Sourcedisk = Get-AzDisk -ResourceGroupName ${RGNAME} -DiskName ${TARGETDISKNAME}
Write-Host "============================================================================================================================================================="
Write-Host "Encryption Settings:"
Write-Host "============================================================================================================================================================="
Write-Host "Enabled:" $Sourcedisk.EncryptionSettingsCollection.Enabled
Write-Host "Version:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettingsVersion
Write-Host "Source Vault:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SourceVault.Id
Write-Host "Secret URL:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.DiskEncryptionKey.SecretUrl
Write-Host "Key URL:" $Sourcedisk.EncryptionSettingsCollection.EncryptionSettings.KeyEncryptionKey.KeyUrl
Write-Host "============================================================================================================================================================="

Azure CLI

Ogólny stan szyfrowania zaszyfrowanej maszyny wirtualnej można zweryfikować przy użyciu następujących poleceń interfejsu wiersza polecenia platformy Azure:

VMNAME="VMNAME"
RGNAME="RGNAME"
az vm encryption show --name ${VMNAME} --resource-group ${RGNAME} --query "substatus"

Ogólny stan szyfrowania z interfejsu wiersza polecenia platformy Azure

Pojedyncze przetwarzanie

Ustawienia szyfrowania dla każdego dysku można zweryfikować przy użyciu następujących poleceń interfejsu wiersza polecenia platformy Azure:

az vm encryption show -g ${RGNAME} -n ${VMNAME} --query "disks[*].[name, statuses[*].displayStatus]"  -o table

Ustawienia szyfrowania danych

Ważne

Jeśli dysk nie ma sygnatur ustawień szyfrowania, zobaczysz, że tekst Dysk nie jest zaszyfrowany.

Użyj następujących poleceń, aby uzyskać szczegółowy stan i ustawienia szyfrowania.

Dysk systemu operacyjnego:

RGNAME="RGNAME"
VMNAME="VNAME"

disk=`az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.osDisk.name -o tsv`
for disk in $disk; do \
echo "============================================================================================================================================================="
echo -ne "Disk Name: "; az disk show -g ${RGNAME} -n ${disk} --query name -o tsv; \
echo -ne "Encryption Enabled: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.enabled -o tsv; \
echo -ne "Version: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.encryptionSettingsVersion -o tsv; \
echo -ne "Disk Encryption Key: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.secretUrl -o tsv; \
echo -ne "key Encryption Key: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.encryptionSettings[].keyEncryptionKey.keyUrl -o tsv; \
echo "============================================================================================================================================================="
done

Szczegółowy stan i ustawienia szyfrowania dysku systemu operacyjnego

Dyski danych:

RGNAME="RGNAME"
VMNAME="VMNAME"
az vm encryption show --name ${VMNAME} --resource-group ${RGNAME} --query "substatus"

for disk in `az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks[].name -o tsv`; do \
echo "============================================================================================================================================================="; \
echo -ne "Disk Name: "; az disk show -g ${RGNAME} -n ${disk} --query name -o tsv; \
echo -ne "Encryption Enabled: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.enabled -o tsv; \
echo -ne "Version: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.encryptionSettingsVersion -o tsv; \
echo -ne "Disk Encryption Key: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.secretUrl -o tsv; \
echo -ne "key Encryption Key: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.encryptionSettings[].keyEncryptionKey.keyUrl -o tsv; \
echo "============================================================================================================================================================="
done

Szczegółowy stan i ustawienia szyfrowania dysków danych

Podwójna passa

az vm encryption show --name ${VMNAME} --resource-group ${RGNAME} -o table

Ogólne ustawienia szyfrowania dla podwójnego przejścia za pośrednictwem Azure CLI

Możesz również sprawdzić ustawienia szyfrowania w profilu magazynu modelu VM dysku systemu operacyjnego:

disk=`az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.osDisk.name -o tsv`
for disk in $disk; do \
echo "============================================================================================================================================================="; \
echo -ne "Disk Name: "; az disk show -g ${RGNAME} -n ${disk} --query name -o tsv; \
echo -ne "Encryption Enabled: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.enabled -o tsv; \
echo -ne "Version: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.encryptionSettingsVersion -o tsv; \
echo -ne "Disk Encryption Key: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.secretUrl -o tsv; \
echo -ne "key Encryption Key: "; az disk show -g ${RGNAME} -n ${disk} --query encryptionSettingsCollection.encryptionSettings[].keyEncryptionKey.keyUrl -o tsv; \
echo "============================================================================================================================================================="
done

Profil maszyny wirtualnej dla podwójnego przesyłania przez Azure CLI

Nieprzyłączone dyski

Sprawdź ustawienia szyfrowania dysków, które nie są dołączone do maszyny wirtualnej.

dyski zarządzane

RGNAME="RGNAME"
TARGETDISKNAME="DISKNAME"
echo "============================================================================================================================================================="
echo -ne "Disk Name: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query name -o tsv; \
echo -ne "Encryption Enabled: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.enabled -o tsv; \
echo -ne "Version: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.encryptionSettingsVersion -o tsv; \
echo -ne "Disk Encryption Key: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.encryptionSettings[].diskEncryptionKey.secretUrl -o tsv; \
echo -ne "key Encryption Key: "; az disk show -g ${RGNAME} -n ${TARGETDISKNAME} --query encryptionSettingsCollection.encryptionSettings[].keyEncryptionKey.keyUrl -o tsv; \
echo "============================================================================================================================================================="

dyski niezarządzane

Dyski niezarządzane to pliki VHD, które są przechowywane jako obiekty blob typu stronicowego w kontach magazynowych Azure.

Aby uzyskać szczegółowe informacje dotyczące określonego dysku, należy podać następujące informacje:

  • Identyfikator konta magazynu zawierającego dysk.
  • Ciąg połączenia dla tego konkretnego konta magazynowego.
  • Nazwa kontenera, który przechowuje dysk.
  • Nazwa dysku.

To polecenie wyświetla listę wszystkich identyfikatorów dla wszystkich kont przechowywania.

az storage account list --query [].[id] -o tsv

Identyfikatory kont magazynu są wymienione w następującym formularzu:

/subscriptions/<subscription id>/resourceGroups/<nazwa grupy zasobów>/providers/Microsoft.Storage/storageAccounts/<nazwa konta magazynu>

Wybierz odpowiedni identyfikator i zapisz go w zmiennej:

id="/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name>"

To polecenie pobiera łańcuch połączenia dla jednego określonego konta magazynowego i zapisuje go w zmiennej.

ConnectionString=$(az storage account show-connection-string --ids $id --query connectionString -o tsv)

Następujące polecenie wyświetla listę wszystkich kontenerów na koncie magazynu:

az storage container list --connection-string $ConnectionString --query [].[name] -o tsv

Kontener używany dla dysków ma zwykle nazwę "vhds".

Zapisz nazwę kontenera w zmiennej:

ContainerName="name of the container"

Użyj tego polecenia, aby wyświetlić listę wszystkich obiektów blob w określonym kontenerze:

az storage blob list -c ${ContainerName} --connection-string $ConnectionString --query [].[name] -o tsv

Wybierz dysk, który chcesz wykonać zapytanie i zapisz jego nazwę w zmiennej:

DiskName="diskname.vhd"

Wykonaj zapytanie dotyczące ustawień szyfrowania dysków:

az storage blob show -c ${ContainerName} --connection-string ${ConnectionString} -n ${DiskName} --query metadata.DiskEncryptionSettings

System operacyjny

Sprawdź, czy partycje dysku danych są szyfrowane (a dysk systemu operacyjnego nie jest).

Gdy partycja lub dysk jest zaszyfrowana, jest wyświetlana jako typ kryptografii . Gdy nie jest szyfrowany, jest wyświetlany jako część/typ dysku .

sudo lsblk

Warstwa kryptografii systemu operacyjnego dla partycji

Więcej szczegółów można uzyskać, korzystając z następującego wariantu lsblk .

Zobaczysz warstwę typu crypt , która jest instalowana przez rozszerzenie. W poniższym przykładzie przedstawiono woluminy logiczne i normalne dyski z crypto_LUKS FSTYPE.

sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT

Warstwa kryptografii systemu operacyjnego dla woluminów logicznych i dysków normalnych

W ramach dodatkowego kroku możesz sprawdzić, czy dysk danych ma załadowane klucze:

sudo cryptsetup luksDump /dev/VGNAME/LVNAME
sudo cryptsetup luksDump /dev/sdd1

Możesz również sprawdzić, które urządzenia dm są wyświetlane jako kryptograficzne:

sudo dmsetup ls --target crypt

Następne kroki