Azure Key Vault 从 VMSS 实例获取机密

Posted

技术标签:

【中文标题】Azure Key Vault 从 VMSS 实例获取机密【英文标题】:Azure Key Vault get Secret from VMSS Instances 【发布时间】:2020-05-07 15:09:57 【问题描述】:

有人有从 VMSS 实例获取 Azure Key Vault Secret 的解决方案吗? 对于单个 VM,我发现了这篇文章:https://docs.microsoft.com/en-us/azure/key-vault/tutorial-python-linux-virtual-machine#create-edit-and-run-the-sample-python-app

我可以为 VMSS 实例做类似的事情吗? 使用 Microsoft 文档中的 Python 脚本,我遇到了以下问题。我无法通过此请求从实例访问 Key Vault URL。 (请求超时。)

requests.get(url = KeyVaultURL, headers = "Authorization": "Bearer " + data["access_token"])

VMSS 有一个带有公共 IP 地址的 LoadBalancer。 并且后端池中的实例只有一个 NIC(私有 IP)。 Vault 和 VMSS 位于不同的资源组中。

您知道为什么我无法从我的实例访问 Key Vault 吗? 因为如果身份(访问策略)会成为问题,我应该得到 4xx 而不是超时。

谢谢 韩国

【问题讨论】:

为什么不呢?你试过什么? 我在我的 VMSS 实例上完全尝试了这个 python 脚本。但我无法访问我的 Key Vault。 (连接超时。) 【参考方案1】:

我认为,如果您通过门户将托管标识分配给 vmss 并再次对其进行测试,它应该可以工作。

https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vmss

【讨论】:

您好,感谢您的回复。但我想身份不应该是问题。因为我可以使用 VMSS 标识在我的 Azure Key Vault 中创建新的访问策略。 那么这应该是 NSG 中的一些问题。尝试添加服务端点并查看它是否有效: az network vnet subnet update --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --service-endpoints "Microsoft.KeyVault"跨度> 感谢当我将服务端点添加到子网时问题已解决。

以上是关于Azure Key Vault 从 VMSS 实例获取机密的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure Functions 访问 Azure Key Vault 时访问被拒绝

无法从 Azure Key Vault 获取令牌

从带有前缀的 Azure Key Vault 获取所有机密

如何从 Key Vault 自动映射 Azure Functions 机密

安全地存储 Azure Key Vault clientSecret

Azure Key Vault 使用Azure Portal创建和查看Azure Key Vault