gpt4 book ai didi

azure - 是什么让 Azure Key Vault 比 Azure SQL DB 更安全?

转载 作者:行者123 更新时间:2023-12-03 04:43:09 25 4
gpt4 key购买 nike

是什么让 Azure Key Vault 比 Azure SQL DB 更安全? AZ SQL 提供传输安全性。

我正在探索 Azure 服务来存储和检索敏感数据。 Azure Key Vault,营销名称告诉我 AKV 是正确的选择。

所有数据当前都驻留在 AZ SQL DB 中。 AKV 确实带来了另一个需要在代码中管理的额外 AZ 服务难题。

与 AZ SQL DB 相比,Azure Key Vault 真的安全吗?

最佳答案

从安全角度来看,您可以精细控制谁拥有哪些权限来使用您的 secret 。例如,您可以向某些用户授予“设置”权限,但仅授予使用该 key 的应用程序的“获取”权限。此外,在高级层中,Azure Key Vault 可以使用硬件安全模块 (HSM) 来保护 key ,这可能是敏感环境中的要求。

从实际角度来看,在我看来,Azure Key Vault 对于开发人员来说最有趣的方面是,这意味着在开发过程中不再需要将 secret 存储在环境变量(或类似变量)中,而是可以集中保存在Key Vault - 代码无需修改即可部署到云环境。

示例:假设您与一位同事一起开发一个 Python 应用程序,该应用程序需要通过需要密码的第三方服务进行身份验证。您可以将该密码存储在 Azure SQL 中,但要访问 Azure SQL,您再次需要凭据。您如何与同事分享这些凭据?将其 checkin 源代码管理并不是一个好的做法,您可以通过其他 channel 共享它,并且都将其存储在本地环境变量中,但如果此密码更改或您加入了新人员,麻烦就会再次开始。通过使用 Azure Key Vault,您可以像这样检索密码:

from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

credentials = DefaultAzureCredential()
client = SecretClient("https://yourkeyvault.vault.azure.net/", credentials)
third_party_password = client.get_secret("third-party-password").value

DefaultAzureCredential() 将自动检查多个位置的凭据,这些凭据可用于从 Key Vault 获取 secret 。

https://pypi.org/project/azure-identity/

“环境”是指,如果您已创建应用程序注册并设置了以下环境变量

AZURE_USERNAME
AZURE_PASSWORD
AZURE_TENANT_ID

DefaultAzureCredential() 将使用它们登录(当然,在 Key Vault 中,必须设置相应的访问策略,以便用户可以读取 secret )。

如果未找到环境变量,DefaultAzureCredential() 将在下一步中检查应用是否在可使用托管标识的 (Azure) 环境中运行。换句话说,如果您使用 Azure App Service with Managed Identitiy turned on并且此托管标识对您的 Key Vault 具有 secret “获取”权限,DefaultAzureCredential() 将使用这些权限。

如果您在本地开发并且不想设置环境变量,也可以简单地使用 az login 登录 Azure,它将在本地存储访问 token 。 DefaultAzureCredential() 可以使用该 token 登录 Key Vault 并检索 key 。在这种情况下,访问 Azure Key Vault 的密码和凭据都不必存储在本地某处。

关于azure - 是什么让 Azure Key Vault 比 Azure SQL DB 更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68264882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com