【问题标题】:Azcopy 409 Public access is not permitted on this storage accountAzcopy 409 此存储帐户不允许公共访问
【发布时间】:2022-01-26 15:28:51
【问题描述】:

我尝试将文件从 Azure 上的 Linux 虚拟机(在虚拟网络中)复制到帐户存储。

使用 Azcopy 登录它正在工作,但我想使用 SAS 令牌。

我在“网络”中添加了我的虚拟网络。

image

我在“共享访问签名”中生成一个 SAS 密钥

image

在我的 linux 虚拟机上,我有 10.0.3.4 的 IP 地址。

image

我运行这个命令sudo azcopy cp ./myFile https://backupscanqa.blob.core.windows.net/backup/?[mySASKey]

image

在我的日志中我有这个:

image

我不知道问题出在哪里,因为当我尝试使用 oAuth2 连接 azcopy login 时,它正在工作。

感谢您的帮助!

编辑:

我尝试在我的容器中生成一个包含所有授权的 SAS 密钥:

当我使用它时,它是同样的错误:

我的 sas 密钥转换到 sp=racwdli

【问题讨论】:

    标签: linux azure azure-blob-storage azure-storage azure-virtual-machine


    【解决方案1】:

    从日志中我可以看到您使用的 SAS 令牌不正确。在您的 image 中,它在 SAS 令牌中只有 sp=r ,而如果您要生成前面提到的 SAS 令牌,则在 image 中应该是这样的。

    我在我的环境中进行了同样的测试,在存储帐户中添加了防火墙,例如:

    使用您提到的生成的 SAS 令牌,使用以下命令成功操作

    ./azcopy copy "/home/ansuman/azcopy_linux_amd64_10.13.0/NOTICE.txt" "https://testansumansa123.blob.core.windows.net/backup?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2022-01-27T15:18:31Z&st=2022-01-27T07:18:31Z&spr=https&sig=XXXXXX"
    

    格式为

    ./azcopy copy "SourcePath" "storageaccounturl/container<SASToken>"
    

    如您所见如果 SAS 是由图像中的方法生成的,那么它将具有 sp=rwdlacupitfx 的权限,这是存储帐户中的所有权限


    要解决此问题,请检查您正在使用的 SAS 令牌。

    如果您是从存储帐户生成的,就像您在图片中显示的那样,那么 您可以通过将 SAS 令牌附加到您的 @987654339 后面来使用它@

    如果您是从容器内部生成 SAS 令牌,请确保从下拉菜单中选择了必要的权限 如下所示,然后您可以使用 Blob SAS URl

    【讨论】:

    • 我做了和你一样的事,但还是不行。 (我用截图更新了帖子)
    • @LyesBenchoubane,是的,我提到的格式也有双引号,我猜你错过了..
    • 无论如何很高兴能帮助到@LyesBenchoubane :)
    【解决方案2】:

    @AnsumanBal-MT 让我走上了正轨。

    正如他在日志中非常清楚地注意到的那样,我的 SAS 密钥没有出现。

    但是,我确实复制了我的密钥。

    所以我了解到,从 URL 中的“&”中没有考虑字符。

    在每个 & 之前添加 '' 后命令正常工作!

    谢谢@AnsumanBal-MT!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2020-02-12
      • 2022-11-08
      相关资源
      最近更新 更多