Windows および Linux IaaS VM の Azure ディスク暗号化Azure Disk Encryption for Windows and Linux IaaS VMs

Microsoft Azure では、データのプライバシーおよびデータ主権の確保に積極的に取り組んでおり、暗号化キーの暗号化、制御、管理、また、データ アクセスの制御と監査を行うための幅広い先進テクノロジを介して Azure でホストされるデータを制御できます。Microsoft Azure is strongly committed to ensuring your data privacy, data sovereignty and enables you to control your Azure hosted data through a range of advanced technologies to encrypt, control and manage encryption keys, control & audit access of data. そのため、Azure の顧客はビジネス ニーズに最適なソリューションを柔軟に選択することができます。This provides Azure customers the flexibility to choose the solution that best meets their business needs. このドキュメントでは、"Windows および Linux IaaS VM の Azure Disk Encryption" という新しいテクノロジ ソリューションを紹介します。このソリューションは、組織のセキュリティおよびコンプライアンス コミットメントを満たすためのデータの保護に役立ちます。In this paper, we will introduce you to a new technology solution “Azure Disk Encryption for Windows and Linux IaaS VM’s” to help protect and safeguard your data to meet your organizational security and compliance commitments. ここでは、サポートされているシナリオやユーザー エクスペリエンスを含む、Azure Disk Encryption 機能の使用方法に関する詳細なガイダンスを提供します。The paper provides detailed guidance on how to use the Azure disk encryption features including the supported scenarios and the user experiences.

注意

特定の推奨事項により、データ、ネットワーク、またはコンピューティング リソースの使用量が増え、その結果、ライセンスまたはサブスクリプション コストの追加が必要になる可能性があります。Certain recommendations might increase data, network, or compute resource usage, resulting in additional license or subscription costs.

概要Overview

Azure Disk Encryption は、Windows および Linux IaaS 仮想マシン ディスクを暗号化するのに役立つ新機能です。Azure Disk Encryption is a new capability that helps you encrypt your Windows and Linux IaaS virtual machine disks. Azure Disk Encryption では、業界標準である Windows の BitLocker 機能と Linux の DM-Crypt 機能を利用して、OS およびデータ ディスクのボリュームの暗号化を提供します。Azure Disk Encryption leverages the industry standard BitLocker feature of Windows and the DM-Crypt feature of Linux to provide volume encryption for the OS and the data disks. このソリューションは Azure Key Vault と統合されており、ディスクの暗号化キーとシークレットは Key Vault サブスクリプションで制御および管理できます。The solution is integrated with Azure Key Vault to help you control and manage the disk-encryption keys and secrets in your key vault subscription. またこのソリューションでは、仮想マシン ディスク上のすべてのデータが、Azure Storage での保存時に暗号化されます。The solution also ensures that all data on the virtual machine disks are encrypted at rest in your Azure storage.

現在、Windows および Linux IaaS VM の Azure Disk Encryption は、すべての Azure パブリック リージョンおよび AzureGov リージョンの Standard VM と Premium Storage を使用する VM で一般に提供されています。Azure disk encryption for Windows and Linux IaaS VMs is now in General Availability in all Azure public regions and AzureGov regions for Standard VMs and VMs with premium storage.

暗号化のシナリオEncryption scenarios

Azure Disk Encryption ソリューションでは、次の顧客シナリオがサポートされています。The Azure Disk Encryption solution supports the following customer scenarios:

  • 事前に暗号化した VHD と暗号化キーから作成された新しい IaaS VM での暗号化を有効にするEnable encryption on new IaaS VMs created from pre-encrypted VHD and encryption keys
  • サポートされている Azure ギャラリー イメージから作成された新しい IaaS VM での暗号化を有効にするEnable encryption on new IaaS VMs created from the supported Azure Gallery images
  • Azure で実行されている既存の IaaS VM での暗号化を有効にするEnable encryption on existing IaaS VMs running in Azure
  • Windows IaaS VM での暗号化を無効にするDisable encryption on Windows IaaS VMs
  • Linux IaaS VM でのデータ ドライブの暗号化を無効にするDisable encryption on data drives for Linux IaaS VMs
  • 管理ディスク VMの暗号化を有効にするEnable encryption of managed disk VMs
  • 既存の暗号化された Premium および Premium 以外のストレージ VM の暗号化設定を更新するUpdate encryption settings of an existing encrypted premium and non-premium storage VM
  • 暗号化された VM のバックアップと復元Backup and restore of encrypted VMs

このソリューションでは、Microsoft Azure で有効になっている場合、IaaS VM の以下のシナリオがサポートされます。The solution supports the following scenarios for IaaS VMs when they are enabled in Microsoft Azure:

  • Azure Key Vault との統合Integration with Azure Key Vault
  • Standard レベルの VM: A、D、DS、G、GS、F などの IaaS VM シリーズStandard tier VMs: A, D, DS, G, GS, F, and so forth series IaaS VMs
  • サポートされている Azure ギャラリー イメージから Windows および Linux IaaS VM、および管理ディスク VM での暗号化を有効にするEnable encryption on Windows and Linux IaaS VMs and managed disk VMs from the supported Azure Gallery images
  • Windows IaaS VM および管理ディスク VM での OS およびデータ ドライブの暗号化を無効にするDisable encryption on OS and data drives for Windows IaaS VMs and managed disk VMs
  • Linux IaaS VM および管理ディスク VM でのデータ ドライブの暗号化を無効にするDisable encryption on data drives for Linux IaaS VMs and managed disk VMs
  • Windows クライアント OS を実行している IaaS VM での暗号化を有効にするEnable encryption on IaaS VMs running Windows Client OS
  • ボリュームのマウント パスでの暗号化を有効にするEnable encryption on volumes with mount paths
  • mdadm を使用してディスク ストライピング (RAID) で構成されている Linux VM での暗号化を有効にするEnable encryption on Linux VMs configured with disk striping (RAID) using mdadm
  • データ ディスクの LVM を使用して Linux VM での暗号化を有効にするEnable encryption on Linux VMs using LVM for data disks
  • OS ディスクとデータ ディスクについて Linux LVM 7.3 での暗号化を有効にするEnable encryption on Linux LVM 7.3 for OS and data disks
  • 記憶域スペースで構成されている Windows VM での暗号化を有効にするEnable encryption on Windows VMs configured with Storage Spaces
  • 既存の暗号化された Premium および Premium 以外のストレージ VM の暗号化設定を更新するUpdate encryption settings of an existing encrypted premium and non-premium storage VM
  • KEK なしおよび KEK あり (KEK - キーの暗号化キー) の両方のシナリオについての暗号化された VM のバックアップと復元Backup and restore of encrypted VMs, for both no-KEK and KEK scenarios (KEK - Key Encryption Key)
  • すべての Azure パブリック リージョンおよび AzureGov リージョンがサポートされるAll Azure Public and AzureGov regions are supported

このソリューションでは、以下のシナリオ、機能、およびテクノロジはサポートされていません。The solution does not support the following scenarios, features, and technology:

  • Basic レベルの IaaS VMBasic tier IaaS VMs
  • Linux IaaS VM の OS ドライブの暗号化を無効にするDisabling encryption on an OS drive for Linux IaaS VMs
  • OS ドライブが Linux Iaas VM で暗号化されている場合にデータ ドライブの暗号化を無効にするDisabling encryption on a data drive if the OS drive is encrypted for Linux Iaas VMs
  • 従来の VM の作成方法を使用して作成された IaaS VMIaaS VMs that are created by using the classic VM creation method
  • Windows および Linux IaaS VM ユーザーのカスタム イメージでの暗号化を有効にする機能はサポートされていません。Enable encryption on Windows and Linux IaaS VMs customer custom images is NOT supported.
  • オンプレミス キー管理サービスとの統合Integration with your on-premises Key Management Service
  • Azure Files (共有ファイル システム)、ネットワーク ファイル システム (NFS)、ダイナミック ボリューム、およびソフトウェアベースの RAID システムで構成されている Windows VMAzure Files (shared file system), Network File System (NFS), dynamic volumes, and Windows VMs that are configured with software-based RAID systems

暗号化機能Encryption features

Azure IaaS VM の Azure Disk Encryption を有効にしてデプロイすると、指定された構成に応じて、以下の機能が有効になります。When you enable and deploy Azure Disk Encryption for Azure IaaS VMs, the following capabilities are enabled, depending on the configuration provided:

  • ストレージに保存中のブート ボリュームを保護するために OS ボリュームを暗号化するEncryption of the OS volume to protect the boot volume at rest in your storage
  • ストレージに保存中のデータ ボリュームを保護するためにデータ ボリュームを暗号化するEncryption of data volumes to protect the data volumes at rest in your storage
  • Windows IaaS VM での OS およびデータ ドライブの暗号化を無効にするDisabling encryption on the OS and data drives for Windows IaaS VMs
  • Linux IaaS VM でのデータ ドライブの暗号化を無効にする (OS ドライブが暗号化されていない場合のみ)Disabling encryption on the data drives for Linux IaaS VMs (only if OS drive IS NOT encrypted)
  • Key Vault サブスクリプションの暗号化キーとシークレットを保護するSafeguarding the encryption keys and secrets in your key vault subscription
  • 暗号化された IaaS VM の暗号化状態をレポートするReporting the encryption status of the encrypted IaaS VM
  • IaaS 仮想マシンからディスク暗号化構成設定を削除するRemoval of disk-encryption configuration settings from the IaaS virtual machine
  • 暗号化された VM を Azure Backup サービスでバックアップおよび復元するBackup and restore of encrypted VMs by using the Azure Backup service

Windows および Linux IaaS VM の Azure Disk Encryption ソリューションには、以下のものが含まれています。Azure Disk Encryption for IaaS VMS for Windows and Linux solution includes:

  • Windows のディスク暗号化拡張機能。The disk-encryption extension for Windows.
  • Linux のディスク暗号化拡張機能。The disk-encryption extension for Linux.
  • ディスク暗号化 PowerShell コマンドレット。The disk-encryption PowerShell cmdlets.
  • ディスク暗号化コマンド ライン インターフェイス (CLI) コマンドレット。The disk-encryption Azure command-line interface (CLI) cmdlets.
  • ディスク暗号化 Azure Resource Manager テンプレート。The disk-encryption Azure Resource Manager templates.

Azure Disk Encryption ソリューションは、Windows または Linux OS を実行している IaaS VM でサポートされます。The Azure Disk Encryption solution is supported on IaaS VMs that are running Windows or Linux OS. サポートされているオペレーティング システムについて詳しくは、後述の「前提条件」セクションをご覧ください。For more information about the supported operating systems, see the "Prerequisites" section.

注意

Azure Disk Encryption による VM ディスクの暗号化による追加料金は発生しません。There is no additional charge for encrypting VM disks with Azure Disk Encryption.

価値の提案Value proposition

Azure Disk Encryption の管理ソリューションを使用すると、次のビジネス ニーズに対応できます。When you apply the Azure Disk Encryption-management solution, you can satisfy the following business needs:

  • 業界標準の暗号化テクノロジを使用して、組織のセキュリティおよびコンプライアンス要件に対処できます。そのため、保存中の IaaS VM はセキュリティで保護されます。IaaS VMs are secured at rest, because you can use industry-standard encryption technology to address organizational security and compliance requirements.
  • IaaS VM はお客様が管理するキーとポリシーに従ってブートします。またお客様は、Key Vault での IaaS VM の使用量を監査することができます。IaaS VMs boot under customer-controlled keys and policies, and you can audit their usage in your key vault.

暗号化のワークフローEncryption workflow

Windows および Linux VM のディスク暗号化を有効にするには、次の操作を行います。To enable disk encryption for Windows and Linux VMs, do the following:

  1. 上記の暗号化シナリオの中から、実行する暗号化シナリオを選択します。Choose an encryption scenario from among the preceding encryption scenarios.
  2. Azure Disk Encryption Resource Manager テンプレート、PowerShell コマンドレット、または CLI コマンドを使用してディスク暗号化を有効にすることを選択し、暗号化構成を指定します。Opt in to enabling disk encryption via the Azure Disk Encryption Resource Manager template, PowerShell cmdlets, or CLI command, and specify the encryption configuration.

    • お客様が暗号化した VHD の場合は、暗号化した VHD をストレージ アカウントにアップロードし、暗号化キー マテリアルを Key Vault にアップロードします。For the customer-encrypted VHD scenario, upload the encrypted VHD to your storage account and the encryption key material to your key vault. その後、暗号化構成を指定して新しい IaaS VM での暗号化を有効にします。Then, provide the encryption configuration to enable encryption on a new IaaS VM.
    • Marketplace から作成された新しい VM と、Azure で既に実行されている既存の VM については、IaaS VM での暗号化を有効にするための暗号化構成を指定します。For new VMs that are created from the Marketplace and existing VMs that are already running in Azure, provide the encryption configuration to enable encryption on the IaaS VM.
  3. 暗号化キー マテリアル (Windows システムの場合は BitLocker 暗号化キー、Linux の場合はパスフレーズ) を Key Vault から読み取るためのアクセス権を Azure プラットフォームに付与し、IaaS VM での暗号化を有効にします。Grant access to the Azure platform to read the encryption-key material (BitLocker encryption keys for Windows systems and Passphrase for Linux) from your key vault to enable encryption on the IaaS VM.

  4. Key Vault に暗号化キー マテリアルを書き込むための Azure Active Directory (Azure AD) アプリケーション ID を指定します。Provide the Azure Active Directory (Azure AD) application identity to write the encryption key material to your key vault. これにより、手順 2 で述べたシナリオについて、IaaS VM での暗号化が有効になります。Doing so enables encryption on the IaaS VM for the scenarios mentioned in step 2.

  5. Azure は、暗号化と Key Vault の構成を使用して VM サービス モデルを更新し、暗号化された VM をセットアップします。Azure updates the VM service model with encryption and the key vault configuration, and sets up your encrypted VM.

    Azure での Microsoft マルウェア対策

暗号化解除のワークフローDecryption workflow

IaaS VM のディスク暗号化を無効にするには、以下の手順に従います。To disable disk encryption for IaaS VMs, complete the following high-level steps:

  1. Azure Disk Encryption Resource Manager テンプレートまたは PowerShell コマンドレットを使用して暗号化解除の構成を指定することで、Azure で実行中の IaaS VM での暗号化を無効に (暗号化解除) します。Choose to disable encryption (decryption) on a running IaaS VM in Azure via the Azure Disk Encryption Resource Manager template or PowerShell cmdlets, and specify the decryption configuration.

    この手順によって、Windows IaaS VM で実行されている OS またはデータ ボリューム、もしくはその両方の暗号化が無効になります。This step disables encryption of the OS or the data volume or both on the running Windows IaaS VM. ただし、先のセクションで述べたように、Linux で OS ディスクの暗号化を無効にすることはサポートされていません。However, as mentioned in the previous section, disabling OS disk encryption for Linux is not supported. OS ディスクが暗号化されていない限り、暗号化解除の手順は、Linux VM のデータ ドライブでのみ許可されます。The decryption step is allowed only for data drives on Linux VMs as long as the OS disk is not encrypted.

  2. Azure によって VM サービス モデルが更新され、IaaS VM は暗号化解除済みとしてマークされます。Azure updates the VM service model, and the IaaS VM is marked decrypted. VM の内容は保存時に暗号化されなくなります。The contents of the VM are no longer encrypted at rest.

注意

暗号化を無効にしても、Key Vault や暗号化キー マテリアル (Windows システムの場合は BitLocker 暗号化キー、Linux の場合はパスフレーズ) は削除されません。The disable-encryption operation does not delete your key vault and the encryption key material (BitLocker encryption keys for Windows systems or Passphrase for Linux). Linux 用の OS ディスク暗号化の無効化は、サポートされていません。Disabling OS disk encryption for Linux is not supported. 暗号化解除の手順は、Linux VM のデータ ドライブでのみ許可されます。The decryption step is allowed only for data drives on Linux VMs. OS ドライブが暗号化されている場合、Linux のデータ ディスクの暗号化を無効にする機能はサポートされていません。Disabling data disk encryption for Linux is not supported if the OS drive is encrypted.

