【问题标题】:Azure Key Vault get Secret from VMSS InstancesAzure Key Vault 从 VMSS 实例获取机密
【发布时间】: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。 (连接超时。)

标签: azure azure-keyvault


【解决方案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"跨度>
  • 感谢当我将服务端点添加到子网时问题已解决。