azure - 我应该如何验证 Azure CLI 以便在没有 SAS 的情况下进行访问?

标签 azure azure-blob-storage azure-cli azcopy

我正在使用 Azure CLI(azazcopy),我发现复制等简单操作根本不起作用,尽管使用Azure 资源管理器没问题。

虽然我能够无缝使用 AWS CLI(例如,aws s3 cp local_file.txt s3://my-bucket/),但尝试使用 az 创建帐户后,blob 失败。例如:

./azcopy copy "./hello.txt" "https://myaccount.blob.core.windows.net/mycontainer/"

这失败了,告诉我:

RESPONSE Status: 403 This request is not authorized to perform this operation using this permission

但是,我使用 ./azcopy login --tenant-id myTenantId 成功登录(根据文档,它似乎应该存储 OAuth 信息以供后续调用 CLI)。在门户网站上,查看我的订阅,我被标记为所有者。此外,如果我生成具有读/写访问权限的 SAS,则可以在包含查询字符串时将文件复制到容器中。

对于日常交互,我不想包含所有额外参数,例如 --from-to=LocalBlob 或 SAS 查询字符串。我怎样才能避免所有这些样板?

此外,az 一体机似乎不允许复制操作,例如 `az storage blob copy hello.txt "https://myaccount..."。怎么才能轻松使用呢?

最佳答案

我尝试在我的环境中重现相同的情况,但得到了如下相同的错误:

enter image description here

要解决此错误,请确保分配存储 Blob 数据贡献者存储 Blob 数据所有者 帐户的角色如下:

enter image description here

我能够成功复制文件,如下所示:

azcopy copy "C:\Users\testcer" "https://storageaccount.blob.core.windows.net/containername"

enter image description here

在Azure门户中,文件已成功上传,如下所示:

enter image description here

要了解如何使用 az storage blob copy,请参阅此 MsDoc

关于azure - 我应该如何验证 Azure CLI 以便在没有 SAS 的情况下进行访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74216098/

相关文章:

mysql - Fabric-ca-server连接到azure mysql : this authentication plugin is not supported

azure - 在 Azure 中启动/停止虚拟机的最低权限角色

asp.net-mvc - 如何在不使用对话框的情况下在 Azure Active Directory 中授权?

java - 对于条目太多的目录,ABFS hadoop-azure AzureBlobFileSystem.listStatus(path) 花费太多时间(不返回)

python - 在 Linux 上安装 Azure Python api : importError: No module named storage. blob

c# - 对 Azure 队列调用 CreateIfNotExistsAsync() 的性能影响

powershell - Set-AzureStorageBlobContent - 日期在冒号处截断的元数据

azure - 如何使用 Azure Az CLI 以编程方式创建配置了 Autopilot 的 Azure Cosmos DB

azure - Az CLI - 注册 Azure AD B2C 应用程序

azure - 如何检查 keystore 中是否存在给定名称的 key ?