前提条件Prerequisites

概要セクションに記載されているサポート対象シナリオの Azure IaaS VM で Azure Disk Encryption を有効にする前に、以下の前提条件を確認してください。Before you enable Azure Disk Encryption on Azure IaaS VMs for the supported scenarios that were discussed in the "Overview" section, see the following prerequisites:

  • サポートされているリージョンにおいて Azure でリソースを作成するための有効なアクティブ Azure サブスクリプションが必要です。You must have a valid active Azure subscription to create resources in Azure in the supported regions.
  • Azure Disk Encryption は、次の Windows サーバー バージョンでサポートされています: Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、および Windows Server 2016。Azure Disk Encryption is supported on the following Windows Server versions: Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, and Windows Server 2016.
  • Azure Disk Encryption は、次の Windows クライアント バージョンでサポートされています: Windows 8 クライアントおよび Windows 10 クライアント。Azure Disk Encryption is supported on the following Windows client versions: Windows 8 client and Windows 10 client.

注意

Windows Server 2008 R2 の場合、Azure で暗号化を有効にする前に、.Net Framework 4.5 をインストールする必要があります。For Windows Server 2008 R2, you must have .NET Framework 4.5 installed before you enable encryption in Azure. オプションの更新プログラムである Windows Server 2008 R2 x64 ベース システム用の Microsoft .NET Framework 4.5.2 (KB2901983) をインストールし、Windows 更新プログラムからこれをインストールすることができます。You can install it from Windows Update by installing the optional update Microsoft .NET Framework 4.5.2 for Windows Server 2008 R2 x64-based systems (KB2901983).

  • Azure Disk Encryption は、以下の Azure ギャラリー ベースの Linux サーバーのディストリビューションおよびバージョンでサポートされます。Azure Disk Encryption is supported on the following Azure Gallery based Linux server distributions and versions:
Linux ディストリビューションLinux Distribution バージョンVersion 暗号化がサポートされているボリューム タイプVolume Type Supported for Encryption
UbuntuUbuntu 16.04-DAILY-LTS16.04-DAILY-LTS OS とデータ ディスクOS and Data disk
UbuntuUbuntu 14.04.5-DAILY-LTS14.04.5-DAILY-LTS OS とデータ ディスクOS and Data disk
UbuntuUbuntu 12.1012.10 データ ディスクData disk
UbuntuUbuntu 12.0412.04 データ ディスクData disk
RHELRHEL 7.47.4 OS とデータ ディスクOS and Data disk
RHELRHEL 7.37.3 OS とデータ ディスクOS and Data disk
RHELRHEL LVM 7.3LVM 7.3 OS とデータ ディスクOS and Data disk
RHELRHEL 7.27.2 OS とデータ ディスクOS and Data disk
RHELRHEL 6.86.8 OS とデータ ディスクOS and Data disk
RHELRHEL 6.76.7 データ ディスクData disk
CentOSCentOS 7.37.3 OS とデータ ディスクOS and Data disk
CentOSCentOS 7.2n7.2n OS とデータ ディスクOS and Data disk
CentOSCentOS 6.86.8 OS とデータ ディスクOS and Data disk
CentOSCentOS 7.17.1 データ ディスクData disk
CentOSCentOS 7.07.0 データ ディスクData disk
CentOSCentOS 6.76.7 データ ディスクData disk
CentOSCentOS 6.66.6 データ ディスクData disk
CentOSCentOS 6.56.5 データ ディスクData disk
openSUSEopenSUSE 13.213.2 データ ディスクData disk
SLESSLES 12 SP112 SP1 データ ディスクData disk
SLESSLES 12-SP1 (Premium)12-SP1 (Premium) データ ディスクData disk
SLESSLES HPC 12HPC 12 データ ディスクData disk
SLESSLES 11-SP4 (Premium)11-SP4 (Premium) データ ディスクData disk
SLESSLES 11 SP411 SP4 データ ディスクData disk
  • Azure Disk Encryption では、Key Vault と VM が同じ Azure リージョンおよびサブスクリプションに属している必要があります。Azure Disk Encryption requires that your key vault and VMs reside in the same Azure region and subscription.

注意

リソースをそれぞれ別のリージョンで構成すると、Azure Disk Encryption 機能を有効にする場合にエラーが発生します。Configuring the resources in separate regions causes a failure in enabling the Azure Disk Encryption feature.

  • Key Vault を Azure Disk Encryption 用にセットアップして構成する場合は、この記事の「前提条件」セクションの「Key Vault を Azure Disk Encryption 用にセットアップして構成する」を参照してください。To set up and configure your key vault for Azure Disk Encryption, see section Set up and configure your key vault for Azure Disk Encryption in the Prerequisites section of this article.
  • Azure Disk Encryption について、Azure Active Directory で Azure AD アプリケーションをセットアップして構成する場合は、この記事の「前提条件」セクションの「Azure Active Directory での Azure AD アプリケーションのセットアップ」を参照してください。To set up and configure Azure AD application in Azure Active directory for Azure Disk Encryption, see section Set up the Azure AD application in Azure Active Directory in the Prerequisites section of this article.
  • Azure AD アプリケーションについて Key Vault アクセス ポリシーをセットアップして構成する場合は、この記事の「前提条件」セクションの「Azure AD アプリケーションの Key Vault アクセス ポリシーの設定」を参照してください。To set up and configure the key vault access policy for the Azure AD application, see section Set up the key vault access policy for the Azure AD application in the Prerequisites section of this article.
  • 事前に暗号化された Windows VHD を準備する場合は、付録の「事前に暗号化された Windows VHD を準備する」セクションを参照してください。To prepare a pre-encrypted Windows VHD, see section Prepare a pre-encrypted Windows VHD in the Appendix.
  • 事前に暗号化された Linux VHD を準備する場合は、付録の「事前に暗号化された Linux VHD を準備する」セクションを参照してください。To prepare a pre-encrypted Linux VHD, see section Prepare a pre-encrypted Linux VHD in the Appendix.
  • Azure プラットフォームには、Key Vault 内の暗号化キーまたはシークレットへのアクセス権を付与する必要があります。これにより、Azure プラットフォームが仮想マシンの OS ボリュームをブートして暗号化する際に、それらの情報を仮想マシンに提供できるようになります。The Azure platform needs access to the encryption keys or secrets in your key vault to make them available to the virtual machine when it boots and decrypts the virtual machine OS volume. Azure プラットフォームにアクセス許可を付与するには、Key Vault に EnabledForDiskEncryption プロパティを設定します。To grant permissions to Azure platform, set the EnabledForDiskEncryption property in the key vault. 詳しくは、この付録の「Key Vault を Azure Disk Encryption 用にセットアップして構成する」を参照してください。For more information, see Set up and configure your key vault for Azure Disk Encryption in the Appendix.
  • Key Vault シークレットおよび KEK URL のバージョン管理が必要です。Your key vault secret and KEK URLs must be versioned. Azure では、このバージョン管理制限が適用されます。Azure enforces this restriction of versioning. 有効なシークレットと KEK URI については、次の例をご覧ください。For valid secret and KEK URLs, see the following examples:

  • Azure Disk Encryption では、ポート番号を Key Vault シークレットおよび KEK URL の一部として指定することはサポートされません。Azure Disk Encryption does not support specifying port numbers as part of key vault secrets and KEK URLs. サポートされない Key Vault URL とサポートされる Key Vault URL の例については、以下をご覧ください。For examples of non-supported and supported key vault URLs, see the following:

  • Azure Disk Encryption 機能を有効にするには、IaaS VM が次のネットワーク エンドポイントの構成要件を満たす必要があります。To enable the Azure Disk Encryption feature, the IaaS VMs must meet the following network endpoint configuration requirements:

    • Key Vault に接続するためのトークンを取得するには、IaaS VM が Azure Active Directory エンドポイント [login.microsoftonline.com] に接続できる必要があります。To get a token to connect to your key vault, the IaaS VM must be able to connect to an Azure Active Directory endpoint, [login.microsoftonline.com].
    • 暗号化キーを Key Vault に書き込むには、IaaS VM が Key Vault エンドポイントに接続できる必要があります。To write the encryption keys to your key vault, the IaaS VM must be able to connect to the key vault endpoint.
    • IaaS VM は、Azure 拡張リポジトリをホストする Azure ストレージ エンドポイントと、VHD ファイルをホストする Azure ストレージ アカウントに接続できる必要があります。The IaaS VM must be able to connect to an Azure storage endpoint that hosts the Azure extension repository and an Azure storage account that hosts the VHD files.

    注意

    セキュリティ ポリシーで Azure VM からインターネットへのアクセスが制限されている場合は、上記の URI を解決し、IP への送信接続を許可するための特定のルールを構成することができます。If your security policy limits access from Azure VMs to the Internet, you can resolve the preceding URI and configure a specific rule to allow outbound connectivity to the IPs.

    ファイアウォールの内側にある Azure Key Vault を構成してアクセスするには (https://docs.microsoft.com/en-us/azure/key-vault/key-vault-access-behind-firewall)To configure and access Azure Key Vault behind a firewall(https://docs.microsoft.com/en-us/azure/key-vault/key-vault-access-behind-firewall)

  • Azure PowerShell SDK の最新バージョンを使用して、Azure Disk Encryption を構成します。Use the latest version of Azure PowerShell SDK version to configure Azure Disk Encryption. Azure PowerShell リリースの最新バージョンをダウンロードしてください。Download the latest version of Azure PowerShell release

    注意

    Azure Disk Encryption は、Azure PowerShell SDK Version 1.1.0 ではサポートされていません。Azure Disk Encryption is not supported on Azure PowerShell SDK version 1.1.0. Azure PowerShell 1.1.0 の使用に関連するエラーが発生する場合は、「Azure Disk Encryption Error Related to Azure PowerShell 1.1.0 (Azure PowerShell 1.1.0 に関連する Azure Disk Encryption エラー)」をご覧ください。If you are receiving an error related to using Azure PowerShell 1.1.0, see Azure Disk Encryption Error Related to Azure PowerShell 1.1.0.

  • Azure CLI コマンドのいずれかを実行して、Azure サブスクリプションに関連付けるには、まず、以下のように Azure CLI をインストールする必要があります。To run any Azure CLI command and associate it with your Azure subscription, you must first install Azure CLI:

  • 管理ディスクを暗号化する場合、暗号化を有効にする前に、Azure Disk Encryption 以外を使用して管理ディスクのスナップショットまたはバックアップを作成することが必須の前提条件です。When encrypting a managed disk, it is mandatory prerequisite to take a snapshot of the managed disk or a backup of the disk outside of Azure Disk Encryption prior to enabling encryption. バックアップがない場合、暗号化中に予期しないエラーが発生すると、回復オプションがない状態でアクセスできないディスクと VM がレンダリングされる可能性があります。Without a backup in place, any unexpected failure during encryption may render the disk and VM inaccessible without a recovery option. 現在、Set-AzureRmVMDiskEncryptionExtension には管理ディスクをバックアップする機能がないため、-skipVmBackup パラメーターを指定せずに管理ディスクに対して使用するとエラーになります。Set-AzureRmVMDiskEncryptionExtension does not currently back up managed disks and will error if used against a managed disk unless the -skipVmBackup parameter has been specified. Azure Disk Encryption 以外を使用してバックアップを作成していない状態では、このパラメーターを使用しないでください。This parameter is unsafe to use unless a backup has already been made outside of Azure Disk Encryption. -skipVmBackup パラメーターを指定すると、暗号化前に管理ディスクのバックアップは作成されません。When the -skipVmBackup parameter is specified, the cmdlet will not make a backup of the managed disk prior to encryption. そのため、後で回復が必要になった場合に備えて、Azure Disk Encryption を有効にする前に、管理ディスク VM のバックアップを作成することが必須の前提条件と考えられます。For this reason, it is considered a mandatory prerequisite to make sure a backup of the managed disk VM is in place prior to enabling Azure Disk Encryption in case recovery is later needed.

    注意

    Azure Disk Encryption 以外を使用してスナップショットまたはバックアップを作成していない場合は、-skipVmBackup パラメーターは使用しないでください。The -skipVmBackup parameter should never be used unless a snapshot or backup has already been made outside of Azure Disk Encryption.

  • Azure Disk Encryption ソリューションでは、Windows IaaS VM に対して BitLocker 外部キー保護機能を使用します。The Azure Disk Encryption solution uses the BitLocker external key protector for Windows IaaS VMs. ドメインに参加している VM の場合は、TPM 保護機能を適用するグループ ポリシーをプッシュしないでください。For domain joined VMs, DO NOT push any group policies that enforce TPM protectors. "互換性のある TPM が装備されていない BitLocker を許可する" のグループ ポリシーについては、「BitLocker Group Policy Reference」(BitLocker グループ ポリシー リファレンス) をご覧ください。For information about the group policy for “Allow BitLocker without a compatible TPM,” see BitLocker Group Policy Reference.

  • カスタム グループ ポリシーを使用した、ドメインに参加している仮想マシン上の BitLocker ポリシーには、次の設定を含める必要があります。Configure user storage of bitlocker recovery information -> Allow 256-bit recovery key BitLocker のカスタム グループ ポリシー設定に互換性がない場合、Azure Disk Encryption は失敗します。Bitlocker policy on domain joined virtual machines with custom group policy must include the following setting: Configure user storage of bitlocker recovery information -> Allow 256-bit recovery key Azure Disk Encryption will fail when custom group policy settings for Bitlocker are incompatible. 正しいポリシー設定がないコンピューターでは、新しいポリシーを適用し、新しいポリシーを強制的に適用して更新し (gpupdate.exe /force)、再起動する処理が必要になる可能性があります。On machines that did not have the correct policy setting, applying the new policy, forcing the new policy to update (gpupdate.exe /force), and then restarting may be required.
  • Azure AD アプリケーションを作成するか、Key Vault を作成するか、または既存の Key Vault をセットアップして暗号化を有効にする場合は、「Azure Disk Encryption prerequisite PowerShell script」(Azure Disk Encryption の前提条件となる PowerShell スクリプト) をご覧ください。To create an Azure AD application, create a key vault, or set up an existing key vault and enable encryption, see the Azure Disk Encryption prerequisite PowerShell script.
  • Azure CLI を使用してディスク暗号化の前提条件を構成する場合は、こちらの Bash スクリプトをご覧ください。To configure disk-encryption prerequisites using the Azure CLI, see this Bash script.
  • Azure Disk Encryption で暗号化が有効になっている場合、暗号化された VM を Azure バックアップ サービスでバックアップおよび復元するには、Azure Disk Encryption のキー構成を使用して VM を暗号化する必要があります。To use the Azure Backup service to back up and restore encrypted VMs, when encryption is enabled with Azure Disk Encryption, encrypt your VMs by using the Azure Disk Encryption key configuration. Backup サービスでは、KEK なしまたは KEK ありの構成を使用して暗号化された VM がサポートされます。The Backup service supports VMs that are encrypted using no-KEK or KEK configurations. 暗号化された仮想マシンを Azure Backup 暗号化でバックアップおよび復元する方法」をご覧ください。See How to back up and restore encrypted virtual machines with Azure Backup encryption.

  • Linux OS ボリュームを暗号化する場合、現在、プロセスの終了時には VM の再起動が必要な点に注意してください。When encrypting a Linux OS volume, note that a VM restart is currently required at the end of the process. この処理は、ポータル、PowerShell、または CLI で実行できます。This can be done via the portal, powershell, or CLI. 暗号化の進行状況を追跡するには、Get-AzureRmVMDiskEncryptionStatus から返されたステータス メッセージが定期的にポーリングされます (https://docs.microsoft.com/en-us/powershell/module/azurerm.compute/get-azurermvmdiskencryptionstatus)。To track the progress of encryption, periodically poll the status message returned by Get-AzureRmVMDiskEncryptionStatus https://docs.microsoft.com/en-us/powershell/module/azurerm.compute/get-azurermvmdiskencryptionstatus. 暗号化が完了すると、このコマンドで返されるステータス メッセージで示されます。Once encryption is complete, the the status message returned by this command will indicate this. たとえば、"ProgressMessage: OS disk successfully encrypted, please reboot the VM" (ProgressMessage: OS ディスクの暗号化が完了しました。VM を再起動してください) と表示されます。このときに、VM を再起動して使用することができます。For example, "ProgressMessage: OS disk successfully encrypted, please reboot the VM" At this point the VM can be restarted and used.

  • Linux 用 Azure Disk Encryption の場合、暗号化前に、Linux にマウントされているファイル システムがあるデータ ディスクを用意する必要があります。Azure Disk Encryption for Linux requires data disks to have a mounted file system in Linux prior to encryption

  • 再帰的にマウントされているデータ ディスクは、Linux 用 Azure Disk Encryption でサポートされていません。Recursively mounted data disks are not supported by the Azure Disk Encryption for Linux. たとえば、ターゲット システムの /foo/bar 上にディスクがマウントされ、/foo/bar/baz 上に別のディスクがマウントされている場合、/foo/bar/baz の暗号化は成功しますが、/foo/bar の暗号化は失敗します。For example, if the target system has mounted a disk on /foo/bar and then another on /foo/bar/baz, the encryption of /foo/bar/baz will succeed, but encryption of /foo/bar will fail.

  • Azure Disk Encryption は、前述の前提条件を満たす Azure ギャラリーがサポートしているイメージでのみサポートされます。Azure Disk Encryption is only supported on Azure gallery supported images that meet the aforementioned prerequisites. ユーザーのカスタム イメージにはカスタムのパーティション スキームとプロセス動作が存在する可能性があるため、カスタム イメージはサポートされません。Customer custom images are not supported due to custom partition schemes and process behaviors that may exist on these images. また、最初は前提条件を満たしていて、作成後に変更されたギャラリー イメージも、互換性がない可能性があります。Further, even gallery image based VM's that initially met prerequisites but have been modified after creation may be incompatible. そのため、Linux VM の暗号化手順として、クリーンなギャラリー イメージから始めて、VM を暗号化し、必要に応じてカスタム ソフトウェアまたはデータを VM に追加することをお勧めします。For that reason, the suggested procedure for encrypting a Linux VM is to start from a clean gallery image, encrypt the VM, and then add custom software or data to the VM as needed.

  • Azure Disk Encryption とローカル データ ボリューム (Windows の Bek ボリュームおよび Linux IaaS VM の /mnt/azure_bek_disk) は、暗号化キーを安全に格納します。Azure Disk Encryption and local data volume - Bek Volume for Windows and /mnt/azure_bek_disk for Linux IaaS VMs to securely hold the encryption key. このディスクのコンテンツの削除や編集はしないでください。Do not delete or edit any contents in this disk. IaaS VM 上のすべての暗号化操作に暗号化キーが必要なため、ディスクのマウントを解除しないでください。Do not unmount the disk since the encryption key presence is needed for any encryption operations on the IaaS VM. ボリュームに含まれている README ファイルに、詳細な情報が記載されています。README file included in the volume contains additional details.

Azure Active Directory 内の Azure AD アプリケーションをセットアップするSet up the Azure AD application in Azure Active Directory

Azure で実行中の VM に対して暗号化を有効にする必要がある場合、Azure Disk Encryption により、暗号化キーが生成され、Key Vault に書き込まれます。When you need encryption to be enabled on a running VM in Azure, Azure Disk Encryption generates and writes the encryption keys to your key vault. Key Vault の暗号化キーを管理するには、Azure AD 認証が必要です。Managing encryption keys in your key vault requires Azure AD authentication.

そのため、Azure AD アプリケーションを作成してください。For this purpose, create an Azure AD application. アプリケーションを登録するための詳しい手順については、ブログ投稿「Azure Key Vault - Step by Step」(Azure Key Vault - 手順) の「Get an Identity for the Application」(アプリケーションの ID の取得) セクションをご覧ください。You can find detailed steps for registering an application in the “Get an Identity for the Application” section of the blog post Azure Key Vault - Step by Step. この投稿には、Key Vault のセットアップと構成に関する役立つ例も多数含まれています。This post also contains a number of helpful examples for setting up and configuring your key vault. 認証には、クライアント シークレット ベースの認証か、クライアント証明書ベースの Azure AD 認証を使用できます。For authentication purposes, you can use either client secret-based authentication or client certificate-based Azure AD authentication.

Azure AD のクライアント シークレット ベースの認証Client secret-based authentication for Azure AD

以降のセクションは、Azure AD のクライアント シークレット ベースの認証を構成するのに役立ちます。The sections that follow can help you configure a client secret-based authentication for Azure AD.

Azure PowerShell を使用して Azure AD アプリケーションを作成するCreate an Azure AD application by using Azure PowerShell

次の PowerShell コマンドレットを使用して Azure AD アプリケーションを作成します。Use the following PowerShell cmdlet to create an Azure AD application:

$aadClientSecret = "yourSecret"
$azureAdApplication = New-AzureRmADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -Password $aadClientSecret
$servicePrincipal = New-AzureRmADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId

注意

$azureAdApplication.ApplicationId は Azure AD ClientID、$aadClientSecret はクライアント シークレットです。これらは、Azure Disk Encryption を有効にするために後で使用します。$azureAdApplication.ApplicationId is the Azure AD ClientID and $aadClientSecret is the client secret that you should use later to enable Azure Disk Encryption. Azure AD のクライアント シークレットは適切に保護してください。Safeguard the Azure AD client secret appropriately.

Azure Portal から Azure AD のクライアント ID とシークレットをセットアップするSetting up the Azure AD client ID and secret from the Azure portal

Azure AD のクライアント ID とシークレットは、Azure Portal を使用してセットアップすることもできます。You can also set up your Azure AD client ID and secret by using the Azure Portal. このタスクを実行するには、次の操作を行います。To perform this task, do the following:

  1. [Active Directory] タブをクリックします。Click the Active Directory tab.

    Azure Disk Encryption

  2. [アプリケーションの追加] をクリックし、アプリケーション名を入力します。Click Add Application, and then type the application name.

    Azure Disk Encryption

  3. 矢印ボタンをクリックし、アプリケーションのプロパティを構成します。Click the arrow button, and then configure the application properties.

    Azure Disk Encryption

  4. 左下隅にあるチェック マークをクリックして終了します。Click the check mark in the lower left corner to finish. アプリケーション構成ページが表示され、Azure AD のクライアント ID がページの下部に表示されます。The application configuration page appears, and the Azure AD client ID is displayed at the bottom of the page.

    Azure Disk Encryption

  5. [保存] をクリックして、Azure AD のクライアント シークレットを保存します。Save the Azure AD client secret by clicking the Save button. キーのテキスト ボックスに Azure AD のクライアント シークレットが表示されます。Note the Azure AD client secret in the keys text box. この情報は適切に保護してください。Safeguard it appropriately.

    Azure Disk Encryption

既存のアプリケーションを使用するUse an existing application

次のコマンドを実行するには、Azure AD PowerShell モジュールを取得して使用します。To execute the following commands, obtain and use the Azure AD PowerShell module.

注意

以下のコマンドは、新規の PowerShell ウィンドウから実行する必要があります。The following commands must be executed from a new PowerShell window. これらのコマンドを実行する場合は、Azure PowerShell や Azure Resource Manager のウィンドウを使用しないでください。Do not use Azure PowerShell or the Azure Resource Manager window to execute the commands. このアプローチを推奨するのは、これらのコマンドレットが MSOnline モジュールまたは Azure AD PowerShell にあるためです。We recommend this approach because these cmdlets are in the MSOnline module or Azure AD PowerShell.

$clientSecret = ‘<yourAadClientSecret>’
$aadClientID = '<Client ID of your Azure AD application>'
connect-msolservice
New-MsolServicePrincipalCredential -AppPrincipalId $aadClientID -Type password -Value $clientSecret

Azure AD の証明書ベースの認証Certificate-based authentication for Azure AD

注意

Azure AD の証明書ベースの認証は、現時点では Linux VM ではサポートされていません。Azure AD certificate-based authentication is currently not supported on Linux VMs.

以降のセクションでは、Azure AD の証明書ベースの認証を構成する方法について説明します。The sections that follow show how to configure a certificate-based authentication for Azure AD.

Azure AD アプリケーションの作成Create an Azure AD application

Azure AD アプリケーションを作成するには、次の PowerShell コマンドレットを実行します。To create an Azure AD application, execute the following PowerShell cmdlets:

注意

次の yourpassword 文字列をセキュリティで保護されたパスワードに置き換え、パスワードを保護してください。Replace the following yourpassword string with your secure password, and safeguard the password.

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate("C:\certificates\examplecert.pfx", "yourpassword")
$keyValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$azureAdApplication = New-AzureRmADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -KeyValue $keyValue -KeyType AsymmetricX509Cert
$servicePrincipal = New-AzureRmADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId

この手順が完了したら、PFX ファイルを Key Vault にアップロードし、VM にその証明書をデプロイするために必要なアクセス ポリシーを有効にします。After you finish this step, upload a PFX file to your key vault and enable the access policy needed to deploy that certificate to a VM.

既存の Azure AD アプリケーションを使用するUse an existing Azure AD application

既存のアプリケーションの証明書ベースの認証を構成する場合は、次の PowerShell コマンドレットを使用します。If you are configuring certificate-based authentication for an existing application, use the PowerShell cmdlets shown here. 必ず、新しい PowerShell ウィンドウから実行してください。Be sure to execute them from a new PowerShell window.

$certLocalPath = 'C:\certs\myaadapp.cer'
$aadClientID = '<Client ID of your Azure AD application>'
connect-msolservice
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
$cer.Import($certLocalPath)
$binCert = $cer.GetRawCertData()
$credValue = [System.Convert]::ToBase64String($binCert);
New-MsolServicePrincipalCredential -AppPrincipalId $aadClientID -Type asymmetric -Value $credValue -Usage verify

この手順が完了したら、PFX ファイルを Key Vault にアップロードし、VM に証明書をデプロイするために必要なアクセス ポリシーを有効にします。After you finish this step, upload a PFX file to your key vault and enable the access policy that's needed to deploy the certificate to a VM.

PFX ファイルを Key Vault にアップロードするUpload a PFX file to your key vault

このプロセスの詳細については、「The Official Azure Key Vault Team Blog」(Azure Key Vault チームのオフィシャル ブログ) をご覧ください。For a detailed explanation of this process, see The Official Azure Key Vault Team Blog. ただし、タスクに必要なものは以下の PowerShell コマンドレットだけです。However, the following PowerShell cmdlets are all you need for the task. 必ず、Azure PowerShell コンソールから実行してください。Be sure to execute them from Azure PowerShell console.

注意

次の yourpassword 文字列をセキュリティで保護されたパスワードに置き換え、パスワードを保護してください。Replace the following yourpassword string with your secure password, and safeguard the password.

$certLocalPath = 'C:\certs\myaadapp.pfx'
$certPassword = "yourpassword"
$resourceGroupName = ‘yourResourceGroup’
$keyVaultName = ‘yourKeyVaultName’
$keyVaultSecretName = ‘yourAadCertSecretName’

$fileContentBytes = get-content $certLocalPath -Encoding Byte
$fileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)

$jsonObject = @"
{
"data": "$filecontentencoded",
"dataType" :"pfx",
"password": "$certPassword"
}
"@

$jsonObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
$jsonEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)

