我需要将一个巨大的应用程序迁移到Windows Azure。该应用程序依赖于第三方库,该库需要存储在角色实例文件系统上的特殊二进制文件中的激活密钥。
显然,密钥必须包含在角色包中,或者存储在角色可以获取的位置。激活密钥不会绑定到机器上(因为我不知道角色将在云中运行的位置)所以任何人都可以使用它来制作该库的副本。
由于Azure角色运行在我们无法控制的某个地方,因此我觉得这个密钥被盗并广泛使用时有些偏执。
如何评估窃取Azure角色中包含的二进制文件的可能性?如何减轻这些风险?
答案 0 :(得分:2)
就安全性而言,除非您的团队在此领域非常强大,否则默认始终升级 Azure OS可能比任何自配置主机更安全。至少,这就是我们(也就是我的公司,Lokad)在完全迁移到Windows Azure之后两年评估情况的方式与我们之前的自托管情况相比。
然后,如果您有凭据(例如许可证密钥),那么放置它们的最合理的位置是角色配置文件 - 而不是角色二进制文件。您可以根据需要自然地在VM中重新生成特殊文件,但这样,在存档二进制版本时,您不会在整个地方内部传播凭据。
答案 1 :(得分:2)
在提出这样的问题时,您需要区分攻击者:
A2无法访问您的角色二进制文件,但A3和A4无法访问它们。
如另一个答案中所述,您可以将您的秘密存储在角色配置文件中。 但是,A4(任何有权访问门户网站的人)仍然可以访问这些秘密。
要防御A4,您希望使用角色二进制文件或角色配置中不存在的密钥加密角色配置文件中的机密。然后在您的角色二进制文件中,使用解密密钥解密加密的角色设置。
用于加密机密的密钥是Azure SDK将为您安装的证书。您可以找到有关为azure here设置证书的帖子。
总之,对于您需要为组织中有人进行部署/有权访问配置文件的人员进行辩护的秘密,您可以执行以下操作:
让受信任方执行以下操作:
然后将您的服务修改为: