Linux VM での Azure Disk Encryption シナリオ

重要

Azure Disk Encryption は、 2028 年 9 月 15 日に廃止される予定です。 その日まで、中断することなく Azure Disk Encryption を引き続き使用できます。 2028 年 9 月 15 日に、ADE 対応ワークロードは引き続き実行されますが、暗号化されたディスクは VM の再起動後にロック解除に失敗し、サービスが中断されます。

新しい VM の ホストで暗号化 を使用するか、 コンフィデンシャル コンピューティング ワークロード用の OS ディスク暗号化を使用して機密 VM サイズ を検討します。 サービスの中断を回避するために、すべての ADE 対応 VM (バックアップを含む) を提供終了日より前にホストで暗号化に移行する必要があります。 詳細については、「 Azure Disk Encryption からホストでの暗号化への移行 」を参照してください。

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

Linux 仮想マシン (VM) に対する Azure Disk Encryption では、Linux の DM-Crypt 機能を使用して、OS ディスクとデータ ディスクの完全なディスク暗号化を提供します。 さらに、EncryptFormatAll 機能を使用すると、一時ディスクが暗号化されます。

Azure Disk Encryption は、ディスクの暗号化キーとシークレットを制御および管理できるように、Azure Key Vault と統合されています。 サービスの概要については、「Linux VM に対する Azure Disk Encryption」を参照してください。

前提条件

ディスク暗号化は、 サポートされている VM サイズとオペレーティング システムの仮想マシンにのみ適用できます。 また、次の前提条件を満たしている必要があります。

いずれの場合も、ディスクが暗号化される前に 、スナップショットを作成するか、バックアップを作成するか、またはその両方を作成します。 バックアップがあると、暗号化中に予期しないエラーが発生した場合に、回復オプションを使用できるようになります。 マネージド ディスクを含む VM では、暗号化する前にバックアップが必要になります。 バックアップを作成したら、Set-AzVMDiskEncryptionExtension cmdlet コマンドレットで -skipVmBackup パラメーターを指定して、マネージド ディスクを暗号化できます。 暗号化された VM のバックアップと復元方法の詳細については、Azure Backup に関する記事を参照してください。

制限

仮想マシンの暗号化にMicrosoft Entra IDでAzure Disk Encryptionを使用していた場合は、このオプションを引き続き使用して仮想マシンを暗号化する必要があります。 詳細については、「Microsoft Entra ID での Azure Disk Encryption (以前のリリース)」を参照してください。

Linux OS ボリュームを暗号化する場合、VM は使用できません。 暗号化の進行中は SSH サインインを避け、暗号化プロセス中にアクセスする必要がある開いているファイルがブロックされる問題を防ぎます。 進行状況を確認するには、Get-AzVMDiskEncryptionStatus PowerShell コマンドレットまたは vm encryption show CLI コマンドを使用します。 このプロセスでは、30 GB の OS ボリュームに対して数時間かかると予想され、さらにデータ ボリュームの暗号化に余分な時間がかかることがあります。 encrypt format all オプションを使用しない限り、データ ボリュームの暗号化時間はデータ ボリュームのサイズと量に比例します。

Linux VM での暗号化の無効化は、データ ボリュームに対してのみサポートされます。 OS ボリュームが暗号化されている場合、データ ボリュームまたは OS ボリュームで暗号化を無効にすることはできません。