Switch-AzureMode -Name AzureResourceManager
$secret = ConvertTo-SecureString -String $jsonEncoded -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName $keyVaultName -Name $keyVaultSecretName -SecretValue $secret
Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupName $resourceGroupName –EnabledForDeployment
既存の VM に Key Vault の証明書をデプロイするDeploy a certificate in your key vault to an existing VM

PFX のアップロードが完了したら、次のコマンドレットを使用して、Key Vault 内の証明書を既存の VM にデプロイします。After you finish uploading the PFX, deploy a certificate in the key vault to an existing VM with the following:

   $resourceGroupName = ‘yourResourceGroup’
   $keyVaultName = ‘yourKeyVaultName’
   $keyVaultSecretName = ‘yourAadCertSecretName’
   $vmName = ‘yourVMName’
   $certUrl = (Get-AzureKeyVaultSecret -VaultName $keyVaultName -Name $keyVaultSecretName).Id
   $sourceVaultId = (Get-AzureRmKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName).ResourceId
   $vm = Get-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
   $vm = Add-AzureRmVMSecret -VM $vm -SourceVaultId $sourceVaultId -CertificateStore "My" -CertificateUrl $certUrl
   Update-AzureRmVM -VM $vm  -ResourceGroupName $resourceGroupName

Azure AD アプリケーションの Key Vault アクセス ポリシーをセットアップするSet up the key vault access policy for the Azure AD application

Azure AD アプリケーションには、Vault 内のキーまたはシークレットへのアクセス権が必要です。Your Azure AD application needs rights to access the keys or secrets in the vault. Set-AzureKeyVaultAccessPolicy コマンドレットで、–ServicePrincipalName パラメーター値としてクライアント ID (アプリケーションの登録時に生成されたもの) を使用して、アプリケーションにアクセス許可を付与します。Use the Set-AzureKeyVaultAccessPolicy cmdlet to grant permissions to the application, using the client ID (which was generated when the application was registered) as the –ServicePrincipalName parameter value. 詳しくは、ブログ投稿「Azure Key Vault - Step by Step」(Azure Key Vault - 手順) をご覧ください。To learn more, see the blog post Azure Key Vault - Step by Step. 次に示すのは、PowerShell を使用してこのタスクを実行する方法の例です。Here is an example of how to perform this task via PowerShell:

$keyVaultName = '<yourKeyVaultName>'
$aadClientID = '<yourAadAppClientID>'
$rgname = '<yourResourceGroup>'
Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $rgname

注意

Azure Disk Encryption では、Azure AD のクライアント アプリケーションに対して、アクセス ポリシー (WrapKey および Set アクセス許可) を構成する必要があります。Azure Disk Encryption requires you to configure the following access policies to your Azure AD client application: WrapKey and Set permissions.

用語集Terminology

このテクノロジで使用される一般的な用語をいくつか理解するために、以下の用語表を使用してください。To understand some of the common terms used by this technology, use the following terminology table:

用語集Terminology 定義Definition
Azure ADAzure AD Azure AD とは Azure Active Directory のことです。Azure AD is Azure Active Directory. Azure AD アカウントは、Key Vault のシークレットの認証、格納、および取得を行うための前提条件です。An Azure AD account is a prerequisite for authenticating, storing, and retrieving secrets from a key vault.
Azure Key VaultAzure Key Vault Key Vault は、Federal Information Processing Standards (FIPS) に照らして検証されたハードウェア セキュリティ モジュールに基づく、暗号化キー管理サービスです。Key Vault は暗号化キーと機密性の高い情報を保護するために役立ちます。Key Vault is a cryptographic, key management service that's based on Federal Information Processing Standards (FIPS)-validated hardware security modules, which help safeguard your cryptographic keys and sensitive secrets. 詳しくは、「Key Vault」のドキュメントをご覧ください。For more information, see Key Vault documentation.
ARMARM Azure リソース マネージャーAzure Resource Manager
BitLockerBitLocker BitLocker は、Windows IaaS VM でディスク暗号化を有効にするために使用される業界公認の Windows ボリューム暗号化テクノロジです。BitLocker is an industry-recognized Windows volume encryption technology that's used to enable disk encryption on Windows IaaS VMs.
BEKBEK BitLocker 暗号化キーは、OS ブート ボリュームとデータ ボリュームの暗号化に使用されます。BitLocker encryption keys are used to encrypt the OS boot volume and data volumes. BitLocker キーは、Key Vault でシークレットとして保護されます。The BitLocker keys are safeguarded in a key vault as secrets.
CLICLI Azure コマンド ライン インターフェイスに関する記事をご覧ください。See Azure command-line interface.
DM-CryptDM-Crypt DM Crypt は、Linux IaaS VM でディスク暗号化を有効にするために使用される Linux ベースの透過的なディスク暗号化サブシステムです。DM-Crypt is the Linux-based, transparent disk-encryption subsystem that's used to enable disk encryption on Linux IaaS VMs.
KEKKEK キー暗号化キーは、シークレットを保護またはラップするために使用できる非対称キー (RSA 2048) です。Key encryption key is the asymmetric key (RSA 2048) that you can use to protect or wrap the secret. ハードウェア セキュリティ モジュール (HSM) で保護されたキーまたはソフトウェアで保護されたキーを指定できます。You can provide a hardware security modules (HSM)-protected key or software-protected key. 詳しくは、Azure Key Vault のドキュメントをご覧ください。For more details, see Azure Key Vault documentation.
PS コマンドレットPS cmdlets Azure PowerShell コマンドレットに関する記事をご覧ください。See Azure PowerShell cmdlets.

