Set-AzVMDiskEncryptionExtension
Azure で実行中の IaaS 仮想マシンでの暗号化を有効にします。
構文
Set-AzVMDiskEncryptionExtension
[-ResourceGroupName] <String>
[-VMName] <String>
[-DiskEncryptionKeyVaultUrl] <String>
[-DiskEncryptionKeyVaultId] <String>
[[-KeyEncryptionKeyUrl] <String>]
[[-KeyEncryptionKeyVaultId] <String>]
[[-KeyEncryptionAlgorithm] <String>]
[[-VolumeType] <String>]
[[-SequenceVersion] <String>]
[[-TypeHandlerVersion] <String>]
[[-Name] <String>]
[[-Passphrase] <String>]
[-Force]
[-DisableAutoUpgradeMinorVersion]
[-SkipVmBackup]
[-ExtensionType <String>]
[-ExtensionPublisherName <String>]
[-EncryptFormatAll]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzVMDiskEncryptionExtension
[-ResourceGroupName] <String>
[-VMName] <String>
[-AadClientID] <String>
[-AadClientSecret] <String>
[-DiskEncryptionKeyVaultUrl] <String>
[-DiskEncryptionKeyVaultId] <String>
[[-KeyEncryptionKeyUrl] <String>]
[[-KeyEncryptionKeyVaultId] <String>]
[[-KeyEncryptionAlgorithm] <String>]
[[-VolumeType] <String>]
[[-SequenceVersion] <String>]
[[-TypeHandlerVersion] <String>]
[[-Name] <String>]
[[-Passphrase] <String>]
[-Force]
[-DisableAutoUpgradeMinorVersion]
[-SkipVmBackup]
[-ExtensionType <String>]
[-ExtensionPublisherName <String>]
[-EncryptFormatAll]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzVMDiskEncryptionExtension
[-ResourceGroupName] <String>
[-VMName] <String>
[-AadClientID] <String>
[-AadClientCertThumbprint] <String>
[-DiskEncryptionKeyVaultUrl] <String>
[-DiskEncryptionKeyVaultId] <String>
[[-KeyEncryptionKeyUrl] <String>]
[[-KeyEncryptionKeyVaultId] <String>]
[[-KeyEncryptionAlgorithm] <String>]
[[-VolumeType] <String>]
[[-SequenceVersion] <String>]
[[-TypeHandlerVersion] <String>]
[[-Name] <String>]
[[-Passphrase] <String>]
[-Force]
[-DisableAutoUpgradeMinorVersion]
[-SkipVmBackup]
[-ExtensionType <String>]
[-ExtensionPublisherName <String>]
[-EncryptFormatAll]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-AzVMDiskEncryptionExtension
[-ResourceGroupName] <String>
[-VMName] <String>
[-Migrate]
Set-AzVMDiskEncryptionExtension
[-ResourceGroupName] <String>
[-VMName] <String>
[-MigrationRecovery]
説明
Set-AzVMDiskEncryptionExtension コマンドレットを使用すると、Azure で実行中のサービスとしてのインフラストラクチャ (IaaS) 仮想マシンでの暗号化が可能になります。 仮想マシンにディスク暗号化拡張機能をインストールして暗号化を有効にします。
このコマンドレットでは、暗号化を有効にする手順の 1 つとして、ユーザーからの確認が必要です。仮想マシンの再起動が必要です。
このコマンドレットを実行する前に、作業内容を仮想マシンに保存することをお勧めします。
Linux: Linux 仮想マシンを暗号化するときは VolumeType パラメーターが必要であり、Linux ディストリビューションでサポートされる値 ("Os"、"Data"、または "All") に設定する必要があります。
Windows: VolumeType パラメーターは省略できます。この場合、操作の既定値は All になります。Windows 仮想マシンに VolumeType パラメーターが存在する場合は、すべてまたは OS に設定する必要があります。
例
例 1: 暗号化を有効にする
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$VolumeType = "All"
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType $VolumeType
この例では、AD 資格情報を指定せずに VM で暗号化を有効にします。
例 2: パイプライン入力で暗号化を有効にする
$params = New-Object PSObject -Property @{
ResourceGroupName = "[resource-group-name]"
VMName = "[vm-name]"
DiskEncryptionKeyVaultId = "/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]"
DiskEncryptionKeyVaultUrl = "https://[keyvault-name].vault.azure.net"
KeyEncryptionKeyVaultId = "/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]"
KeyEncryptionKeyUrl = "https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]"
VolumeType = "All"
}
$params | Set-AzVmDiskEncryptionExtension
この例では、AD 資格情報を指定せずに、パイプライン入力を使用してパラメーターを送信し、VM で暗号化を有効にします。
例 3: Azure AD クライアント ID とクライアント シークレットを使用して暗号化を有効にする
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$AADClientID = "<clientID of your Azure AD app>"
$AADClientSecret = "<clientSecret of your Azure AD app>"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$VolumeType = "All"
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientSecret $AADClientSecret -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType $VolumeType
この例では、Azure AD クライアント ID とクライアント シークレットを使用して、VM での暗号化を有効にします。
例 4: Azure AD クライアント ID とクライアント認定拇印を使用して暗号化を有効にする
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
#The KeyVault must have enabledForDiskEncryption property set on it
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$VolumeType = "All"
# create Azure AD application and associate the certificate
$CertPath = "C:\certificates\examplecert.pfx"
$CertPassword = "Password"
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
$CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -CertValue $CertValue
$ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId
$AADClientID = $AzureAdApplication.ApplicationId
$aadClientCertThumbprint= $cert.Thumbprint
#Upload pfx to KeyVault
$KeyVaultSecretName = "MyAADCert"
$FileContentBytes = Get-Content $CertPath -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)
$Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName -SecretValue $Secret
Set-AzKeyVaultAccessPolicy -VaultName $VaultName -ResourceGroupName $RGName -EnabledForDeployment
#deploy cert to VM
$CertUrl = (Get-AzKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName).ResourceId
$VM = Get-AzVM -ResourceGroupName $RGName -Name $VMName
$VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzVM -VM $VM -ResourceGroupName $RGName
#Enable encryption on the virtual machine using Azure AD client ID and client cert thumbprint
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType $VolumeType
この例では、Azure AD クライアント ID とクライアント認定拇印を使用して、VM での暗号化を有効にします。
例 5: Azure AD クライアント ID、クライアント シークレットを使用して暗号化を有効にし、キー暗号化キーを使用してディスク暗号化キーをラップする
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$AADClientID = "<clientID of your Azure AD app>"
$AADClientSecret = "<clientSecret of your Azure AD app>"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$VolumeType = "All"
$KEKName = "MyKeyEncryptionKey"
$KEK = Add-AzKeyVaultKey -VaultName $VaultName -Name $KEKName -Destination "Software"
$KeyEncryptionKeyUrl = $KEK.Key.kid
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientSecret $AADClientSecret -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $KeyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType $VolumeType
この例では、Azure AD クライアント ID とクライアント シークレットを使用して VM での暗号化を有効にし、キー暗号化キーを使用してディスク暗号化キーをラップします。
例 6: キー暗号化キーを使用して、Azure AD クライアント ID、クライアント証明書の拇印、およびラップ ディスク暗号化キーを使用して暗号化を有効にする
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
#The KeyVault must have enabledForDiskEncryption property set on it
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$KEKName = "MyKeyEncryptionKey"
$KEK = Add-AzKeyVaultKey -VaultName $VaultName -Name $KEKName -Destination "Software"
$KeyEncryptionKeyUrl = $KEK.Key.kid
$VolumeType = "All"
# create Azure AD application and associate the certificate
$CertPath = "C:\certificates\examplecert.pfx"
$CertPassword = "Password"
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
$CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -CertValue $CertValue
$ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId
$AADClientID = $AzureAdApplication.ApplicationId
$AADClientCertThumbprint= $Cert.Thumbprint
#Upload pfx to KeyVault
$KeyVaultSecretName = "MyAADCert"
$FileContentBytes = Get-Content $CertPath -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)
$Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName $VaultName-Name $KeyVaultSecretName -SecretValue $Secret
Set-AzKeyVaultAccessPolicy -VaultName $VaultName -ResourceGroupName $RGName -EnabledForDeployment
#deploy cert to VM
$CertUrl = (Get-AzKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName).ResourceId
$VM = Get-AzVM -ResourceGroupName $RGName -Name $VMName
$VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzVM -VM $VM -ResourceGroupName $RGName
#Enable encryption on the virtual machine using Azure AD client ID and client cert thumbprint
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGname -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $KeyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType $VolumeType
この例では、Azure AD クライアント ID とクライアント証明書の拇印を使用して VM での暗号化を有効にし、キー暗号化キーを使用してディスク暗号化キーをラップします。
パラメーター
KeyVault にシークレットを書き込むアクセス許可を持つ AzureActive Directory (Azure AD) アプリケーション クライアント証明書の拇印を指定します。
前提条件として、Azure AD クライアント証明書を仮想マシンのローカル コンピューター my 証明書ストアにデプロイしておく必要があります。
Add-AzVMSecret コマンドレットを使用して、Azure の仮想マシンに証明書をデプロイできます。
詳細については、 Add-AzVMSecret コマンドレットの ヘルプを参照してください。
証明書は、証明書ストアの仮想マシン ローカル コンピューターに以前にデプロイしておく必要があります。
| Type: | String |
| Position: | 3 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
KeyVault にシークレットを書き込むアクセス許可を持つ Azure AD アプリケーションのクライアント ID を指定します。
| Type: | String |
| Position: | 2 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
KeyVault にシークレットを書き込むアクセス許可を持つ Azure AD アプリケーションのクライアント シークレットを指定します。
| Type: | String |
| Position: | 3 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
コマンドレットの実行前に確認を求めるメッセージが表示されます。
| Type: | SwitchParameter |
| Aliases: | cf |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Azure との通信のために使用される資格情報、アカウント、テナント、サブスクリプションです。
| Type: | IAzureContextContainer |
| Aliases: | AzContext, AzureRmContext, AzureCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
このコマンドレットが、拡張機能のマイナー バージョンの自動アップグレードを無効にすることを示します。
| Type: | SwitchParameter |
| Position: | 14 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシン暗号化キーのアップロード先となる KeyVault のリソース ID を指定します。
| Type: | String |
| Position: | 5 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシン暗号化キーのアップロード先となる KeyVault URL を指定します。
| Type: | String |
| Position: | 4 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
まだ暗号化されていないすべてのデータ ドライブをEncrypt-Formatする
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
拡張機能の発行元名。 このパラメーターは、"Microsoft.Azure.Security" の既定値をオーバーライドする場合にのみ指定します。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
拡張機能の種類。 Windows VM の既定値である "AzureDiskEncryption" と Linux VM の "AzureDiskEncryptionForLinux" をオーバーライドするには、このパラメーターを指定します。
| Type: | String |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
ユーザーに確認せずに、直ちにコマンドを実行します。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
仮想マシンのキー暗号化キーのラップとラップ解除に使用するアルゴリズムを指定します。 既定値は RSA-OAEP です。
| Type: | String |
| Accepted values: | RSA-OAEP, RSA1_5 |
| Position: | 8 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシン暗号化キーのラップとラップ解除に使用するキー暗号化キーの URL を指定します。 これは完全なバージョン管理された URL である必要があります。
| Type: | String |
| Position: | 6 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシン暗号化キーのラップとラップ解除に使用されるキー暗号化キーを含む KeyVault のリソース ID を指定します。 これは完全なバージョン管理された URL である必要があります。
| Type: | String |
| Position: | 7 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
VM の最新の Azure Disk Encryption 拡張機能バージョン (AAD 資格情報のない ADE) への移行を開始します。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
AAD を使用して ADE 拡張機能バージョンを AAD を使用せずに ADE 拡張機能バージョンに移行中にエラーが発生した場合に、移行の回復を開始します。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
拡張機能を表す Azure Resource Manager リソースの名前を指定します。 Name パラメーターを省略すると、インストールされている拡張機能の名前は、Windows 仮想マシンでは AzureDiskEncryption、Linux 仮想マシンでは AzureDiskEncryptionForLinux になります。
| Type: | String |
| Aliases: | ExtensionName |
| Position: | 12 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Linux 仮想マシンの暗号化にのみ使用されるパスフレーズを指定します。 このパラメーターは、Windows オペレーティング システムを実行する仮想マシンには使用されません。
| Type: | String |
| Position: | 13 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシンのリソース グループの名前を指定します。
| Type: | String |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシンの暗号化操作のシーケンス番号を指定します。 これは、同じ仮想マシンで実行される暗号化操作ごとに一意です。 Get-AzVMExtension コマンドレットを使用して、使用された前のシーケンス番号を取得できます。
| Type: | String |
| Position: | 10 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Linux VM のバックアップ作成をスキップする
| Type: | SwitchParameter |
| Position: | 15 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
暗号化拡張機能のバージョンを指定します。
| Type: | String |
| Aliases: | HandlerVersion, Version |
| Position: | 11 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
仮想マシンの名前を指定します。
| Type: | String |
| Aliases: | ResourceName |
| Position: | 1 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
暗号化操作を実行する仮想マシン ボリュームの種類 (OS、データ、またはすべて) を指定します。
Linux: Linux 仮想マシンを暗号化するときは VolumeType パラメーターが必要であり、Linux ディストリビューションでサポートされる値 ("Os"、"Data"、または "All") に設定する必要があります。
Windows: VolumeType パラメーターは省略できます。この場合、操作の既定値は All になります。Windows 仮想マシンに VolumeType パラメーターが存在する場合は、すべてまたは OS に設定する必要があります。
| Type: | String |
| Accepted values: | OS, Data, All |
| Position: | 9 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
| Type: | SwitchParameter |
| Aliases: | wi |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
入力
出力
関連リンク
フィードバック
フィードバックの送信と表示