使用Azure AD 对 VM 进行磁盘加密的方法属于古老的办法了,操作加密过程极其复杂,目前默认在Portal中已淘汰(但依然可以创建)。新版本的 Azure 磁盘加密无需提供 Azure AD 应用程序参数即可启用 VM 磁盘加密。使用新版本,在执行启用加密步骤时,不再需要提供 Azure AD 凭据。已使用 Azure AD 应用程序参数加密的 VM 仍受支持,应继续使用 AAD 语法进行维护。
当然这对于想要入门Azure AD以及想要挑战复杂Azure Disk Encryption过程的萌新们来说是最合适不过的锻炼了。本次实验以Azure云的Windows虚拟机为测试环境,进行ADE Dual-Pass双重加密与解密实验。
[本文由Tim撰写,AndyX修改。本文的“Azure Portal”门户界面以英文为主,仅供参考。]
[本人中所有涉及到 Azure 的实验均在 Azure Global 国际版中进行配置,部分功能可能在 Azure 世纪互联中受到限制]
[本文为AndyX.Net原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明!]
[如果本文章帮助到了您,请在记得在文章末尾“打赏”作者,感谢!]
展开索引
初始化实验环境
- OS:Windows Server 2019 Datacenter
- VMName:TimADEDual3
- VMSize:Standard_D2_v3
- OSDisk:128GB, Standard HDD
- AAD APP:TimADE3
ADE Dual-Pass双重加密实战 – 加密篇
1. 创建AAD Application 和 Service Principal
- 在搜索栏搜索Azure Active Directory
- 选择App Registrations(应用注册)
- 添加New Registration(新注册)
- 输入自定义Application应用名称
- 选择Support account types支持账户类型(默认:“仅此组织目录[仅 Microsoft – 单一租户]中的帐户”)
- Redirect URI (重定向 URI) 是个可选项,暂时先不选。
2.给AAD Application分配权限
- 导航至你的Subscription订阅页面
- 选择Access Control IAM(访问控制[标识和访问管理])
- 选择 Add a role assignment(添加角色分配)
- 选择Role 默认情况下选择 Contributor (参与者)
- “Assign access to” 一般选择默认的 “Azure AD user, group, dervice principal”
- 输入application name应用名称,【这里注意是应用名称而不是Email地址哦】
3. 获取用于APP应用登录的Tenant ID和APP ID数值,并创建证书与密钥
- 返回你的Azure Active Directory页面
- 单击App Registrations(应用注册)
- 找到你刚才创建的应用(比如本文的TimADE3),并且复制APP ID和 Tenant ID留作备用
关于“获取用于登录的租户和应用 ID 值”的微软官方文档(中文),请参见链接:获取用于登录的租户和应用 ID 值
- 还是在这个APP应用的页面,选择Certificate&Secrets (证书与密钥)
- 选择New Client Secret (新客户端密钥)
- 输入自定义描述,选择期限
- 保存Value F4Iv0R9jZ-LJ~Zubfn4~74wL~yuxeRzf-P 【注意Value值在页面关闭后不可见!!!请及时保存】
4. 创建Key Vault (密钥保管库)
- 例常创建Key Vault (密钥保管库)即可,【需要注意: 确保你的Key Vault 和VM 在同一Region(区域)】
- 本文中创建的名为“TimADE”的Key Vault,Regio在东南亚,其他默认即可。
- 进入生成好的Key Vault (密钥保管库)
- 选择Access Policies (访问策略)
- 将“Enable Access to (启用对以下对象的访问权限)”中的三个选项全部勾选
- 单击add Access Policy (添加访问策略)
- 配置Key Permission(密钥权限) 选择 Wrap Key(KEK封装密钥)
- 配置Secret Permission(机密权限) 选择 Set (设置)
- 配置Service Principal(服务主体) 选择 你创建的AAD APP名称,例如本次实验的TimADE3
- 最后别忘了点左下角的Add来完成权限的添加。
5. 使用Powershell加密VM虚拟机
- 此处为了节省时间,已经创建了一台未加密的VM(名称:TimADEDual3)
- 输入以下Cloud Shell/Powershell脚本开始加密
- 注意:$VMRGName $KVRGname $vmName $aadClientID $aadClientSecret $KeyVaultName 变量需要自己按需修改!
- 注意:此处的 -VolumeType 参数可以包含ALL(全部),OS(仅加密系统盘),Data(仅加密数据盘)
###注意:$VMRGName $KVRGname $vmName $aadClientID $aadClientSecret $KeyVaultName 变量需要自己按需修改!!!! $VMRGName = 'MyVirtualMachineResourceGroup'; $KVRGname = 'MyKeyVaultResourceGroup'; $vmName = 'MySecureVM'; $aadClientID = 'My-AAD-client-ID'; $aadClientSecret = 'My-AAD-client-secret'; $KeyVaultName = 'MySecureVault'; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; $sequenceVersion = [Guid]::NewGuid(); Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'All' -SequenceVersion $sequenceVersion -skipVmBackup; ###注意:此处的 -VolumeType 参数可以包含ALL(全部),OS(仅加密系统盘),Data(仅加密数据盘)
- 加密需要一些时间,请耐心等待
- 当加密完成之后你可以到Portal门户中查看改VM的磁盘状态,显示为“True (Encryption using AAD Credentials)”即为加密成功!
更多关于“基于AAD的ADE Dual-Pass双重加密VM的AzureCLI/Powershell操作方法”,请参见微软官方文档:
- 使用 Azure AD 进行 Azure 磁盘加密(早期版本)
- 使用 Azure AD 对 Windows VM 进行 Azure 磁盘加密(早期版本)
- 使用 Azure AD 创建和配置用于 Azure 磁盘加密的密钥保管库(早期版本)
- 在 Linux VM 上使用 Azure AD 启用 Azure 磁盘加密(早期版本)
(全文完)
文章撰写:Tim,来自AndyX.Net ,由AndyX修改并发布。
文章遵循 CC 4.0 BY-SA 版权协议,若需转载本文,请标注来源与链接:原创内容AndyX.Net版权所有