【问题标题】:AKS Pod fail to access Azure Key VaultAKS Pod 无法访问 Azure Key Vault
【发布时间】:2021-11-18 06:31:18
【问题描述】:

我有一个用于构建节点项目并运行“az login --service-principal”命令的 Dockerfile。在此节点项目中,它将从 Azure Key Vault 中检索机密值。

我尝试在本地运行此 docker 映像,它可以成功返回我在 Azure Key Vault 上设置的机密。但是,在我将相同的 docker 映像部署到 AKS 后,它返回 403 禁止错误。为什么会这样?

我了解我可能不会使用此方法对 Azure Key Vault 进行身份验证,但为什么会失败?

【问题讨论】:

  • 如何从 AKS pod 访问密钥保管库?您可以尝试使用 Aad-Pod-Identity
  • @RamaraoAdapa-MT 我已经直接在 Dockerfile 中运行 az login 命令,这使得容器已经过身份验证以访问密钥保管库。它在本地 docker 容器中运行良好,但在部署到 aks 后失败
  • 您的 Key Vault 是否从选定的网络访问?

标签: docker api azure-keyvault azure-aks


【解决方案1】:

403 禁止错误表示请求已通过身份验证(它知道请求的身份)但该身份无权访问所请求的资源。有两个原因:

  • 没有针对该身份的访问策略。
  • 请求资源的 IP 地址未在密钥中批准 保险库的防火墙设置。

由于您可以从本地访问密钥保管库,这意味着错误是由于密钥保管库的防火墙设置引起的

检查您的 Azure Key Vault 网络设置。如果您允许从所选网络进行访问,请确保在所选网络中添加 AKS VMSS 规模集虚拟网络

现在,您可以从 AKS pod 访问密钥保管库机密

【讨论】:

  • 实际上我已经通过类似的解决方案解决了我的问题。但是,我仍然不明白我以前的方法失败的原因。即使密钥保管库在选定的网络中并且不允许从其他集群访问,也可以使用“az login --service-principal”访问密钥保管库,不是吗?
  • pod中是否安装了az cli?
  • 是的。当我在本地启动它时,相同的 docker 图像工作正常。但是在我部署到 AKS 后出现 403 错误。
  • 这是因为在 azure 密钥保管库中选择了网络。 AKS 群集虚拟网络应添加到 Azure Key Vault 中的选定网络
  • 我的本地网络也没有添加到 Azure Key Vault 中的选定网络中。为什么会起作用?
猜你喜欢
  • 1970-01-01
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2020-08-27
  • 2020-08-08
  • 1970-01-01
相关资源
最近更新 更多