与环境变量相比,在 KeyVault 中存储简单机密有什么优势
What are the advantages for storing simple secrets in KeyVault over Environment variables
我 运行 Azure 应用服务上的一个非常简单的 nodejs Web 应用程序。我需要将一个秘密传递到应用程序中,为此我在本地使用 dotenv
。我可以在 Azure 配置 Application settings
中设置这些环境变量。想知道那里的秘密是否安全我发现我也可以使用 @Microsoft.KeyVault({referenceString})
将它们存储在 Key Vault
referencing 到环境变量中。在这两个地方我都可以 "unhide" 秘密,所以我想知道在我的场景中一个比另一个有什么优势?
在Application settings
中,应用设置并不是真正隐藏的,如您所知,只需单击Show values
即可看到它。此外,任何人在您的网络应用程序范围内都具有读取权限,他将始终能够检查此值,不仅是门户 UI,而且
天蓝色powershell
, cli
, resource explorer
,等
将其作为秘密存储在 keyvault 中是安全的,只有在 Access policies
中具有正确权限的人(在您的情况下,网络应用程序的系统分配身份)才能访问秘密。其他人将无法访问秘密(他们不是 RBAC 角色,例如 subscription/keyvault 中的 Owner
、Contributor
,否则他们可以将自己添加到 Access policies
).
有关详细信息,请参阅 Secure access to a key vault。
我 运行 Azure 应用服务上的一个非常简单的 nodejs Web 应用程序。我需要将一个秘密传递到应用程序中,为此我在本地使用 dotenv
。我可以在 Azure 配置 Application settings
中设置这些环境变量。想知道那里的秘密是否安全我发现我也可以使用 @Microsoft.KeyVault({referenceString})
将它们存储在 Key Vault
referencing 到环境变量中。在这两个地方我都可以 "unhide" 秘密,所以我想知道在我的场景中一个比另一个有什么优势?
在Application settings
中,应用设置并不是真正隐藏的,如您所知,只需单击Show values
即可看到它。此外,任何人在您的网络应用程序范围内都具有读取权限,他将始终能够检查此值,不仅是门户 UI,而且
天蓝色powershell
, cli
, resource explorer
,等
将其作为秘密存储在 keyvault 中是安全的,只有在 Access policies
中具有正确权限的人(在您的情况下,网络应用程序的系统分配身份)才能访问秘密。其他人将无法访问秘密(他们不是 RBAC 角色,例如 subscription/keyvault 中的 Owner
、Contributor
,否则他们可以将自己添加到 Access policies
).
有关详细信息,请参阅 Secure access to a key vault。