Azure Kubernetes 服务部署的应用程序抛出 com.microsoft.azure.storage.StorageException:此请求无权执行此操作

Azure Kubernetes Service deployed app throws com.microsoft.azure.storage.StorageException: This request is not authorized to perform this operation

我有一个简单的 Spring 启动应用程序,它使用帐户密钥连接到 Azure 存储帐户并检查 blob 是否存在。存储帐户受网络选项卡中的“选定网络”保护。

将我的本地客户端 IP 添加到存储帐户的防火墙白名单后,该应用程序在我的本地运行良好。

在 Azure Kubernetes 服务中部署此 spring 启动应用程序后,我在 blob.exists() 处收到以下异常,即使在存储帐户的防火墙中将 Kubernetes 服务 IP 列入白名单后也是如此。

com.microsoft.azure.storage.StorageException: This request is not authorized to perform this operation.
    at com.microsoft.azure.storage.StorageException.translateException(StorageException.java:87)
    at com.microsoft.azure.storage.core.StorageRequest.materializeException(StorageRequest.java:305)
    at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:196)
    at com.microsoft.azure.storage.blob.CloudBlob.exists(CloudBlob.java:2073)
    at com.microsoft.azure.storage.blob.CloudBlob.exists(CloudBlob.java:2060)
    at com.microsoft.azure.storage.blob.CloudBlob.exists(CloudBlob.java:2035)

我确认了我的 Kubernetes 传出 IP this way

我用多个存储帐户确认此错误。如果我遗漏了 AKS 设置或其他地方的任何内容,请告诉我。感谢您的帮助。

转到您的存储帐户 --> Select 网络 --> 添加您的 AKS VMSS 虚拟网络

现在,您可以从 spring 启动应用程序

连接到存储帐户