Azure Disk Encryptionは、次の Linux シナリオ、機能、テクノロジでは機能しません。

  • Basic レベルの VM または従来の VM の作成方法を使用して作成された VM を暗号化する。
  • 一時ディスクを使用した v6 シリーズ VM の暗号化 (Ddsv6、Dldsv6、Edsv6、Dadsv6、Daldsv6、Eadsv6、Dpdsv6、Dpldsv6、Epdsv6、Endsv6)。 詳細については、「Azure の仮想マシンのサイズ」に記載されている各 VM サイズの個別のページを参照してください
  • V7 シリーズ以降の VM サイズの暗号化。
  • OS ドライブが暗号化されている場合に Linux VM の OS ドライブまたはデータ ドライブで暗号化を無効にする。
  • Linux Virtual Machine Scale Sets の OS ドライブを暗号化する。
  • Linux VM のカスタム イメージを暗号化する。
  • オンプレミスのキー管理システムとの統合。
  • Azure Files (共有ファイル システム)。
  • ネットワーク ファイル システム (NFS)。
  • 動的ボリューム。
  • エフェメラル OS ディスク。
  • DFS、GFS、DRDB、CephFS など (ただしこれらに限定されません) の共有/分散ファイル システムの暗号化。
  • 暗号化された VM を別のサブスクリプションまたはリージョンに移動する。
  • 暗号化された VM のイメージまたはスナップショットを作成し、それを使用してより多くの VM をデプロイする。
  • カーネル クラッシュ ダンプ (kdump)。
  • Oracle ACFS (ASM クラスター ファイル システム)。
  • ハイ パフォーマンス コンピューティング VM サイズストレージ最適化 VM サイズに搭載されているような NVMe ディスク。
  • "入れ子のマウント ポイント" (1 つのパス内に複数のマウント ポイントがあること。例: "/1stmountpoint/data/2ndmountpoint") を持つ VM。
  • OS フォルダーの上にデータ ドライブがマウントされている VM。
  • データ ディスクを使用してルート (OS ディスク) 論理ボリュームが拡張された VM。
  • OS ディスクのサイズ変更。
  • "L" ファミリーのストレージ最適化型 VM サイズシリーズ。
  • 書き込みアクセラレータ ディスクを備えた M シリーズの VM。
  • ホストでの暗号化またはユーザーが管理するキーによるサーバー側暗号化 (SSE + CMK) によって暗号化されたディスクを持つ VM に ADE を適用する。 SSE + CMK をデータ ディスクに適用すること、または SSE + CMK が構成されたデータ ディスクを ADE で暗号化された VM に追加することも、サポートされていないシナリオです。
  • ADE で暗号化された VM、または かつて ADE で暗号化された VM を、ホストでの暗号化または顧客管理キーを使用した サーバー側の暗号化 に移行する。
  • フェールオーバー クラスター内の VM を暗号化する。
  • Azure Ultra Disks の暗号化。
  • Premium SSD v2 ディスクの暗号化。
  • [シークレットには最長有効期間を指定する必要がある] ポリシーが DENY 効果を使用して有効になっているサブスクリプション内の VM の暗号化。

ツールをインストールし、Azure に接続する

Azure CLIとAzure PowerShellを使用して、Azure Disk Encryption有効にして管理できます。 そのためには、ツールをローカルにインストールし、Azure サブスクリプションに接続する必要があります。

Azure CLI 2.0 は、Azure リソースを管理するためのコマンドライン ツールです。 CLI は、データのクエリを柔軟に実行し、長時間実行される操作を非ブロッキング プロセスとしてサポートし、スクリプトが簡単になるように設計されています。 「Azure CLI のインストール」の手順に従って、これをローカルにインストールすることができます。

Azure CLI を使用して Azure アカウントにログインするには、az login コマンドを使用します。

az login

サインイン先のテナントを選択する場合は、次を使用してください。

az login --tenant <tenant>

複数のサブスクリプションがあり、特定のサブスクリプションを指定する場合は、az account list を使用してサブスクリプションの一覧を表示し、az account set を使用して指定します。

az account list
az account set --subscription "<subscription name or ID>"

詳しくは、Azure CLI 2.0 の概要に関する記事をご覧ください。

既存または実行中の Linux VM に対して暗号化を有効にする

このシナリオでは、Resource Manager テンプレート、PowerShell コマンドレット、または CLI コマンドを使用して、暗号化を有効にすることができます。 仮想マシンを拡張するためのスキーマの情報が必要な場合は、Linux 用 Azure Disk Encryption 拡張機能に関する記事を参照してください。

重要

Azure Disk Encryptionを有効にする前に、スナップショットを作成するか、マネージド ディスク ベースの VM インスタンスをバックアップします。 ポータルからマネージド ディスクのスナップショットを取得することも、Azure Backupを使用することもできます。 バックアップがあると、暗号化中に予期しないエラーが発生した場合に、回復オプションを使用できるようになります。 バックアップを作成した後、Set-AzVMDiskEncryptionExtension コマンドレットを使用して、-skipVmBackup パラメーターを指定してマネージド ディスクを暗号化します。 Set-AzVMDiskEncryptionExtension コマンドは、バックアップを作成してこのパラメーターを指定するまで、マネージド ディスク ベースの VM に対して失敗します。

暗号化を有効または無効にすると、VM が再起動する場合があります。

暗号化を無効にするには、「暗号化を無効にし、暗号化拡張機能を削除する」を参照してください。

暗号化された VHD でのディスク暗号化は、Azure CLI コマンド ライン ツールをインストールして使用することで有効化できます。 これは、Azure Cloud Shell を使用してブラウザーで使用することも、ローカル コンピューターにインストールして PowerShell セッションで使用することもできます。 Azure 内にある既存または実行中の Linux VM で暗号化を有効にするには、次の CLI コマンドを使用します。