Key Vault を Azure Disk Encryption 用にセットアップして構成するSet up and configure your key vault for Azure Disk Encryption

Azure Disk Encryption は、Key Vault のディスク暗号化キーとシークレットを保護するのに役立ちます。Azure Disk Encryption helps safeguard the disk-encryption keys and secrets in your key vault. Azure Disk Encryption の Key Vault をセットアップするには、以下のセクションの各手順を実行します。To set up your key vault for Azure Disk Encryption, complete the steps in each of the following sections.

Key Vault を作成しますCreate a key vault

Key Vault を作成するには、次のオプションのいずれかを使用します。To create a key vault, use one of the following options:

注意

サブスクリプションの Key Vault を既にセットアップしている場合は、次のセクションに進んでください。If you have already set up a key vault for your subscription, skip to the next section.

Azure Key Vault

キー暗号化キーをセットアップする (省略可能)Set up a key encryption key (optional)

BitLocker 暗号化キーのセキュリティに対する追加レイヤーとして KEK を使用する場合は、Key Vault に KEK を追加します。If you want to use a KEK for an additional layer of security for the BitLocker encryption keys, add a KEK to your key vault. Add-AzureKeyVaultKey コマンドレットを使用して、Key Vault 内にキー暗号化キーを作成します。Use the Add-AzureKeyVaultKey cmdlet to create a key encryption key in the key vault. オンプレミスのキー管理 HSM から KEK をインポートすることもできます。You can also import a KEK from your on-premises key management HSM. 詳しくは、「Key Vault のドキュメント」をご覧ください。For more details, see Key Vault Documentation.

Add-AzureKeyVaultKey [-VaultName] <string> [-Name] <string> -Destination <string> {HSM | Software}

KEK は、Azure Resource Manager に移動するか、または Key Vault インターフェイスを使用して追加できます。You can add the KEK by going to Azure Resource Manager or by using your key vault interface.

Azure Key Vault

Key Vault のアクセス許可をセットアップするSet key vault permissions

Azure プラットフォームには、Key Vault 内の暗号化キーまたはシークレットへのアクセス権を付与する必要があります。これにより、ボリュームをブートして暗号化する際に、それらの情報を VM に提供できるようになります。The Azure platform needs access to the encryption keys or secrets in your key vault to make them available to the VM for booting and decrypting the volumes. Azure プラットフォームにアクセス許可を付与するには、Key Vault の PowerShell コマンドレットを使用して、Key Vault に EnabledForDiskEncryption プロパティを設定します。To grant permissions to the Azure platform, set the EnabledForDiskEncryption property in the key vault by using the key vault PowerShell cmdlet:

Set-AzureRmKeyVaultAccessPolicy -VaultName <yourVaultName> -ResourceGroupName <yourResourceGroup> -EnabledForDiskEncryption

EnabledForDiskEncryption プロパティは、Azure リソース エクスプローラーで設定することもできます。You can also set the EnabledForDiskEncryption property by visiting the Azure Resource Explorer.

前述のとおり、Key Vault には EnabledForDiskEncryption プロパティを設定する必要があります。As mentioned earlier, you must set the EnabledForDiskEncryption property on your key vault. 17 以下の場合、デプロイは失敗します。Otherwise, the deployment will fail.

Azure AD アプリケーションのアクセス ポリシーは、次に示すように、Key Vault インターフェイスから設定できます。You can set up access policies for your Azure AD application from the key vault interface, as shown here:

Azure Key Vault

Azure Key Vault

[高度なアクセス ポリシー] タブで、Key Vault が Azure Disk Encryption に対して有効になっていることを確認します。On the Advanced access policies tab, make sure that your key vault is enabled for Azure Disk Encryption:

Azure Key Vault

ディスク暗号化のデプロイメント シナリオとユーザー エクスペリエンスDisk-encryption deployment scenarios and user experiences

有効にできるディスク暗号化シナリオは多数あり、手順はシナリオによって異なる場合があります。You can enable many disk-encryption scenarios, and the steps may vary according to the scenario. 以下のセクションでは、それらのシナリオについて詳しく説明します。The following sections cover the scenarios in greater detail.

Marketplace から作成された新しい IaaS VM での暗号化を有効にするEnable encryption on new IaaS VMs that are created from the Marketplace

Azure の Marketplace から作成された新しい IaaS Windows VM でのディスク暗号化は、Resource Manager テンプレートを使用して有効化できます。You can enable disk encryption on new IaaS Windows VM from the Marketplace in Azure by using the Resource Manager template.

  1. Azure クイック スタート テンプレートで、[Azure にデプロイ] をクリックし、[パラメーター] ブレードに暗号化構成を入力して、[OK] をクリックします。On the Azure quick-start template, click Deploy to Azure, enter the encryption configuration on the Parameters blade, and then click OK.

  2. サブスクリプション、リソース グループ、リソース グループの場所、法律条項および契約を選択し、[作成] をクリックして新しい IaaS VM での暗号化を有効にします。Select the subscription, resource group, resource group location, legal terms, and agreement, and then click Create to enable encryption on a new IaaS VM.

注意

このテンプレートでは、Windows Server 2012 ギャラリー イメージを使用する、暗号化された Windows VM が新規に作成されます。This template creates a new encrypted Windows VM that uses the Windows Server 2012 gallery image.

この Resource Manager テンプレートを使用して、200 GB の RAID-0 アレイを使用した新しい IaaS RedHat Linux 7.2 VM に対し、ディスク暗号化を有効にできます。You can enable disk encryption on a new IaaS RedHat Linux 7.2 VM with a 200-GB RAID-0 array by using this Resource Manager template. テンプレートをデプロイしたら、「実行中の Linux VM での OS ドライブの暗号化」セクションで説明されている Get-AzureRmVmDiskEncryptionStatus コマンドレットを使用して、VM の暗号化の状態を確認します。After you deploy the template, verify the VM encryption status by using the Get-AzureRmVmDiskEncryptionStatus cmdlet, as described in Encrypting OS drive on a running Linux VM. VMRestartPending の状態が返された場合は、VM を再起動してください。When the machine returns a status of VMRestartPending, restart the VM.

次の表は、Azure AD のクライアント ID を使用して Marketplace シナリオから作成された新しい VM に対する、Resource Manager テンプレートのパラメーターをまとめたものです。The following table lists the Resource Manager template parameters for new VMs from the Marketplace scenario using Azure AD client ID:

パラメーターParameter 説明Description
adminUserNameadminUserName 仮想マシンの管理者ユーザー名。Admin user name for the virtual machine.
adminPasswordadminPassword 仮想マシンの管理者ユーザー パスワード。Admin user password for the virtual machine.
newStorageAccountNamenewStorageAccountName OS とデータの VHD を格納するためのストレージ アカウントの名前。Name of the storage account to store OS and data VHDs.
vmSizevmSize VM のサイズ。Size of the VM. 現時点では、Standard A、D、および G シリーズのみがサポートされています。Currently, only Standard A, D, and G series are supported.
virtualNetworkNamevirtualNetworkName VM NIC が属している必要がある VNet の名前。Name of the VNet that the VM NIC should belong to.
subnetNamesubnetName VM NIC が属している必要がある VNet のサブネットの名前。Name of the subnet in the VNet that the VM NIC should belong to.
AADClientIDAADClientID Key Vault にシークレットを書き込むためのアクセス許可を持つ Azure AD アプリケーションのクライアント ID。Client ID of the Azure AD application that has permissions to write secrets to your key vault.
AADClientSecretAADClientSecret Key Vault にシークレットを書き込むためのアクセス許可を持つ Azure AD アプリケーションのクライアント シークレット。Client secret of the Azure AD application that has permissions to write secrets to your key vault.
keyVaultURLkeyVaultURL BitLocker キーのアップロード先となる Key Vault の URL。URL of the key vault that the BitLocker key should be uploaded to. これは、コマンドレット (Get-AzureRmKeyVault -VaultName,-ResourceGroupName ).VaultURI を使用して取得できます。You can get it by using the cmdlet (Get-AzureRmKeyVault -VaultName,-ResourceGroupName ).VaultURI.
keyEncryptionKeyURLkeyEncryptionKeyURL 生成された BitLocker キーの暗号化に使用されるキー暗号化キーの URL (省略可能)。URL of the key encryption key that's used to encrypt the generated BitLocker key (optional).
keyVaultResourceGroupkeyVaultResourceGroup Key Vault のリソース グループ。Resource group of the key vault.
vmNamevmName 暗号化操作が実行される VM の名前。Name of the VM that the encryption operation is to be performed on.

注意

KeyEncryptionKeyURL は省略可能なパラメーターです。KeyEncryptionKeyURL is an optional parameter. 独自の KEK を使用して、Key Vault でデータ暗号化キー (パスフレーズ シークレット) の保護を強化することができます。You can bring your own KEK to further safeguard the data encryption key (Passphrase secret) in your key vault.

事前に暗号化した VHD と暗号化キーから作成された新しい IaaS VM での暗号化を有効にするEnable encryption on new IaaS VMs that are created from customer-encrypted VHD and encryption keys

このシナリオでは、Resource Manager テンプレート、PowerShell コマンドレット、または CLI コマンドを使用して、暗号化を有効にすることができます。In this scenario, you can enable encrypting by using the Resource Manager template, PowerShell cmdlets, or CLI commands. 以下のセクションでは、Resource Manager テンプレートと CLI コマンドについて詳しく説明します。The following sections explain in greater detail the Resource Manager template and CLI commands.

次のいずれかのセクションの指示に従って、Azure で使用できる事前に暗号されたイメージを準備します。Follow the instructions from one of these sections for preparing pre-encrypted images that can be used in Azure. イメージを作成したら、次のセクションの手順に従って、暗号化された Azure VM を作成できます。After the image is created, you can use the steps in the next section to create an encrypted Azure VM.

Resource Manager テンプレートの使用Using the Resource Manager template

暗号化された VHD でのディスク暗号化は、Resource Manager テンプレートを使用して有効化できます。You can enable disk encryption on your encrypted VHD by using the Resource Manager template.

  1. Azure クイック スタート テンプレートで、[Azure にデプロイ] をクリックし、[パラメーター] ブレードに暗号化構成を入力して、[OK] をクリックします。On the Azure quick-start template, click Deploy to Azure, enter the encryption configuration on the Parameters blade, and then click OK.

  2. サブスクリプション、リソース グループ、リソース グループの場所、法律条項および契約を選択し、[作成] をクリックして新しい IaaS VM での暗号化を有効にします。Select the subscription, resource group, resource group location, legal terms, and agreement, and then click Create to enable encryption on the new IaaS VM.

次の表は、暗号化された VHD に対する Resource Manager テンプレートのパラメーターをまとめたものです。The following table lists the Resource Manager template parameters for your encrypted VHD:

パラメーターParameter 説明Description
newStorageAccountNamenewStorageAccountName 暗号化された OS VHD を格納するためのストレージ アカウントの名前。Name of the storage account to store the encrypted OS VHD. このストレージ アカウントは、VM と同じリソース グループおよび同じ場所に既に作成されている必要があります。This storage account should already have been created in the same resource group and same location as the VM.
osVhdUriosVhdUri ストレージ アカウントからの OS VHD の URI。URI of the OS VHD from the storage account.
osTypeosType OS 製品の種類 (Windows/Linux)。OS product type (Windows/Linux).
virtualNetworkNamevirtualNetworkName VM NIC が属している必要がある VNet の名前。Name of the VNet that the VM NIC should belong to. この名前は、VM と同じリソース グループおよび同じ場所に既に作成されている必要があります。The name should already have been created in the same resource group and same location as the VM.
subnetNamesubnetName VM NIC が属している必要がある VNet のサブネットの名前。Name of the subnet on the VNet that the VM NIC should belong to.
vmSizevmSize VM のサイズ。Size of the VM. 現時点では、Standard A、D、および G シリーズのみがサポートされています。Currently, only Standard A, D, and G series are supported.
keyVaultResourceIDkeyVaultResourceID Azure Resource Manager 内で Key Vault リソースを識別するためのリソース ID。The ResourceID that identifies the key vault resource in Azure Resource Manager. これは、PowerShell コマンドレット (Get-AzureRmKeyVault -VaultName &lt;yourKeyVaultName&gt; -ResourceGroupName &lt;yourResourceGroupName&gt;).ResourceId を使用して取得できます。You can get it by using the PowerShell cmdlet (Get-AzureRmKeyVault -VaultName &lt;yourKeyVaultName&gt; -ResourceGroupName &lt;yourResourceGroupName&gt;).ResourceId.
keyVaultSecretUrlkeyVaultSecretUrl Key Vault 内にセットアップされたディスク暗号化キーの URL。URL of the disk-encryption key that's set up in the key vault.
keyVaultKekUrlkeyVaultKekUrl 生成されたディスク暗号化キーの暗号化に使用されるキー暗号化キーの URL。URL of the key encryption key for encrypting the generated disk-encryption key.
vmNamevmName IaaS VM の名前。Name of the IaaS VM.

PowerShell コマンドレットの使用Using PowerShell cmdlets

暗号化された VHD でのディスク暗号化は、PowerShell コマンドレット Set-AzureRmVMOSDisk を使用して有効化できます。You can enable disk encryption on your encrypted VHD by using the PowerShell cmdlet Set-AzureRmVMOSDisk.

CLI コマンドの使用Using CLI commands

このシナリオのディスク暗号化を CLI コマンドによって有効化するには、次の操作を行います。To enable disk encryption for this scenario by using CLI commands, do the following:

  1. Key Vault のアクセス ポリシーを設定します。Set access policies in your key vault:

    • EnabledForDiskEncryption フラグを設定します。Set the EnabledForDiskEncryption flag:

      azure keyvault set-policy --vault-name <keyVaultName> --enabled-for-disk-encryption true

    • Key Vault にシークレットを書き込むためのアクセス許可を Azure AD アプリケーションに設定します。Set permissions to Azure AD application to write secrets to your key vault:

      azure keyvault set-policy --vault-name <keyVaultName> --spn <aadClientID> --perms-to-keys '["wrapKey"]' --perms-to-secrets '["set"]'

  2. 既存または実行中の VM に対して暗号化を有効にするには、次のように入力します。To enable encryption on an existing or running VM, type:

    azure vm enable-disk-encryption --resource-group <resourceGroupName> --name <vmName> --aad-client-id <aadClientId> --aad-client-secret <aadClientSecret> --disk-encryption-key-vault-url <keyVaultURL> --disk-encryption-key-vault-id <keyVaultResourceId> --volume-type [All|OS|Data]

  3. 暗号化の状態を取得します。Get encryption status:

    azure vm show-disk-encryption-status --resource-group <resourceGroupName> --name <vmName> --json

  4. 暗号化された VHD から作成された新しい VM での暗号化を有効にするには、azure vm create コマンドで以下のパラメーターを使用します。To enable encryption on a new VM from your encrypted VHD, use the following parameters with the azure vm create command:

    * disk-encryption-key-vault-id <disk-encryption-key-vault-id>
    * disk-encryption-key-url <disk-encryption-key-url>
    * key-encryption-key-vault-id <key-encryption-key-vault-id>
    * key-encryption-key-url <key-encryption-key-url>
    

