Azcopy 409 Public 不允许对此存储帐户进行访问

Azcopy 409 Public access is not permitted on this storage account

我尝试将文件从 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

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

感谢您的帮助!

编辑:

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

当我使用它时出现同样的错误:

我的 sas 密钥转换为 sp=racwdli

从日志中我可以看到您使用的 SAS 令牌不正确。在您的 image its only sp=r in SAS token , whereas it should be something like this in the image 中,如果您正在生成您提到的 SAS 令牌。

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

使用您提到的生成的 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 令牌附加在 storage account url/container.

后面来使用它

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

@AnsumanBal-MT 让我走上正轨。

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

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

所以我了解到 URL 中的 '&' 字符没有被考虑在内。

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

谢谢@AnsumanBal-MT!