az vm encryption enable コマンドを使用して、Azure で実行中の仮想マシンで暗号化を有効にします。

  • 実行中の VM を暗号化する:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • KEK を使用して実行中の VM を暗号化する:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|Data]
    

    disk-encryption-keyvault パラメーターの値の構文は、次のように、完全な識別子文字列です: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    key-encryption-key パラメーターの値の構文は、次のように、KEK の完全な URI です: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • ディスクが暗号化されていることを確認する: VM の暗号化の状態を確認するには、az vm encryption show コマンドを使用します。

    az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    

暗号化を無効にするには、「暗号化を無効にし、暗号化拡張機能を削除する」を参照してください。

Linux VM 上のデータ ディスクに対して EncryptFormatAll 機能を使用する

EncryptFormatAll パラメーターを使用すると、Linux データ ディスクを暗号化する時間が短縮されます。 特定の条件を満たすパーティションは、現在のファイル システムと共に書式設定され、コマンドの実行前の場所に再マウントされます。 条件を満たすデータ ディスクを除外する場合は、コマンドの実行前にそのディスクをマウント解除できます。

このコマンドを実行すると、Azure Disk Encryption以前にマウントされていたドライブをフォーマットし、現在は空のドライブの上に暗号化レイヤーを開始します。 このオプションを選択すると、AZURE DISK ENCRYPTIONは VM に接続されている一時ディスクも暗号化します。 一時ディスクがリセットされた場合、Azure Disk Encryption は次のタイミングで VM の一時ディスクを再フォーマットし、再暗号化します。 リソース ディスクが暗号化されると、Microsoft Azure Linux エージェントはリソース ディスクを管理してスワップ ファイルを有効にすることはできませんが、スワップ ファイルを手動で構成できます。

警告

VM のデータ ボリュームに必要なデータが存在する場合は、EncryptFormatAll を使用しないでください。 ディスクをマウント解除することで、そのディスクを暗号化の対象から除外できます。 運用環境の VM で試す前に、まずテスト VM で EncryptFormatAll パラメーターを試して、機能パラメーターとその影響を理解してください。 EncryptFormatAll オプションは、データ ディスクをフォーマットし、そのディスク上のすべてのデータが失われます。 先に進む前に、除外するディスクが正しくマウント解除されていることを確認します。

暗号化の設定の更新中にこのパラメーターを設定すると、実際の暗号化の前に再起動が行われる可能性があります。 この場合は、フォーマットしないディスクを fstab ファイルから削除する必要があります。 同様に、暗号化操作を開始する前に、暗号化フォーマットするパーティションを fstab ファイルに追加する必要があります。

EncryptFormatAll 条件

パーティションが以下の条件をすべて満たしている場合に限り、このパラメーターはすべてのパーティションを確認して暗号化します。

  • ルート/OS/ブート パーティションではない
  • まだ暗号化されていない
  • BEK ボリュームではない
  • RAID ボリュームではない
  • LVM ボリュームではない
  • マウントされている

RAID または LVM ボリュームではなく RAID または LVM ボリュームを構成するディスクを暗号化します。

az vm encryption enable コマンドを使用して、Azure で実行中の仮想マシンで暗号化を有効にします。

  • EncryptFormatAll を使用して実行中の VM を暗号化する:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
    

EncryptFormatAll パラメーターを論理ボリューム マネージャー (LVM) で使用する

LVM-on-crypt のセットアップをお勧めします。 LVM on crypt 構成の詳細な手順については、ADE で暗号化されたデバイスでの LVM と RAID の構成に関する記事を参照してください。

お客様が暗号化した VHD と暗号化キーから作成された新しい VM

このシナリオでは、PowerShell コマンドレットまたは CLI コマンドを使用して暗号化を有効にすることができます。

Azure Disk Encryptionサンプル スクリプトの手順を使用して、Azure用に事前に暗号化されたイメージを準備します。 イメージを作成したら、次のセクションの手順に従って、暗号化された Azure VM を作成できます。

重要

Azure Disk Encryptionを有効にする前に、スナップショットを作成するか、マネージド ディスク ベースの VM インスタンスをバックアップします。 ポータルからマネージド ディスクのスナップショットを取得することも、Azure Backupを使用することもできます。 バックアップがあると、暗号化中に予期しないエラーが発生した場合に、回復オプションを使用できるようになります。 バックアップを作成した後、Set-AzVMDiskEncryptionExtension コマンドレットを使用して、 -skipVmBackup パラメーターを指定してマネージド ディスクを暗号化します。 Set-AzVMDiskEncryptionExtension コマンドは、バックアップを作成してこのパラメーターを指定するまで、マネージド ディスク ベースの VM に対して失敗します。