Azure で既存または実行中の IaaS Windows VM での暗号化を有効にするEnable encryption on existing or running IaaS Windows VM in Azure

このシナリオでは、Resource Manager テンプレート、PowerShell コマンドレット、または CLI コマンドを使用して、暗号化を有効にすることができます。In this scenario, you can enable encrypting by using the Resource Manager template, PowerShell cmdlets, or CLI commands. 以下のセクションでは、Resource Manager テンプレートと CLI コマンドを使用してこれを有効化する方法について詳しく説明します。The following sections explain in greater detail how to enable it by using the Resource Manager template and CLI commands.

Resource Manager テンプレートの使用Using the Resource Manager template

Azure 内にある既存または実行中の IaaS Windows VM でのディスク暗号化は、Resource Manager テンプレートを使用して有効化できます。You can enable disk encryption on existing or running IaaS Windows VMs in Azure by using the Resource Manager template.

  1. Azure クイック スタート テンプレートで、[Azure にデプロイ] をクリックし、[パラメーター] ブレードに暗号化構成を入力して、[OK] をクリックします。On the Azure quick-start template, click Deploy to Azure, enter the encryption configuration on the Parameters blade, and then click OK.

  2. サブスクリプション、リソース グループ、リソース グループの場所、法律条項および契約を選択し、[作成] をクリックして、既存または実行中の IaaS VM での暗号化を有効にします。Select the subscription, resource group, resource group location, legal terms, and agreement, and then click Create to enable encryption on the existing or running IaaS VM.

次の表は、Azure AD のクライアント ID を使用する既存または実行中の VM に対する、Resource Manager テンプレートのパラメーターをまとめたものです。The following table lists the Resource Manager template parameters for existing or running VMs that use an Azure AD client ID:

パラメーターParameter 説明Description
AADClientIDAADClientID Key Vault にシークレットを書き込むためのアクセス許可を持つ Azure AD アプリケーションのクライアント ID。Client ID of the Azure AD application that has permissions to write secrets to the key vault.
AADClientSecretAADClientSecret Key Vault にシークレットを書き込むためのアクセス許可を持つ Azure AD アプリケーションのクライアント シークレット。Client secret of the Azure AD application that has permissions to write secrets to the key vault.
KeyVaultNamekeyVaultName BitLocker キーのアップロード先となる Key Vault の名前。Name of the key vault that the BitLocker key should be uploaded to. これは、コマンドレット (Get-AzureRmKeyVault -ResourceGroupName <yourResourceGroupName>). Vaultname を使用して取得できます。You can get it by using the cmdlet (Get-AzureRmKeyVault -ResourceGroupName <yourResourceGroupName>). Vaultname.
keyEncryptionKeyURLkeyEncryptionKeyURL 生成された BitLocker キーの暗号化に使用されるキー暗号化キーの URL。URL of the key encryption key that's used to encrypt the generated BitLocker key. このパラメーターは、UseExistingKek ドロップダウン リストで nokek を選択した場合には省略可能です。This parameter is optional if you select nokek in the UseExistingKek drop-down list. UseExistingKek ドロップダウン リストで kek を選択した場合は、keyEncryptionKeyURL 値を入力する必要があります。If you select kek in the UseExistingKek drop-down list, you must enter the keyEncryptionKeyURL value.
volumeTypevolumeType 暗号化操作が実行されるボリュームの種類。Type of volume that the encryption operation is performed on. 有効な値は OSData、および All です。Valid values are OS, Data, and All.
sequenceVersionsequenceVersion BitLocker 操作のシーケンス バージョン。Sequence version of the BitLocker operation. ディスク暗号化操作が同じ VM で実行されるたびに、このバージョン番号をインクリメントします。Increment this version number every time a disk-encryption operation is performed on the same VM.
vmNamevmName 暗号化操作が実行される VM の名前。Name of the VM that the encryption operation is to be performed on.

注意

KeyEncryptionKeyURL は省略可能なパラメーターです。KeyEncryptionKeyURL is an optional parameter. 独自の KEK を使用して、Key Vault でデータ暗号化キー (BitLocker 暗号化シークレット) の保護を強化することができます。You can bring your own KEK to further safeguard the data encryption key (BitLocker encryption secret) in the key vault.

PowerShell コマンドレットの使用Using PowerShell cmdlets

Azure Disk Encryption での暗号化を PowerShell コマンドレットによって有効化する方法については、ブログ投稿「Explore Azure Disk Encryption with Azure PowerShell - Part 1」(Azure PowerShell を使用した Azure Disk Encryption の操作 - パート 1) および「Explore Azure Disk Encryption with Azure PowerShell - Part 2」(Azure PowerShell を使用した Azure Disk Encryption の操作 - パート 2) をご覧ください。For information about enabling encryption with Azure Disk Encryption by using PowerShell cmdlets, see the blog posts Explore Azure Disk Encryption with Azure PowerShell - Part 1 and Explore Azure Disk Encryption with Azure PowerShell - Part 2.

CLI コマンドの使用Using CLI commands

Azure 内にある既存または実行中の IaaS Windows VM での暗号化を CLI コマンドによって有効化するには、次の操作を行います。To enable encryption on existing or running IaaS Windows VM in Azure using CLI commands, do the following:

  1. Key Vault のアクセス ポリシーを設定するには、次の操作を行います。To set access policies in the key vault:

    • EnabledForDiskEncryption フラグを設定します。Set the EnabledForDiskEncryption flag:

      azure keyvault set-policy --vault-name <keyVaultName> --enabled-for-disk-encryption true

    • Key Vault にシークレットを書き込むためのアクセス許可を Azure AD アプリケーションに設定します。Set permissions to Azure AD application to write secrets to your key vault:

      azure keyvault set-policy --vault-name <keyVaultName> --spn <aadClientID> --perms-to-keys '["wrapKey"]' --perms-to-secrets '["set"]'

  2. 既存または実行中の VM に対して暗号化を有効にするには、次のコマンドを実行します。To enable encryption on an existing or running VM:

    azure vm enable-disk-encryption --resource-group <resourceGroupName> --name <vmName> --aad-client-id <aadClientId> --aad-client-secret <aadClientSecret> --disk-encryption-key-vault-url <keyVaultURL> --disk-encryption-key-vault-id <keyVaultResourceId> --volume-type [All|OS|Data]

  3. 暗号化の状態を取得するには、次のコマンドを実行します。To get encryption status:

    azure vm show-disk-encryption-status --resource-group <resourceGroupName> --name <vmName> --json

  4. 暗号化された VHD から作成された新しい VM での暗号化を有効にするには、azure vm create コマンドで以下のパラメーターを使用します。To enable encryption on a new VM from your encrypted VHD, use the following parameters with the azure vm create command:

    * disk-encryption-key-vault-id <disk-encryption-key-vault-id>
    * disk-encryption-key-url <disk-encryption-key-url>
    * key-encryption-key-vault-id <key-encryption-key-vault-id>
    * key-encryption-key-url <key-encryption-key-url>
    

Azure で既存または実行中の IaaS Linux VM での暗号化を有効にするEnable encryption on an existing or running IaaS Linux VM in Azure

Azure 内にある既存または実行中の IaaS Linux VM でのディスク暗号化は、Resource Manager テンプレートを使用して有効化できます。You can enable disk encryption on an existing or running IaaS Linux VM in Azure by using the Resource Manager template.

  1. Azure クイック スタート テンプレートで [Azure にデプロイ] をクリックし、[パラメーター] ブレードに暗号化構成を入力して、[OK] をクリックします。Click Deploy to Azure on the Azure quick-start template, enter the encryption configuration on the Parameters blade, and then click OK.

  2. サブスクリプション、リソース グループ、リソース グループの場所、法律条項および契約を選択し、[作成] をクリックして、既存または実行中の IaaS VM での暗号化を有効にします。Select the subscription, resource group, resource group location, legal terms, and agreement, and then click Create to enable encryption on the existing or running IaaS VM.

次の表は、Azure AD のクライアント ID を使用する既存または実行中の VM に対する、Resource Manager テンプレートのパラメーターをまとめたものです。The following table lists Resource Manager template parameters for existing or running VMs that use an Azure AD client ID:

パラメーターParameter 説明Description
AADClientIDAADClientID Key Vault にシークレットを書き込むためのアクセス許可を持つ Azure AD アプリケーションのクライアント ID。Client ID of the Azure AD application that has permissions to write secrets to the key vault.
AADClientSecretAADClientSecret Key Vault にシークレットを書き込むためのアクセス許可を持つ Azure AD アプリケーションのクライアント シークレット。Client secret of the Azure AD application that has permissions to write secrets to your key vault.
KeyVaultNamekeyVaultName BitLocker キーのアップロード先となる Key Vault の名前。Name of the key vault that the BitLocker key should be uploaded to. これは、コマンドレット (Get-AzureRmKeyVault -ResourceGroupName <yourResourceGroupName>). Vaultname を使用して取得できます。You can get it by using the cmdlet (Get-AzureRmKeyVault -ResourceGroupName <yourResourceGroupName>). Vaultname.
keyEncryptionKeyURLkeyEncryptionKeyURL 生成された BitLocker キーの暗号化に使用されるキー暗号化キーの URL。URL of the key encryption key that's used to encrypt the generated BitLocker key. このパラメーターは、UseExistingKek ドロップダウン リストで nokek を選択した場合には省略可能です。This parameter is optional if you select nokek in the UseExistingKek drop-down list. UseExistingKek ドロップダウン リストで kek を選択した場合は、keyEncryptionKeyURL 値を入力する必要があります。If you select kek in the UseExistingKek drop-down list, you must enter the keyEncryptionKeyURL value.
volumeTypevolumeType 暗号化操作が実行されるボリュームの種類。Type of volume that the encryption operation is performed on. サポートされている有効な値は OS または All です (OS ディスクおよびデータ ディスクに対してサポートされる Linux ディストリビューションとそのバージョンについては、前述の前提条件セクションをご覧ください)。Valid supported values are OS or All (see supported Linux distros and their versions for OS and data disks in prerequisiteis section earlier).
sequenceVersionsequenceVersion BitLocker 操作のシーケンス バージョン。Sequence version of the BitLocker operation. ディスク暗号化操作が同じ VM で実行されるたびに、このバージョン番号をインクリメントします。Increment this version number every time a disk-encryption operation is performed on the same VM.
vmNamevmName 暗号化操作が実行される VM の名前。Name of the VM that the encryption operation is to be performed on.
passPhrasepassPhrase データ暗号化キーとして強力なパスフレーズを入力します。Type a strong passphrase as the data encryption key.

注意

KeyEncryptionKeyURL は省略可能なパラメーターです。KeyEncryptionKeyURL is an optional parameter. 独自の KEK を使用して、Key Vault でデータ暗号化キー (パスフレーズ シークレット) の保護を強化することができます。You can bring your own KEK to further safeguard the data encryption key (passphrase secret) in your key vault.

CLI コマンドCLI commands

暗号化された VHD でのディスク暗号化は、CLI コマンドをインストールして使用することで有効化できます。You can enable disk encryption on your encrypted VHD by installing and using the CLI command. Azure 内にある既存または実行中の IaaS Linux VM での暗号化を CLI コマンドによって有効化するには、次の操作を行います。To enable encryption on existing or running IaaS Linux VMs in Azure by using CLI commands, do the following:

  1. Key Vault のアクセス ポリシーを設定します。Set access policies in the key vault:

    • EnabledForDiskEncryption フラグを設定します。Set the EnabledForDiskEncryption flag:

      azure keyvault set-policy --vault-name <keyVaultName> --enabled-for-disk-encryption true

    • Key Vault にシークレットを書き込むためのアクセス許可を Azure AD アプリケーションに設定します。Set permissions to Azure AD application to write secrets to your key vault:

      azure keyvault set-policy --vault-name <keyVaultName> --spn <aadClientID> --perms-to-keys '["wrapKey"]' --perms-to-secrets '["set"]'

  2. 既存または実行中の VM に対して暗号化を有効にするには、次のコマンドを実行します。To enable encryption on an existing or running VM:

    azure vm enable-disk-encryption --resource-group <resourceGroupName> --name <vmName> --aad-client-id <aadClientId> --aad-client-secret <aadClientSecret> --disk-encryption-key-vault-url <keyVaultURL> --disk-encryption-key-vault-id <keyVaultResourceId> --volume-type [All|OS|Data]

  3. 暗号化の状態を取得します。Get encryption status:

    azure vm show-disk-encryption-status --resource-group <resourceGroupName> --name <vmName> --json

  4. 暗号化された VHD から作成された新しい VM での暗号化を有効にするには、azure vm create コマンドで以下のパラメーターを使用します。To enable encryption on a new VM from your encrypted VHD, use the following parameters with the azure vm create command:

    * disk-encryption-key-vault-id <disk-encryption-key-vault-id>
    * disk-encryption-key-url <disk-encryption-key-url>
    * key-encryption-key-vault-id <key-encryption-key-vault-id>
    * key-encryption-key-url <key-encryption-key-url>
    

暗号化された IaaS VM の暗号化状態を取得するGet the encryption status of an encrypted IaaS VM

暗号化状態は、Azure Resource Manager、PowerShell コマンドレット、または CLI コマンドを使用して取得できます。You can get the encryption status by using Azure Resource Manager, PowerShell cmdlets, or CLI commands. 以下のセクションでは、Azure Portal と CLI コマンドを使用して暗号化状態を取得する方法について説明します。The following sections explain how to use the Azure Portal and CLI commands to get the encryption status.

暗号化された Windows VM の暗号化状態を、Azure Resource Manager を使用して取得するGet the encryption status of an encrypted Windows VM by using Azure Resource Manager

Azure Resource Manager から IaaS VM の暗号化状態を取得するには、次の操作を行います。You can get the encryption status of the IaaS VM from Azure Resource Manager by doing the following:

  1. Azure Portal にサインインし、左側のウィンドウで [仮想マシン] をクリックして、サブスクリプション内の仮想マシンの概要ビューを表示します。Sign in to the Azure Portal, and then click Virtual machines in the left pane to see a summary view of the virtual machines in your subscription. 仮想マシン ビューは、[サブスクリプション] ドロップダウン リストでサブスクリプション名を選択することでフィルター処理できます。You can filter the virtual machines view by selecting the subscription name in the Subscription drop-down list.

  2. [仮想マシン] ページの上部にある [列] をクリックします。At the top of the Virtual machines page, click Columns.

  3. [列を選択] ブレードで、[ディスク暗号化] を選択し、[更新] をクリックします。On the Choose column blade, select Disk Encryption, and then click Update. 次の図に示すように、各 VM の [有効] または [無効] の暗号化状態を表示するディスク暗号化列が表示されます。You should see the disk-encryption column showing the encryption state Enabled or Not Enabled for each VM, as shown in the following figure:

    Azure での Microsoft マルウェア対策

暗号化された (Windows/Linux) IaaS VM の暗号化状態を、ディスク暗号化 PowerShell コマンドレットを使用して取得するGet the encryption status of an encrypted (Windows/Linux) IaaS VM by using the disk-encryption PowerShell cmdlet

IaaS VM の暗号化状態は、ディスク暗号化 PowerShell コマンドレット Get-AzureRmVMDiskEncryptionStatus を使用して取得できます。You can get the encryption status of the IaaS VM from the disk-encryption PowerShell cmdlet Get-AzureRmVMDiskEncryptionStatus. VM の暗号化設定を取得するには、次のように入力します。To get the encryption settings for your VM, enter the following:

C:\> Get-AzureRmVmDiskEncryptionStatus  -ResourceGroupName $ResourceGroupName -VMName $VMName
-ExtensionName $ExtensionName

