【问题标题】:Azure Kubernetes Service deployed app throws com.microsoft.azure.storage.StorageException: This request is not authorized to perform this operationAzure Kubernetes 服务部署的应用程序抛出 com.microsoft.azure.storage.StorageException:此请求无权执行此操作
【发布时间】:2021-12-27 14:18:54
【问题描述】:

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

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

在 Azure Kubernetes 服务中部署此 Spring Boot 应用程序后,我在 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 设置或其他地方遗漏任何内容,请告诉我。感谢您的帮助。

【问题讨论】:

    标签: azure kubernetes azure-storage-account azure-aks


    【解决方案1】:

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

    现在,您可以从 Spring Boot 应用程序连接到存储帐户

    【讨论】:

    • 是的,我试过这个并且它的工作原理。但为什么 IP 白名单技术不起作用?谢谢。
    • 由于 AKS 和 Storage 帐户都在同一个区域中,因此流量在区域本身内部处理,并且永远不会通过出站公共 IP 离开网络
    猜你喜欢
    • 2019-10-01
    • 2021-03-28
    • 2019-07-24
    • 2020-08-16
    • 2020-11-29
    • 2020-06-21
    • 2022-06-14
    • 2023-02-01
    • 1970-01-01
    相关资源
    最近更新 更多