次の方法で共有


Linux の暗号化の状態を確認する

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

この記事では、Azure portal、PowerShell、Azure CLI、仮想マシン (VM) のオペレーティング システムを使用した各種方法によって、仮想マシンの暗号化の状態を確認します。

暗号化の状態は、次のいずれかの方法により暗号化中または暗号化後に確認することができます。

  • 特定の VM にアタッチされたディスクを確認する。
  • 各ディスクの暗号化の設定を照会する。この方法は、ディスクがアタッチされているかどうかに関係しません。

このシナリオは、Azure Disk Encryption のデュアルパス拡張機能とシングルパス拡張機能を対象としています。 このシナリオに該当する環境は、Linux ディストリビューションのみです。

注意

この記事では、変数を使用しています。 値は適宜置き換えてください。

ポータル

Azure portal の [拡張機能] セクションで、一覧から Azure Disk Encryption 拡張機能を選択します。 [ステータス メッセージ] の情報に、現在の暗号化の状態が示されます。

ポータルでの確認 (状態、バージョン、ステータス メッセージを強調表示)

拡張機能の一覧には、対応する Azure Disk Encryption 拡張機能のバージョンが表示されます。 バージョン 0.x は Azure Disk Encryption デュアル パスに、バージョン 1.x は Azure Disk Encryption シングル パスに対応します。

拡張機能を選び、 [詳細な状態の表示] を選択すると、さらに詳しい情報が得られます。 暗号化プロセスの詳細な状態が、JSON 形式で表示されます。

ポータルでの確認 ([詳細な状態の表示] リンクを強調表示)

JSON 形式の詳細な状態

暗号化の状態は、 [ディスクの設定] セクションを見て確認することもできます。

OS ディスクとデータ ディスクの暗号化状態

Note

この状態は、ディスクに暗号化の設定がスタンプされていることを意味するものであり、実際に OS レベルで暗号化されているという意味ではありません。

設計上、ディスクはまずスタンプされ、その後暗号化されます。 暗号化プロセスに失敗した場合、ディスクはスタンプされているものの暗号化されていない状態になります。

実際にディスクが暗号化されているかどうかを確かめるために、OS レベルで各ディスクの暗号化をダブルチェックしてください。

PowerShell

暗号化された VM の "全体的な" 暗号化の状態は、次の PowerShell コマンドを使用して確認できます。

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

PowerShell で確認した全体的な暗号化状態

各ディスクの暗号化の設定を取得するには、次の PowerShell コマンドを使用します。

シングル パス

シングル パスでは、各ディスク (OS とデータ) に暗号化設定がスタンプされます。 シングル パスの OS ディスクの暗号化設定は、次のようにして取得できます。

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

OS ディスクの暗号化設定

ディスクに暗号化の設定がスタンプされていない場合、出力は空になります。

空の出力

データ ディスクの暗号化設定を取得するには、次のコマンドを使用します。

$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 "============================================================================================================================================================="
 }

データ ディスクの暗号化設定

デュアル パス

デュアル パスでは、暗号化の設定は、個々のディスクではなく VM モデルにスタンプされます。

暗号化設定がデュアル パスでスタンプされていることを確認するには、次のコマンドを使用します。

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

アタッチされていないディスク

VM にアタッチされていないディスクの暗号化の設定を確認します。

マネージド ディスク

$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

暗号化された VM の "全体的な" 暗号化の状態は、次の Azure CLI コマンドを使用して確認できます。

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

Azure CLI での全体的な暗号化状態

シングル パス

各ディスクの暗号化の設定を確認するには、次の Azure CLI コマンドを使用します。

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

データ暗号化設定

重要

ディスクに暗号化の設定がスタンプされていない場合、 "ディスク暗号化なし" というテキストが表示されます。

詳細な状態と暗号化設定を取得するには、次のコマンドを使用します。

OS ディスク:

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

OS の詳細な状態と暗号化設定

データ ディスク:

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

データ ディスクの詳細な状態と暗号化設定

デュアル パス

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

Azure CLI で取得したデュアル パスの全体的な暗号化設定

暗号化設定は、OS ディスクの VM モデル ストレージ プロファイルでも確認できます。

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

Azure CLI で取得したデュアル パスの VM プロファイル

アタッチされていないディスク

VM にアタッチされていないディスクの暗号化の設定を確認します。

マネージド ディスク

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 "============================================================================================================================================================="

非管理対象ディスク

アンマネージド ディスクは、Azure Storage アカウントでページ BLOB として格納された VHD ファイルです。

特定のディスクの詳細を把握するには、次の情報を指定する必要があります。

  • ディスクが含まれるストレージ アカウントの ID。
  • 対象となる特定のストレージ アカウントの接続文字列。
  • ディスクを格納するコンテナーの名前。
  • ディスク名。

次のコマンドは、すべてのストレージ アカウントの ID を一覧表示するものです。

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

ストレージ アカウントの ID が、次の形式で一覧表示されます。

/subscriptions/<サブスクリプション ID>/resourceGroups/<リソース グループ名>/providers/Microsoft.Storage/storageAccounts/<ストレージ アカウント名>

適切な ID を選択して変数に格納します。

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

次のコマンドは、ある特定のストレージ アカウントの接続文字列を取得して変数に格納するものです。

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

次のコマンドは、ストレージ アカウントにあるすべてのコンテナーを一覧表示するものです。

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

ディスクに使用されるコンテナーには通常、"vhds" という名前が付けられます。

そのコンテナー名を変数に格納します。

ContainerName="name of the container"

特定のコンテナーにあるすべての BLOB を一覧表示するには、次のコマンドを使用します。

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

照会したいディスクを選んで、その名前を変数に格納します。

DiskName="diskname.vhd"

ディスクの暗号化設定を照会します。

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

オペレーティング システム

データ ディスクのパーティションが暗号化されている (かつ OS ディスクが暗号化されていない) かどうかを確認します。

暗号化されているパーティションまたはディスクは、 "crypt" タイプとして表示されます。 暗号化されていない場合は、 "part" または "disk" タイプとして表示されます。

sudo lsblk

パーティションの OS crypt レイヤー

以下の lsblk バリアントを使用すると、さらに詳しい情報を取得できます。

拡張機能によってマウントされた crypt タイプ レイヤーが表示されます。 crypto_LUKS FSTYPE の通常のディスクと論理ボリュームの例を、次に示します。

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

論理ボリュームと通常のディスクの OS crypt レイヤー

さらに、データ ディスクにキーが読み込まれているかどうかも確認できます。

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

また、どの dm デバイスが crypt として表示されるかを調べることもできます。

sudo dmsetup ls --target crypt

次のステップ