OsVolumeEncrypted          : NotEncrypted
DataVolumesEncrypted       : Encrypted
OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
ProgressMessage            : https://rheltest1keyvault.vault.azure.net/secrets/bdb6bfb1-5431-4c28-af46-b18d0025ef2a/abebacb83d864a5fa729508315020f8a

Get-AzureRmVMDiskEncryptionStatus の出力から、暗号化キーの URL を確認できます。You can inspect the output of Get-AzureRmVMDiskEncryptionStatus for encryption key URLs.

C:\> $status = Get-AzureRmVmDiskEncryptionStatus  -ResourceGroupName $ResourceGroupName -VMName
e $VMName -ExtensionName $ExtensionName
C:\> $status.OsVolumeEncryptionSettings

DiskEncryptionKey                                                 KeyEncryptionKey                                               Enabled
-----------------                                                 ----------------                                               -------
Microsoft.Azure.Management.Compute.Models.KeyVaultSecretReference Microsoft.Azure.Management.Compute.Models.KeyVaultKeyReference    True


C:\> $status.OsVolumeEncryptionSettings.DiskEncryptionKey.SecretUrl
https://rheltest1keyvault.vault.azure.net/secrets/bdb6bfb1-5431-4c28-af46-b18d0025ef2a/abebacb83d864a5fa729508315020f8a
C:\> $status.OsVolumeEncryptionSettings.DiskEncryptionKey

SecretUrl                                                                                                               SourceVault
---------                                                                                                               -----------
https://rheltest1keyvault.vault.azure.net/secrets/bdb6bfb1-5431-4c28-af46-b18d0025ef2a/abebacb83d864a5fa729508315020f8a Microsoft.Azure.Management....

OSVolumeEncrypted と DataVolumesEncrypted の設定値は Encrypted に設定されています。これは、両方のボリュームが Azure Disk Encryption を使用して暗号化されることを示します。The OSVolumeEncrypted and DataVolumesEncrypted settings values are set to Encrypted, which shows that both volumes are encrypted using Azure Disk Encryption. Azure Disk Encryption での暗号化を PowerShell コマンドレットによって有効化する方法については、ブログ投稿「Explore Azure Disk Encryption with Azure PowerShell - Part 1」(Azure PowerShell を使用した Azure Disk Encryption の操作 - パート 1) および「Explore Azure Disk Encryption with Azure PowerShell - Part 2」(Azure PowerShell を使用した Azure Disk Encryption の操作 - パート 2) をご覧ください。For information about enabling encryption with Azure Disk Encryption by using PowerShell cmdlets, see the blog posts Explore Azure Disk Encryption with Azure PowerShell - Part 1 and Explore Azure Disk Encryption with Azure PowerShell - Part 2.

注意

Linux VM では、Get-AzureRmVMDiskEncryptionStatus コマンドレットで暗号化状態が返されるまでに 3 ~ 4 分かかります。On Linux VMs, it takes three to four minutes for the Get-AzureRmVMDiskEncryptionStatus cmdlet to report the encryption status.

ディスク暗号化 CLI コマンドから IaaS VM の暗号化状態を取得するGet the encryption status of the IaaS VM from the disk-encryption CLI command

IaaS VM の暗号化状態は、ディスク暗号化 CLI コマンド azure vm show-disk-encryption-status を使用して取得できます。You can get the encryption status of the IaaS VM by using the disk-encryption CLI command azure vm show-disk-encryption-status. VM の暗号化設定を取得するには、Azure CLI セッションで以下のように入力します。To get the encryption settings for your VM, enter your Azure CLI session:

azure vm show-disk-encryption-status --resource-group <yourResourceGroupName> --name <yourVMName> --json  

実行中の Windows IaaS VM での暗号化を無効にするDisable encryption on running Windows IaaS VM

実行中の Windows IaaS VM や Linux IaaS VM でのディスク暗号化を無効にし、暗号化解除の構成を指定するには、Azure Disk Encryption の Resource Manager テンプレートか、または PowerShell コマンドレットを使用できます。You can disable encryption on a running Windows or Linux IaaS VM via the Azure Disk Encryption Resource Manager template or PowerShell cmdlets and specify the decryption configuration.

Windows VMWindows VM

暗号化を無効にする手順を実行すると、Windows IaaS VM で実行されている OS、データ ボリューム、またはその両方の暗号化が無効になります。The disable-encryption step disables encryption of the OS, the data volume, or both on the running Windows IaaS VM. OS ボリュームの暗号化を無効にして、データ ボリュームを暗号化されたままにすることはできません。You cannot disable the OS volume and leave the data volume encrypted. 暗号化を無効にする手順を実行すると、Azure クラシック デプロイメント モデルによって VM サービス モデルが更新され、Windows IaaS VM は暗号化解除済みとしてマークされます。When the disable-encryption step is performed, the Azure classic deployment model updates the VM service model, and the Windows IaaS VM is marked decrypted. VM の内容は保存時に暗号化されなくなります。The contents of the VM are no longer encrypted at rest. 暗号化を解除しても、Key Vault や暗号化キー マテリアル (Windows の場合は BitLocker 暗号化キー、Linux の場合はパスフレーズ) は削除されません。The decryption does not delete your key vault and the encryption key material (BitLocker encryption keys for Windows and Passphrase for Linux).

Linux VMLinux VM

暗号化を無効にする手順を実行すると、Linux IaaS VM で実行されているデータ ボリュームの暗号化が無効になります。The disable-encryption step disables encryption of the data volume on the running Linux IaaS VM. この手順は、OS ディスクが暗号化されていない場合にのみ機能します。This step only works if the OS disk is not encrypted.

注意

Linux VM では、OS ディスクの暗号化を無効にすることは許可されていません。Disabling encryption on the OS disk is not allowed on Linux VMs.

既存または実行中の VM での暗号化を無効にするDisable encryption on an existing or running IaaS VM

実行中の Windows IaaS VM でのディスク暗号化は、Resource Manager テンプレートを使用して無効化できます。You can disable disk encryption on running Windows IaaS VMs by using the Resource Manager template.

  1. Azure クイック スタート テンプレートで、[Azure にデプロイ] をクリックし、[パラメーター] ブレードに暗号化解除構成を入力して、[OK] をクリックします。On the Azure quick-start template, click Deploy to Azure, enter the decryption configuration on the Parameters blade, and then click OK.

  2. サブスクリプション、リソース グループ、リソース グループの場所、法律条項および契約を選択し、[作成] をクリックして新しい IaaS VM での暗号化を有効にします。Select the subscription, resource group, resource group location, legal terms, and agreement, and then click Create to enable encryption on a new IaaS VM.

Linux VM の場合は、Disable encryption on a running Linux VM (実行中の Linux VM での暗号化を無効にする) テンプレートを使用して暗号化を無効にできます。For Linux VMs, you can disable encryption by using the Disable encryption on a running Linux VM template.

次の表は、実行中の IaaS VM での暗号化を無効にするための、Resource Manager テンプレートのパラメーターをまとめたものです。The following table lists Resource Manager template parameters for disabling encryption on a running IaaS VM:

パラメーターParameter DescriptionDescription
vmNamevmName 暗号化操作が実行される VM の名前。Name of the VM that the encryption operation is to be performed on.
volumeTypevolumeType 暗号化解除操作が実行されるボリュームの種類。Type of volume that a decryption operation is performed on. 有効な値は OSData、および All です。Valid values are OS, Data, and All. Data ボリュームの暗号化を無効にせずに、実行中の Windows IaaS VM の OS (ブート) ボリュームの暗号化を無効にすることはできません。You cannot disable encryption on running Windows IaaS VM OS/boot volume without disabling encryption on the Data volume. また、Linux VM では、OS ディスクの暗号化を無効にすることは許可されていません。Also note that disabling encryption on the OS disk is not allowed on Linux VMs.
sequenceVersionsequenceVersion BitLocker 操作のシーケンス バージョン。Sequence version of the BitLocker operation. ディスク暗号化解除操作が同じ VM で実行されるたびに、このバージョン番号をインクリメントします。Increment this version number every time a disk decryption operation is performed on the same VM.
既存または実行中の VM での暗号化を無効にするDisable encryption on an existing or running IaaS VM

既存または実行中の IaaS VM での暗号化を PowerShell コマンドレットによって無効化する方法については、Disable-AzureRmVMDiskEncryption をご覧ください。To disable encryption on an existing or running IaaS VM by using the PowerShell cmdlet, see Disable-AzureRmVMDiskEncryption. このコマンドレットは、Windows VM と Linux VM の両方をサポートします。This cmdlet supports both Windows and Linux VMs. このコマンドレットを実行すると、暗号化を無効にするための拡張機能が仮想マシンにインストールされます。To disable encryption, it installs an extension on the virtual machine. Name パラメーターが指定されなかった場合、拡張機能は既定の名前 (AzureDiskEncryption for Windows VMs) で作成されます。If the Name parameter is not specified, an extension with the default name AzureDiskEncryption for Windows VMs is created.

Linux VM では、AzureDiskEncryptionForLinux 拡張機能が使用されます。On Linux VMs, the AzureDiskEncryptionForLinux extension is used.

注意

このコマンドレットにより、仮想マシンが再起動されます。This cmdlet reboots the virtual machine.

Azure Managed Disk を使用して事前に暗号化された IaaS VM での暗号化を有効にするEnable encryption on pre-encrypted IaaS VM with Azure Managed Disk

Azure Managed Disk ARM テンプレートを使用して、次の場所にある ARM テンプレートを使用する事前に暗号化された VHD から暗号化 VM を作成しますUse the Azure Managed Disk ARM template to create a encrypted VM from a pre-encrypted VHD using the ARM template located at
新しい暗号化された管理ディスクを事前に暗号化された VHD/ストレージ BLOB から作成するCreate a new encrypted managed disk from a pre-encrypted VHD/storage blob

Azure Managed Disk を使用して新しい Linux IaaS VM での暗号化を有効にするEnable encryption on a new Linux IaaS VM with Azure Managed Disk

Azure Managed Disk ARM テンプレートを使用して、次の場所にある ARM テンプレートを使用する新しい暗号化された Linux IaaS VM を作成しますUse the Azure Managed Disk ARM template to create a new encrypted Linux IaaS VM using the ARM template located at
フルディスク暗号化を使用した RHEL 7.2 のデプロイDeployment of RHEL 7.2 with full disk encryption

Azure を使用して新しい Windows IaaS VM での暗号化を有効にするEnable encryption on a new Windows IaaS VM with Azure Managed Disk

Azure Managed Disk ARM テンプレートを使用して、次の場所にある ARM テンプレートを使用する新しい暗号化された Linux IaaS VM を作成しますUse the Azure Managed Disk ARM template to create a new encrypted Linux IaaS VM using the ARM template located at
ギャラリー イメージから新しい暗号化された Windows IaaS Managed Disk VM を作成するCreate a new encrypted Windows IaaS Managed Disk VM from gallery image

注意

Azure Disk Encryption を有効にする前に、Azure Disk Encryption 以外を使用して、管理ディスク ベースの VM インスタンスのスナップショットまたはバックアップ (またはその両方) を作成する必要があります。It is mandatory to snapshot and/or backup a managed disk based VM instance outside of and prior to enabling Azure Disk Encryption. 管理ディスクのスナップショットは、ポータルから作成できます。また、Azure Backup を使用できます。A snapshot of the managed disk can be taken from the portal, or Azure Backup can be used. バックアップがあると、暗号化中に予期しないエラーが発生した場合に、回復オプションを使用できるようになります。Backups ensure that a recovery option is possible in the case of any unexpected failure during encryption. バックアップを作成すると、Set-AzureRmVMDiskEncryptionExtension コマンドレットを使用し、-skipVmBackup パラメーターを指定して管理ディスクを暗号化できます。Once a backup is made, the Set-AzureRmVMDiskEncryptionExtension cmdlet can be used to encrypt managed disks by specifying the -skipVmBackup parameter. バックアップが作成されておらず、このパラメーターを指定していない場合、管理ディスク ベースの VM に対してこのコマンドを実行するとエラーが発生します。This command will fail against managed disk based VM's until a backup has been made and this parameter has been specified.

既存の暗号化された Premium 以外の VM の暗号化設定を更新するUpdate encryption settings of an existing encrypted non-premium VM

既存の Azure ディスク暗号化でサポートされている VM 実行用のインターフェイス [PS コマンドレット、CLI、または ARM テンプレート] を使用して、AAD クライアント ID/シークレット、キー暗号化キー [KEK]、BitLocker 暗号化キー (Windows VM の場合)、パスフレーズ (Linux VM の場合) などの暗号化設定を更新します。暗号化設定の更新は、Premium と Premium 以外の両方のストレージ VM に対してサポートされます。Use the existing Azure disk encryption supported interfaces for running VM [PS cmdlets, CLI or ARM templates] to update the encryption settings like AAD client ID/secret, Key encryption key [KEK], BitLocker encryption key for Windows VM or Passphrase for Linux VM etc. The update encryption setting is supported for both premium and non-premium storage VMs.

付録Appendix

サブスクリプションへの接続Connect to your subscription

続行する前に、この記事の「前提条件」セクションを確認してください。Before you proceed, review the Prerequisites section in this article. すべての前提条件が満たされていることを確認したら、次の手順に従ってサブスクリプションに接続してください。After you ensure that all prerequisites have been met, connect to your subscription by doing the following:

  1. Azure PowerShell セッションを開始し、次のコマンドを使用して Azure アカウントにサインインします。Start an Azure PowerShell session, and sign in to your Azure account with the following command:

    Login-AzureRmAccount

  2. 複数のサブスクリプションがあり、使用するサブスクリプションを指定する場合は、次のように入力して自分のアカウントのサブスクリプションを表示します。If you have multiple subscriptions and want to specify one to use, type the following to see the subscriptions for your account:

    Get-AzureRmSubscription

  3. 使用するサブスクリプションを指定するには、次のように入力します。To specify the subscription you want to use, type:

    Select-AzureRmSubscription -SubscriptionName <Yoursubscriptionname>

  4. 構成されているサブスクリプションが正しいことを確認するには、次のように入力します。To verify that the subscription configured is correct, type:

    Get-AzureRmSubscription

  5. Azure Disk Encryption コマンドレットがインストールされていることを確認するには、次のように入力します。To confirm the Azure Disk Encryption cmdlets are installed, type:

    Get-command *diskencryption*

  6. 次のような出力が表示されるので、Azure Disk Encryption PowerShell のインストールを確認します。The following output confirms the Azure Disk Encryption PowerShell installation:

    PS C:\Windows\System32\WindowsPowerShell\v1.0> get-command *diskencryption*
    CommandType  Name                                         Source                                                             
    Cmdlet       Get-AzureRmVMDiskEncryptionStatus            AzureRM.Compute                                                    
    Cmdlet       Disable-AzureRmVMDiskEncryption              AzureRM.Compute                                                    
    Cmdlet       Set-AzureRmVMDiskEncryptionExtension         AzureRM.Compute                                                     

事前に暗号化された Windows VHD を準備するPrepare a pre-encrypted Windows VHD

以下のセクションに示すのは、事前に暗号化された Windows VHD を準備し、それを Azure IaaS 内の暗号化された VHD としてデプロイするために必要な情報です。The sections that follow are necessary to prepare a pre-encrypted Windows VHD for deployment as an encrypted VHD in Azure IaaS. Azure Site Recovery や Azure 上に新しい Windows VM (VHD) を準備し、それらを起動する際には、これらの情報を使用してください。Use the information to prepare and boot a fresh Windows VM (VHD) on Azure Site Recovery or Azure.

グループ ポリシーを更新して非 TPM で OS を保護できるようにするUpdate group policy to allow non-TPM for OS protection

