今天早上,当我在办公桌前做白日梦时,我突然想到了一些事情,但至今还无法找到答案。所以我希望有人能为我解惑,或者只是好好讨论一下。
让我先介绍一下背景。最近,我开始使用 Azure 门户和他们提供的 Key Vault 服务尝试磁盘加密。这比使用 AD 应用程序的旧方法更有意义。因此,我在资源组中创建了新的密钥库,在其中创建了一个密钥,并根据需要设置了加密操作。然后,我编写了一个脚本,运行了 AzurePowerShell CLI,几分钟后,VM(MS Server 2012r2)上的磁盘就加密了。因此,我对其余测试环境执行了此操作,只是为了检查它是否真的有效。这不是第一次侥幸!
然后我想到,如果密钥过期,接下来会发生什么?现在显然在测试环境中我并不关心,如果发生这种情况,我可以撤下所有内容。但是,当我与拥有生产环境的客户交谈时,他们经常询问在 Azure 中运行的机器的安全性,我想知道刷新这些密钥有多容易。我交谈过的许多人都制定了有关密钥循环的策略,因此不想要一个 200 年后才会过期的密钥。他们的安全不会考虑这个想法。
有人知道更新密钥的最佳方法是什么吗?我最初的想法是,在到期前解密磁盘,但这肯定是不可能的。然后重新运行脚本,但使用全新生成的密钥再次加密?这似乎是一个漫长的过程,但也许这是唯一的方法?
还有其他人有同样的想法吗,或者必须使用 Azure Key Vault 实现密钥刷新?
答案1
因此,我与 Azure 的几个人就此事进行了聊聊。
大家一致认为,在密钥过期之前更新加密磁盘的最佳方法如下:
- 使用加密磁盘的密钥对磁盘进行解密(当然,在密钥过期之前)
- 在密钥保管库中导入/生成新密钥
- 使用新密钥重新运行加密脚本
- 从保管库中删除密钥
这个过程比我希望的要长一些,但使用 Azure Powershell CLI 确实可以加快实际解密和再次加密磁盘的速度。
答案2
无需禁用加密,您只需重新运行用于加密虚拟机的相同命令并添加新的更新密钥。
或者您可以仅扩展现有密钥。Azure 磁盘加密创建的默认密钥未设置到期日期。
您无法禁用使用 ADE 的加密 Linux 操作系统。
如果密钥过期,使用 ADE 时不会对操作系统磁盘访问造成任何损害。它将继续工作。
但是如果您使用 SSE + CMK 并且密钥过期,您将无法访问 VM,直到您可以更新或延长密钥。