我正在使用 Azure Portal 生成这些 token ,虽然它们似乎正在使用本地 IP 地址,但在使用带有 403 的虚拟机 IP 生成时失败。事实上,几个小时前它们似乎工作正常,但突然间尽管有 10 年的到期时间,但仍然开始失败。错误如下:
RequestId:c535ade9-701e-005a-20ad-25a762000000
Time:2023-01-11T11:12:48.4496393Z
{
"name": "RestError",
"code": "AuthorizationFailure",
"statusCode": 403,
"request": {
"streamResponseStatusCodes": {},
"url": "https://ubstagingcontainer.blob.core.windows.net/ubstagingcontainer/ubstagingcontainer/contacts.png?sp=REDACTED&st=REDACTED&se=REDACTED&sip=REDACTED&spr=REDACTED&sv=REDACTED&sr=REDACTED&sig=REDACTED&comp=REDACTED&blockid=REDACTED",
"method": "PUT",
"headers": {
"_headersMap": {
"x-ms-version": "REDACTED",
"content-length": "59935",
"content-type": "application/octet-stream",
"accept": "application/xml",
"user-agent": "azsdk-js-storageblob/12.12.0 (NODE-VERSION v16.16.0; Linux 5.15.0-1029-azure)",
"x-ms-client-request-id": "6242a2d8-b8bd-4d72-bd5b-7ca9dc0d0ad8",
"cookie": "REDACTED"
}
},
"withCredentials": false,
"timeout": 0,
"keepAlive": true,
"decompressResponse": false,
"requestId": "6242a2d8-b8bd-4d72-bd5b-7ca9dc0d0ad8"
},
"details": {
"errorCode": "AuthorizationFailure",
"content-length": "246",
"content-type": "application/xml",
"date": "Wed, 11 Jan 2023 11:12:48 GMT",
"server": "Microsoft-HTTPAPI/2.0",
"x-ms-client-request-id": "6242a2d8-b8bd-4d72-bd5b-7ca9dc0d0ad8",
"x-ms-request-id": "c535ade9-701e-005a-20ad-25a762000000",
"message": "This request is not authorized to perform this operation.\nRequestId:c535ade9-701e-005a-20ad-25a762000000\nTime:2023-01-11T11:12:48.4496393Z",
"code": "AuthorizationFailure"
},
"message": "This request is not authorized to perform this operation.\nRequestId:c535ade9-701e-005a-20ad-25a762000000\nTime:2023-01-11T11:12:48.4496393Z"
}
最佳答案
如果您错过在存储帐户防火墙设置下添加虚拟机公共(public) IP 地址,则可能会出现错误“此请求无权执行此操作”。
我尝试在我的环境中重现相同的结果并得到以下结果:
我有一个名为 sristorage12
的存储帐户,我在存储帐户防火墙设置中仅启用了对本地 IP 地址的访问,如下所示:
从本地 IP 地址,我能够成功上传 blob,如下所示:
现在我尝试从虚拟机的 IP 地址执行相同的操作,但出现类似错误,如下所示:
当我向下滚动时,我收到相同的错误
,提示“此请求无权执行此操作”如下所示:
要解决该错误,请确保在存储帐户的防火墙设置下添加虚拟机的公共(public) IP 地址。
您可以从此处获取虚拟机的公共(public) IP 地址:
我在存储帐户的防火墙设置下添加了虚拟机的公共(public) IP 地址,如下所示:
现在,当我尝试从虚拟机的 IP 地址上传 Blob 时,Blob 已成功上传,没有任何错误,如下所示:
根据您的情况,请确保在存储帐户的防火墙设置下添加您的虚拟机的公共(public) IP 地址。
如果错误仍然存在,请将存储帐户的网络设置更改为允许从所有网络进行访问,如下所示:
关于azure - MS Azure Blob 存储共享访问 token 适用于本地 IP,但在生成使用 VM IP 的另一个 token 时抛出 403(未经授权),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75082390/