[ローカル コンピューター ポリシー] > [コンピューターの構成] > [管理用テンプレート] > [Windows コンポーネント] の下にある、[BitLocker ドライブ暗号化]という BitLocker グループ ポリシー設定を構成します。Configure the BitLocker Group Policy setting BitLocker Drive Encryption, which you'll find under Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components. 以下の図に示すように、[オペレーティング システムのドライブ] > [スタートアップ時に追加の認証を要求する] > [互換性のある TPM が装備されていない BitLocker を許可する] の順に選択して、この設定を変更します。Change this setting to Operating System Drives > Require additional authentication at startup > Allow BitLocker without a compatible TPM, as shown in the following figure:

Azure での Microsoft マルウェア対策

BitLocker 機能コンポーネントのインストールInstall BitLocker feature components

Windows Server 2012 以降の場合は、次のコマンドを使用します。For Windows Server 2012 and later, use the following command:

dism /online /Enable-Feature /all /FeatureName:BitLocker /quiet /norestart

Windows Server 2008 R2 の場合は、次のコマンドを使用します。For Windows Server 2008 R2, use the following command:

ServerManagerCmd -install BitLockers

bdehdcfg を使用して BitLocker の OS ボリュームを準備するPrepare the OS volume for BitLocker by using bdehdcfg

OS のパーティションを圧縮して、BitLocker のコンピューターを準備するには、次のコマンドを実行します。To compress the OS partition and prepare the machine for BitLocker, execute the following command:

bdehdcfg -target c: shrink -quiet

BitLocker を使用して OS ボリュームを保護するProtect the OS volume by using BitLocker

ブート ボリュームでの暗号化を、外部キーの保護機能を使用して有効化するには、manage-bde コマンドを使用します。Use the manage-bde command to enable encryption on the boot volume using an external key protector. また、外部ドライブまたは外部ボリューム上に外部キー (.bek ファイル) を配置します。Also place the external key (.bek file) on the external drive or volume. システム/ブート ボリュームでの暗号化は、次回のリブート後に有効になります。Encryption is enabled on the system/boot volume after the next reboot.

manage-bde -on %systemdrive% -sk [ExternalDriveOrVolume]
reboot

注意

BitLocker を使用して外部キーを取得する場合は、そのためのデータ/リソース VHD を別個に使用して VM を準備してください。Prepare the VM with a separate data/resource VHD for getting the external key by using BitLocker.

実行中の Linux VM での OS ドライブの暗号化Encrypting an OS drive on a running Linux VM

実行中の Linux VM での OS のドライブの暗号化は、次のディストリビューションでサポートされます。Encryption of an OS drive on a running Linux VM is supported on the following distributions:

  • RHEL 7.2RHEL 7.2
  • CentOS 7.2CentOS 7.2
  • Ubuntu 16.04Ubuntu 16.04
OS ディスクを暗号化するための前提条件Prerequisites for OS disk encryption
  • VM は、Azure Resource Manager で Marketplace イメージから作成する必要があります。The VM must be created from the Marketplace image in Azure Resource Manager.
  • 少なくとも 4 GB の RAM を持つAzure VM (推奨するサイズは 7 GB)。Azure VM with at least 4 GB of RAM (recommended size is 7 GB).
  • (RHEL と CentOS については) SELinux を無効にします。(For RHEL and CentOS) Disable SELinux. SELinux を無効にする方法については、To disable SELinux, see "4.4.2. VM で「SELinux User's and Administrator's Guide (SELinux ユーザーおよび管理者用ガイド)」の「4.4.2. Disabling SELinux (SELinux の無効化)」をご覧ください。Disabling SELinux" in the SELinux User's and Administrator's Guide on the VM.
  • SELinux を無効にしたら、少なくとも 1 回、VM を再起動してください。After you disable SELinux, reboot the VM at least once.
手順Steps
  1. 上記のディストリビューションのいずれかを使用して、VM を作成します。Create a VM by using one of the distributions specified previously.

    CentOS 7.2 では、OS ディスクの暗号化は、特別なイメージを使用してサポートされます。For CentOS 7.2, OS disk encryption is supported via a special image. このイメージを使用するには、VM を作成するときに、SKU として "7.2n" を指定します。To use this image, specify "7.2n" as the SKU when you create the VM:

     Set-AzureRmVMSourceImage -VM $VirtualMachine -PublisherName "OpenLogic" -Offer "CentOS" -Skus "7.2n" -Version "latest"
    
  2. ニーズに応じて VM を構成します。Configure the VM according to your needs. すべてのドライブ (OS およびデータ) を暗号化する場合は、/etc/fstab にデータ ドライブを指定してマウントできるようにする必要があります。If you are going to encrypt all the (OS + data) drives, the data drives need to be specified and mountable from /etc/fstab.

    注意

    /etc/fstab にデータ ドライブを指定するには、ブロック デバイス名 (たとえば、/dev/sdb1 など) ではなく、UUID=... を使用してください。Use UUID=... to specify data drives in /etc/fstab instead of specifying the block device name (for example, /dev/sdb1). 暗号化中には、ドライブの順序が VM 上で変更されます。During encryption, the order of drives changes on the VM. VM がブロック デバイスの特定の順序に依存している場合、暗号化後のマウントは失敗します。If your VM relies on a specific order of block devices, it will fail to mount them after encryption.

  3. SSH セッションからサインアウトします。Sign out of the SSH sessions.

  4. OS を暗号化するには、暗号化を有効にするときに、volumeType として All または OS を指定します。To encrypt the OS, specify volumeType as All or OS when you enable encryption.

    注意

    systemd サービスとして実行されているすべてのユーザー スペースのプロセスは、SIGKILL によって強制終了されます。All user-space processes that are not running as systemd services should be killed with a SIGKILL. VM を再起動してください。Reboot the VM. 実行中の VM での OS ディスクの暗号化を有効にする場合は、VM のダウンタイムを計画してください。When you enable OS disk encryption on a running VM, plan on VM downtime.

  5. 次のセクションの指示に従って、暗号化の進行状況を定期的に監視します。Periodically monitor the progress of encryption by using the instructions in the next section.

  6. Get-AzureRmVmDiskEncryptionStatus で "VMRestartPending" が表示されたら、VM にサインインするか、ポータル、PowerShell、または CLI を使用して VM を再起動します。After Get-AzureRmVmDiskEncryptionStatus shows "VMRestartPending," restart your VM either by signing in to it or by using the portal, PowerShell, or CLI.

    C:\> Get-AzureRmVmDiskEncryptionStatus  -ResourceGroupName $ResourceGroupName -VMName $VMName
    -ExtensionName $ExtensionName
    
    OsVolumeEncrypted          : VMRestartPending
    DataVolumesEncrypted       : NotMounted
    OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
    ProgressMessage            : OS disk successfully encrypted, reboot the VM
    

    再起動する前に、VM のブート診断を保存することをお勧めします。Before you reboot, we recommend that you save boot diagnostics of the VM.

OS 暗号化の進行状況の監視Monitoring OS encryption progress

OS 暗号化の進行状況を監視するには、次の 3 つの方法があります。You can monitor OS encryption progress in three ways:

  • Get-AzureRmVmDiskEncryptionStatus コマンドレットを使用して、ProgressMessage フィールドを確認する。Use the Get-AzureRmVmDiskEncryptionStatus cmdlet and inspect the ProgressMessage field:

    OsVolumeEncrypted          : EncryptionInProgress
    DataVolumesEncrypted       : NotMounted
    OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings
    ProgressMessage            : OS disk encryption started
    

    VM が "OS disk encryption started (OS ディスクの暗号化が開始されました)" 状態に達するまで、Premium ストレージを使用する VM でおよそ 40 ~ 50 分かかります。After the VM reaches "OS disk encryption started," it takes about 40 to 50 minutes on a Premium-storage backed VM.

    WALinuxAgent での問題 #388 により、一部のディストリビューションでは、OsVolumeEncryptedDataVolumesEncryptedUnknown と表示されます。Because of issue #388 in WALinuxAgent, OsVolumeEncrypted and DataVolumesEncrypted show up as Unknown in some distributions. WALinuxAgent バージョン 2.1.5 以降では、この問題は自動的に修正されます。With WALinuxAgent version 2.1.5 and later, this issue is fixed automatically. 出力に Unknown が含まれている場合は、Azure リソース エクスプローラーを使用して、ディスクの暗号化状態を確認できます。If you see Unknown in the output, you can verify disk-encryption status by using the Azure Resource Explorer.

    Azure リソース エクスプローラーに移動し、左側の選択パネルで次の階層を展開します。Go to Azure Resource Explorer, and then expand this hierarchy in the selection panel on left:

    |-- subscriptions
       |-- [Your subscription]
            |-- resourceGroups
                 |-- [Your resource group]
                      |-- providers
                           |-- Microsoft.Compute
                                |-- virtualMachines
                                     |-- [Your virtual machine]
                                          |-- InstanceView
    

    InstanceView で、画面を下にスクロールして、ドライブの暗号化の状態を表示します。In the InstanceView, scroll down to see the encryption status of your drives.

    VM インスタンス ビュー

  • ブート診断を調べる。Look at boot diagnostics. ADE 拡張機能のメッセージには、頭に [AzureDiskEncryption] が付きます。Messages from the ADE extension should be prefixed with [AzureDiskEncryption].

  • SSH を使用して VM にサインインし、拡張機能ログを取得する。Sign in to the VM via SSH, and get the extension log from:

    /var/log/azure/Microsoft.Azure.Security.AzureDiskEncryptionForLinux/var/log/azure/Microsoft.Azure.Security.AzureDiskEncryptionForLinux

    OS 暗号化の進行中は、VM にサインインしないでください。We recommend that you do not sign in to the VM while OS encryption is in progress. ログのコピーは、他の 2 つの方法が失敗した場合にのみ行ってください。Copy the logs only when the other two methods have failed.

事前に暗号化された Linux VHD を準備するPrepare a pre-encrypted Linux VHD

Ubuntu 16Ubuntu 16

次の手順に従って、ディストリビューションのインストール時に暗号化を構成します。Configure encryption during the distribution installation by doing the following:

  1. ディスクをパーティション分割するときに [Configure encrypted volumes] を選択します。Select Configure encrypted volumes when you partition the disks.

    Ubuntu 16.04 のセットアップ

  2. 独立したブート ドライブを作成します。このドライブは暗号化しません。Create a separate boot drive, which must not be encrypted. ルート ドライブを暗号化します。Encrypt your root drive.

    Ubuntu 16.04 のセットアップ

  3. パスフレーズを指定します。Provide a passphrase. これは、KeyVault にアップロードするパスフレーズです。This is the passphrase that you upload to the key vault.

    Ubuntu 16.04 のセットアップ

  4. パーティション分割を終了します。Finish partitioning.

    Ubuntu 16.04 のセットアップ

  5. VM を起動し、パスフレーズの入力を求められたら、手順 3 で指定したパスフレーズを入力します。When you boot the VM and are asked for a passphrase, use the passphrase you provided in step 3.

    Ubuntu 16.04 のセットアップ

  6. こちらの手順に従って、VM を Azure にアップロードするための準備をします。Prepare the VM for uploading into Azure using these instructions. 最後の手順 (VM のプロビジョニング解除) はまだ実行しないでください。Do not run the last step (deprovisioning the VM) yet.

次の手順に従って、暗号化に関する Azure との連携を構成します。Configure encryption to work with Azure by doing the following:

  1. 以下のスクリプトのコンテンツを使用して、/usr/local/sbin/azure_crypt_key.sh の下にファイルを作成します。Create a file under /usr/local/sbin/azure_crypt_key.sh, with the content in the following script. KeyFileName に注意してください。これは、Azure によって使用されるパスフレーズ ファイル名です。Pay attention to the KeyFileName, because it is the passphrase file name used by Azure.

    #!/bin/sh
    MountPoint=/tmp-keydisk-mount
    KeyFileName=LinuxPassPhraseFileName
    echo "Trying to get the key from disks ..." >&2
    mkdir -p $MountPoint
    modprobe vfat >/dev/null 2>&1
    modprobe ntfs >/dev/null 2>&1
    sleep 2
    OPENED=0
    cd /sys/block
    for DEV in sd*; do
    
        echo "> Trying device: $DEV ..." >&2
        mount -t vfat -r /dev/${DEV}1 $MountPoint >/dev/null||
        mount -t ntfs -r /dev/${DEV}1 $MountPoint >/dev/null
        if [ -f $MountPoint/$KeyFileName ]; then
                cat $MountPoint/$KeyFileName
                umount $MountPoint 2>/dev/null
                OPENED=1
                break
        fi
        umount $MountPoint 2>/dev/null
    done
    
      if [ $OPENED -eq 0 ]; then
        echo "FAILED to find suitable passphrase file ..." >&2
        echo -n "Try to enter your password: " >&2
        read -s -r A </dev/console
        echo -n "$A"
     else
        echo "Success loading keyfile!" >&2
    fi
    
  2. /etc/crypttab の crypt 構成を変更します。Change the crypt config in /etc/crypttab. 次のようになります。It should look like this:

     xxx_crypt uuid=xxxxxxxxxxxxxxxxxxxxx none luks,discard,keyscript=/usr/local/sbin/azure_crypt_key.sh
    
  3. Windows で azure_crypt_key.sh を編集し、それを Linux にコピーした場合は、dos2unix /usr/local/sbin/azure_crypt_key.sh を実行します。If you are editing azure_crypt_key.sh in Windows and you copied it to Linux, run dos2unix /usr/local/sbin/azure_crypt_key.sh.

  4. 実行可能アクセス許可をスクリプトに追加します。Add executable permissions to the script:

     chmod +x /usr/local/sbin/azure_crypt_key.sh
    
  5. /etc/initramfs-tools/modules を編集し、次の行を追加します。Edit /etc/initramfs-tools/modules by appending lines: vfat ntfs nls_cp437 nls_utf8 nls_iso8859-1
  6. update-initramfs -u -k all を実行して initramfs を更新し、keyscript を有効にします。Run update-initramfs -u -k all to update the initramfs to make the keyscript take effect.

  7. これで、VM をプロビジョニング解除できるようになります。Now you can deprovision the VM.

    Ubuntu 16.04 のセットアップ

  8. 次の手順に進み、Azure に VHD をアップロードします。Continue to the next step and upload your VHD into Azure.

openSUSE 13.2openSUSE 13.2

ディストリビューションのインストール時に暗号化を構成するには、次の操作を行います。To configure encryption during the distribution installation, do the following:

  1. ディスクをパーティション分割するときに、[ボリューム グループの暗号化] を選択し、パスワードを入力します。When you partition the disks, select Encrypt Volume Group, and then enter a password. これは、Key Vault にアップロードするパスワードです。This is the password that you will upload to your key vault.

    openSUSE 13.2 のセットアップ

  2. パスワードを使用して VM を起動します。Boot the VM using your password.

    openSUSE 13.2 のセットアップ

  3. Azure 用の SLES または openSUSE 仮想マシンの準備」の手順に従って、VM を Azure にアップロードするための準備をします。Prepare the VM for uploading to Azure by following the instructions in Prepare a SLES or openSUSE virtual machine for Azure. 最後の手順 (VM のプロビジョニング解除) はまだ実行しないでください。Do not run the last step (deprovisioning the VM) yet.