暗号化を有効または無効にすると、VM が再起動する場合があります。

Azure PowerShell を使用して事前に暗号化された VHD で VM を暗号化する

PowerShell コマンドレット Set-AzVMOSDisk を使用して、暗号化された VHD でディスク暗号化を有効にすることができます。 この例では、一般的ないくつかのパラメーターを示します。

$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Linux -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"

新しく追加されたデータ ディスクで暗号化を有効にする

az vm disk attach を使用して、または Azure Portal から新しいデータ ディスクを追加できます。 暗号化の前に、新しく接続されたデータ ディスクをマウントする必要があります。 暗号化の進行中はドライブが使用できないため、データ ドライブの暗号化を要求する必要があります。

VM が以前に "All" で暗号化されていた場合、 --volume-type パラメーターは "All" のままである必要があります。 All には OS とデータ ディスクの両方が含まれます。 VM が以前にボリュームの種類が "OS" で暗号化されていた場合は、OS と新しいデータ ディスクの両方が含まれるように、 --volume-type パラメーターを "All" に変更します。 VM が "Data" のボリュームの種類のみで暗号化されている場合は、次の例に示すように "Data" のまま残すことができます。 新しいデータ ディスクを VM に追加してアタッチするだけでは、暗号化の準備としては不十分です。 暗号化を有効にする前に、VM 内に新しく接続されたディスクをフォーマットして適切にマウントする必要もあります。 Linux では、/etc/fstabを使用してにディスクをマウントする必要があります。

PowerShell 構文とは異なり、CLI では、暗号化を有効にする際に一意のシーケンス バージョンを指定する必要はありません。 CLI では独自の一意のシーケンス バージョン値が自動的に生成され、使用されます。

  • 実行中の VM のデータ ボリュームを暗号化する:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • KEK を使用して実行中の VM のデータ ボリュームを暗号化します。

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
    

暗号化を無効にし、暗号化拡張機能を削除する

Azure Disk Encryptionを無効にしたり、Azure Disk Encryption拡張機能を削除したりすることもできます。 無効化と削除は、2 つの異なる操作です。

ADE を削除するには、最初に暗号化を無効にしてから、拡張機能を削除します。 ADE を無効にせずに暗号化拡張機能を削除した場合、ディスクは暗号化されたままになります。 拡張機能を削除 した後 に暗号化を無効にした場合、拡張機能は (復号化操作を実行するために) 再インストールされ、2 回目に削除する必要があります。

警告

OS ディスクが暗号化されている場合、暗号化を無効にすることはできません。 (OS ディスクは、元の暗号化操作で volumeType=ALL または volumeType=OSを指定した場合に暗号化されます)。

暗号化の無効化は、データ ディスクが暗号化されているが OS ディスクが暗号化されていない場合にのみ機能します。

暗号化を無効にする

暗号化を無効にするには、Azure PowerShell、Azure CLI、またはResource Manager テンプレートを使用します。 暗号化を無効にしても、拡張機能は削除されません (暗号化 拡張機能の削除を参照)。

  • Azure PowerShell を使用してディスク暗号化を無効にする: 暗号化を無効にするには、Disable-AzVMDiskEncryption コマンドレットを使用します。

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
    
  • Azure CLI を使用して暗号化を無効にする: 暗号化を無効にするには、az vm encryption disable コマンドを使用します。

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
    
  • Resource Manager テンプレートを使用して暗号化を無効にする:

    1. Linux VM の実行中にディスク暗号化を無効にするテンプレートから、Azureにデプロイを選択します。
    2. サブスクリプション、リソース グループ、場所、VM、ボリュームの種類、法律条項、および契約を選択します。
    3. 実行中の Linux VM でディスク暗号化を無効にするには、[ 購入 ] を選択します。

警告

復号化が開始された後は、プロセスに干渉しないでください。

復号化の進行状況を確認するには、 Get-AzVMDiskEncryptionStatus PowerShell コマンドレットまたは az vm encryption show CLI コマンドを使用します。 暗号化解除プロセスが完了したら、暗号化拡張機能を削除できます。

暗号化拡張機能を削除する

ディスクの暗号化を解除し、暗号化拡張機能を削除したい場合、拡張機能を削除するに、暗号化を無効にする必要があります。「暗号化を無効にする」を参照してください。

暗号化拡張機能を削除するには、Azure PowerShellまたはAzure CLIを使用します。

  • Azure PowerShellを使用して暗号化拡張機能を削除する:Remove-AzVMDiskEncryptionExtension コマンドレットを使用します。

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Azure CLIを使用して暗号化拡張機能を削除します。az vm extension delete コマンドを使用します。

    az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"
    

次のステップ