【问题标题】:How to iterate through each disk associated with Azure VM and get the encryption status using PowerShell?如何遍历与 Azure VM 关联的每个磁盘并使用 PowerShell 获取加密状态?
【发布时间】:2021-05-10 10:32:25
【问题描述】:

我想首先获取与 VM 关联的磁盘列表,然后遍历每个磁盘属性以识别磁盘是否经过客户管理密钥 (CMK) 加密。如何使用 Azure PowerShell 执行此检查?

【问题讨论】:

  • 您对我的回复有任何顾虑吗?能解决你的问题吗?
  • 嗨南希。不用担心。没关系。感谢您分享脚本和文档。

标签: azure-powershell azure-vm azure-disk


【解决方案1】:

通常,要获取虚拟机的加密状态,可以使用 Get-AzVMDiskEncryptionStatus cmdlet,语法如下:

Get-AzVmDiskEncryptionStatus -ResourceGroupName $resourceGroupName -VMName $vmName

您将看到操作系统的加密状态和数据量。

如果上面的 OsVolumeEncryptedDataVolumesEncrypted 显示 Encrypted,则您的 osDisk 或 dataDisk 可能已使用 CMK 加密。

您还可以使用以下 PowerShell 命令从每个磁盘捕获加密设置。更多详情,您可以阅读this article

RGNAME="RGNAME"
VMNAME="VNAME"

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

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

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2017-05-24
    • 2010-12-29
    • 2020-03-14
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多