暗号化に関する Azure との連携を構成するには、次の操作を行います。To configure encryption to work with Azure, do the following:

  1. /etc/dracut.conf を編集し、次の行を追加します。Edit the /etc/dracut.conf, and add the following line: add_drivers+=" vfat ntfs nls_cp437 nls_iso8859-1"
  2. ファイル /usr/lib/dracut/modules.d/90crypt/module-setup.sh の末尾付近にある以下の行をコメント アウトします。Comment out these lines by the end of the file /usr/lib/dracut/modules.d/90crypt/module-setup.sh:

     #        inst_multiple -o \
     #        $systemdutildir/system-generators/systemd-cryptsetup-generator \
     #        $systemdutildir/systemd-cryptsetup \
     #        $systemdsystemunitdir/systemd-ask-password-console.path \
     #        $systemdsystemunitdir/systemd-ask-password-console.service \
     #        $systemdsystemunitdir/cryptsetup.target \
     #        $systemdsystemunitdir/sysinit.target.wants/cryptsetup.target \
     #        systemd-ask-password systemd-tty-ask-password-agent
     #        inst_script "$moddir"/crypt-run-generator.sh /sbin/crypt-run-generator
    
  3. /usr/lib/dracut/modules.d/90crypt/parse-crypt.sh ファイルの先頭に次の行を追加し、Append the following line at the beginning of the file /usr/lib/dracut/modules.d/90crypt/parse-crypt.sh:

     DRACUT_SYSTEMD=0
    

    次の記述のすべての出現箇所をAnd change all occurrences of:

     if [ -z "$DRACUT_SYSTEMD" ]; then
    

    を次のように変更します。to:

     if [ 1 ]; then
    
  4. /usr/lib/dracut/modules.d/90crypt/cryptroot-ask.sh を編集し、それを "# Open LUKS device" に追加します。Edit /usr/lib/dracut/modules.d/90crypt/cryptroot-ask.sh and append it to “# Open LUKS device”:

    MountPoint=/tmp-keydisk-mount
    KeyFileName=LinuxPassPhraseFileName
    echo "Trying to get the key from disks ..." >&2
    mkdir -p $MountPoint >&2
    modprobe vfat >/dev/null >&2
    modprobe ntfs >/dev/null >&2
    for SFS in /dev/sd*; do
    echo "> Trying device:$SFS..." >&2
    mount ${SFS}1 $MountPoint -t vfat -r >&2 ||
    mount ${SFS}1 $MountPoint -t ntfs -r >&2
    if [ -f $MountPoint/$KeyFileName ]; then
        echo "> keyfile got..." >&2
        cp $MountPoint/$KeyFileName /tmp-keyfile >&2
        luksfile=/tmp-keyfile
        umount $MountPoint >&2
        break
    fi
    done
    
  5. /usr/sbin/dracut -f -v を実行して initrd を更新します。Run /usr/sbin/dracut -f -v to update the initrd.

  6. これで、VM をプロビジョニング解除し、Azure に VHD をアップロードできるようになります。Now you can deprovision the VM and upload your VHD into Azure.

CentOS 7CentOS 7

ディストリビューションのインストール時に暗号化を構成するには、次の操作を行います。To configure encryption during the distribution installation, do the following:

  1. ディスクをパーティション分割するときに [Encrypt my data] を選択します。Select Encrypt my data when you partition disks.

    CentOS 7 のセットアップ

  2. ルート パーティションで [Encrypt] が選択されていることを確認します。Make sure Encrypt is selected for root partition.

    CentOS 7 のセットアップ

  3. パスフレーズを指定します。Provide a passphrase. これは、Key Vault にアップロードするパスフレーズです。This is the passphrase that you will upload to your key vault.

    CentOS 7 のセットアップ

  4. VM を起動し、パスフレーズの入力を求められたら、手順 3 で指定したパスフレーズを入力します。When you boot the VM and are asked for a passphrase, use the passphrase you provided in step 3.

    CentOS 7 のセットアップ

  5. Azure 用の CentOS ベースの仮想マシンの準備」の「CentOS 7.0+」の手順に従って、VM を Azure にアップロードするための準備をします。Prepare the VM for uploading into Azure by using the "CentOS 7.0+" instructions in Prepare a CentOS-based virtual machine for Azure. 最後の手順 (VM のプロビジョニング解除) はまだ実行しないでください。Do not run the last step (deprovisioning the VM) yet.

  6. これで、VM をプロビジョニング解除し、Azure に VHD をアップロードできるようになります。Now you can deprovision the VM and upload your VHD into Azure.

暗号化に関する Azure との連携を構成するには、次の操作を行います。To configure encryption to work with Azure, do the following:

  1. /etc/dracut.conf を編集し、次の行を追加します。Edit the /etc/dracut.conf, and add the following line:

    add_drivers+=" vfat ntfs nls_cp437 nls_iso8859-1"
    
  2. ファイル /usr/lib/dracut/modules.d/90crypt/module-setup.sh の末尾付近にある以下の行をコメント アウトします。Comment out these lines by the end of the file /usr/lib/dracut/modules.d/90crypt/module-setup.sh:

     #        inst_multiple -o \
     #        $systemdutildir/system-generators/systemd-cryptsetup-generator \
     #        $systemdutildir/systemd-cryptsetup \
     #        $systemdsystemunitdir/systemd-ask-password-console.path \
     #        $systemdsystemunitdir/systemd-ask-password-console.service \
     #        $systemdsystemunitdir/cryptsetup.target \
     #        $systemdsystemunitdir/sysinit.target.wants/cryptsetup.target \
     #        systemd-ask-password systemd-tty-ask-password-agent
     #        inst_script "$moddir"/crypt-run-generator.sh /sbin/crypt-run-generator
    
  3. /usr/lib/dracut/modules.d/90crypt/parse-crypt.sh ファイルの先頭に次の行を追加し、Append the following line at the beginning of the file /usr/lib/dracut/modules.d/90crypt/parse-crypt.sh:

     DRACUT_SYSTEMD=0
    

    次の記述のすべての出現箇所をAnd change all occurrences of:

     if [ -z "$DRACUT_SYSTEMD" ]; then
    

    toto

     if [ 1 ]; then
    
  4. /usr/lib/dracut/modules.d/90crypt/cryptroot-ask.sh を編集し、これを "# Open LUKS device" の後に追加します。Edit /usr/lib/dracut/modules.d/90crypt/cryptroot-ask.sh and append this after the “# Open LUKS device”: MountPoint=/tmp-keydisk-mount KeyFileName=LinuxPassPhraseFileName echo "Trying to get the key from disks ..." >&2 mkdir -p $MountPoint >&2 modprobe vfat >/dev/null >&2 modprobe ntfs >/dev/null >&2 for SFS in /dev/sd*; do echo "> Trying device:$SFS..." >&2 mount ${SFS}1 $MountPoint -t vfat -r >&2 || mount ${SFS}1 $MountPoint -t ntfs -r >&2 if [ -f $MountPoint/$KeyFileName ]; then echo "> keyfile got..." >&2 cp $MountPoint/$KeyFileName /tmp-keyfile >&2 luksfile=/tmp-keyfile umount $MountPoint >&2 break fi done
  5. “/usr/sbin/dracut -f -v” を実行して initrd を更新します。Run the “/usr/sbin/dracut -f -v” to update the initrd.

CentOS 7 のセットアップ

暗号化された VHD を Azure ストレージ アカウントにアップロードするUpload encrypted VHD to an Azure storage account

BitLocker 暗号化または DM-Crypt 暗号化を有効にしたら、ローカルで暗号化された VHD をストレージ アカウントにアップロードする必要があります。After BitLocker encryption or DM-Crypt encryption is enabled, the local encrypted VHD needs to be uploaded to your storage account.

Add-AzureRmVhd [-Destination] <Uri> [-LocalFilePath] <FileInfo> [[-NumberOfUploaderThreads] <Int32> ] [[-BaseImageUriToPatch] <Uri> ] [[-OverWrite]] [ <CommonParameters>]

事前に暗号化された VM のディスク暗号化シークレットを Key Vault にアップロードするUpload the disk-encryption secret for the pre-encrypted VM to your key vault

前に取得したディスク暗号化シークレットを、Key Vault にシークレットとしてアップロードする必要があります。The disk-encryption secret that you obtained previously must be uploaded as a secret in your key vault. Key Vault では、ディスク暗号化だけではなく、Azure AD クライアントに対するアクセス許可も有効になっている必要があります。The key vault needs to have disk encryption and permissions enabled for your Azure AD client.

$AadClientId = "YourAADClientId"
$AadClientSecret = "YourAADClientSecret"

$key vault = New-AzureRmKeyVault -VaultName $KeyVaultName -ResourceGroupName $ResourceGroupName -Location $Location

Set-AzureRmKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $ResourceGroupName -ServicePrincipalName $AadClientId -PermissionsToKeys all -PermissionsToSecrets all
Set-AzureRmKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $ResourceGroupName -EnabledForDiskEncryption

KEK で暗号化されないディスク暗号化シークレットDisk encryption secret not encrypted with a KEK

Key Vault でシークレットをセットアップするには、Set-AzureKeyVaultSecret を使用します。To set up the secret in your key vault, use Set-AzureKeyVaultSecret. Windows 仮想マシンがある場合は、bek ファイルが base64 文字列としてエンコードされ、その後、Set-AzureKeyVaultSecret コマンドレットを使用して Key Vault にアップロードされます。If you have a Windows virtual machine, the bek file is encoded as a base64 string and then uploaded to your key vault using the Set-AzureKeyVaultSecret cmdlet. Linux の場合は、パスフレーズが base64 文字列としてエンコードされ、その後 Key Vault にアップロードされます。For Linux, the passphrase is encoded as a base64 string and then uploaded to the key vault. また、Key Vault でシークレットを作成する際には、以下のタグが設定されます。In addition, make sure that the following tags are set when you create the secret in the key vault.

# This is the passphrase that was provided for encryption during the distribution installation
$passphrase = "contoso-password"

$tags = @{"DiskEncryptionKeyEncryptionAlgorithm" = "RSA-OAEP"; "DiskEncryptionKeyFileName" = "LinuxPassPhraseFileName"}
$secretName = [guid]::NewGuid().ToString()
$secretValue = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($passphrase))
$secureSecretValue = ConvertTo-SecureString $secretValue -AsPlainText -Force

$secret = Set-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $secretName -SecretValue $secureSecretValue -tags $tags
$secretUrl = $secret.Id

KEK を使用せずに OS ディスクをアタッチする場合は、次の手順で $secretUrl を使用します。Use the $secretUrl in the next step for attaching the OS disk without using KEK.

KEK で暗号化されるディスク暗号化シークレットDisk encryption secret encrypted with a KEK

必要であれば、シークレットを Key Vault にアップロードする前に、キー暗号化キーを使用してシークレットを暗号化できます。Before you upload the secret to the key vault, you can optionally encrypt it by using a key encryption key. 最初にキー暗号化キーを使用してシークレットを暗号化するには、ラップ API を使用します。Use the wrap API to first encrypt the secret using the key encryption key. このラップ操作の出力は、base64 URL エンコードされた文字列です。これは、Set-AzureKeyVaultSecret コマンドレットを使用してシークレットとしてアップロードできます。The output of this wrap operation is a base64 URL encoded string, which you can then upload as a secret by using the Set-AzureKeyVaultSecret cmdlet.

# This is the passphrase that was provided for encryption during the distribution installation
$passphrase = "contoso-password"

Add-AzureKeyVaultKey -VaultName $KeyVaultName -Name "keyencryptionkey" -Destination Software
$KeyEncryptionKey = Get-AzureKeyVaultKey -VaultName $KeyVault.OriginalVault.Name -Name "keyencryptionkey"

$apiversion = "2015-06-01"

##############################
# Get Auth URI
##############################

$uri = $KeyVault.VaultUri + "/keys"
$headers = @{}

$response = try { Invoke-RestMethod -Method GET -Uri $uri -Headers $headers } catch { $_.Exception.Response }

$authHeader = $response.Headers["www-authenticate"]
$authUri = [regex]::match($authHeader, 'authorization="(.*?)"').Groups[1].Value

Write-Host "Got Auth URI successfully"

##############################
# Get Auth Token
##############################

$uri = $authUri + "/oauth2/token"
$body = "grant_type=client_credentials"
$body += "&client_id=" + $AadClientId
$body += "&client_secret=" + [Uri]::EscapeDataString($AadClientSecret)
$body += "&resource=" + [Uri]::EscapeDataString("https://vault.azure.net")
$headers = @{}

$response = Invoke-RestMethod -Method POST -Uri $uri -Headers $headers -Body $body

$access_token = $response.access_token

Write-Host "Got Auth Token successfully"

##############################
# Get KEK info
##############################

$uri = $KeyEncryptionKey.Id + "?api-version=" + $apiversion
$headers = @{"Authorization" = "Bearer " + $access_token}

$response = Invoke-RestMethod -Method GET -Uri $uri -Headers $headers

$keyid = $response.key.kid

Write-Host "Got KEK info successfully"

##############################
# Encrypt passphrase using KEK
##############################

$passphraseB64 = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($Passphrase))
$uri = $keyid + "/encrypt?api-version=" + $apiversion
$headers = @{"Authorization" = "Bearer " + $access_token; "Content-Type" = "application/json"}
$bodyObj = @{"alg" = "RSA-OAEP"; "value" = $passphraseB64}
$body = $bodyObj | ConvertTo-Json

$response = Invoke-RestMethod -Method POST -Uri $uri -Headers $headers -Body $body

$wrappedSecret = $response.value

Write-Host "Encrypted passphrase successfully"

##############################
# Store secret
##############################

$secretName = [guid]::NewGuid().ToString()
$uri = $KeyVault.VaultUri + "/secrets/" + $secretName + "?api-version=" + $apiversion
$secretAttributes = @{"enabled" = $true}
$secretTags = @{"DiskEncryptionKeyEncryptionAlgorithm" = "RSA-OAEP"; "DiskEncryptionKeyFileName" = "LinuxPassPhraseFileName"}
$headers = @{"Authorization" = "Bearer " + $access_token; "Content-Type" = "application/json"}
$bodyObj = @{"value" = $wrappedSecret; "attributes" = $secretAttributes; "tags" = $secretTags}
$body = $bodyObj | ConvertTo-Json

$response = Invoke-RestMethod -Method PUT -Uri $uri -Headers $headers -Body $body

Write-Host "Stored secret successfully"

$secretUrl = $response.id

KEK を使用して OS ディスクをアタッチする場合は、次の手順で $KeyEncryptionKey$secretUrl を使用します。Use $KeyEncryptionKey and $secretUrl in the next step for attaching the OS disk using KEK.

OS ディスクをアタッチするときにシークレット URL を指定するSpecify a secret URL when you attach an OS disk

KEK を使用しないWithout using a KEK

OS ディスクをアタッチする際に、$secretUrl を渡す必要があります。While you are attaching the OS disk, you need to pass $secretUrl. この URL は、「KEK で暗号化されないディスク暗号化シークレット」セクションで生成されたものです。The URL was generated in the "Disk-encryption secret not encrypted with a KEK" section.

Set-AzureRmVMOSDisk `
        -VM $VirtualMachine `
        -Name $OSDiskName `
        -SourceImageUri $VhdUri `
        -VhdUri $OSDiskUri `
        -Linux `
        -CreateOption FromImage `
        -DiskEncryptionKeyVaultId $KeyVault.ResourceId `
        -DiskEncryptionKeyUrl $SecretUrl

KEK を使用するUsing a KEK

OS ディスクをアタッチする際に、$KeyEncryptionKey$secretUrl を渡します。When you attach the OS disk, pass $KeyEncryptionKey and $secretUrl. この URL は、「KEK で暗号化されないディスク暗号化シークレット」セクションで生成されたものです。The URL was generated in the "Disk-encryption secret not encrypted with a KEK" section.

Set-AzureRmVMOSDisk `
        -VM $VirtualMachine `
        -Name $OSDiskName `
        -SourceImageUri $CopiedTemplateBlobUri `
        -VhdUri $OSDiskUri `
        -Linux `
        -CreateOption FromImage `
        -DiskEncryptionKeyVaultId $KeyVault.ResourceId `
        -DiskEncryptionKeyUrl $SecretUrl `
        -KeyEncryptionKeyVaultId $KeyVault.ResourceId `
        -KeyEncryptionKeyURL $KeyEncryptionKey.Id

このガイドをダウンロードするDownload this guide

このガイドは TechNet ギャラリーからダウンロードできます。You can download this guide from the TechNet Gallery.

BLOB の詳細For more information

Azure PowerShell を使用する Azure Disk Encryption の探索 - パート 1Explore Azure Disk Encryption with Azure PowerShell - Part 1
Azure PowerShell を使用する Azure Disk Encryption の探索 - パート 2Explore Azure Disk Encryption with Azure PowerShell - Part 2