将文件从 Azure Blob 存储下载到 Azure Linux VM
Posted
技术标签:
【中文标题】将文件从 Azure Blob 存储下载到 Azure Linux VM【英文标题】:Download file from Azure blob storage onto Azure Linux VM 【发布时间】:2020-11-11 13:41:27 【问题描述】:我来自 AWS 背景,并试图让一些相对简单的东西在 Azure 中工作,但目前很难解析所有文档和 Microsoft 特定的术语来找到我正在寻找的东西。
我正在尝试使用 CLI 将我在 Azure blob 存储中的单个文件(我可以收集到的最接近于将对象存储在 S3 中的文件)下载到 Linux VM 上。从我读到的。我需要运行的命令是:
az storage copy -s https://myaccount.blob.core.windows.net/mycontainer/myfile -d .
不过,有几个问题是出于自动化目的。 Azure 中的 VM 是否有与 IAM 角色等效的角色?这样,我就不必在 VM 本身上保留凭据文件。但如果不是,我应该为最佳实践生成什么类型的凭据?我问,因为在 Azure 中似乎有大约六种不同的选择,而我真正在寻找的只是一些基本的东西。只是本质上需要相当于 AWS 中的“仅限编程访问”的用户。这样我还可以将其权限锁定到一组非常特定的资源和/或操作。
一如既往,提前致谢!
【问题讨论】:
【参考方案1】:Azure 中的 VM 是否有与 IAM 角色等效的角色?
您正在寻找的是Managed Identity
。基本上,它的工作方式是为您的 Azure 资源(在您的情况下为 Linux VM)分配一个标识,以便您的 Azure 资源的行为与您的 Azure AD 中的任何其他用户一样,然后为该用户分配适当的角色/访问权限。
您可以在此处了解有关 Azure 中托管标识的更多信息:https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview。
【讨论】:
谢谢!今天经过一番摸索之后,我终于找到了适合我的案例的方法--创建用户分配的托管身份(门户中的托管身份)-将 UAMI 分配给虚拟机(虚拟机页面-> 身份-> 用户分配门户中的选项卡) - 转到 blob 容器 -> 访问控制 (IAM) -> 添加角色分配 -> 选择 UAMI -> “存储 Blob 数据读取器”权限 - 在 VM 上并运行:'az login --identity -u [ UAMI 的客户端 ID]' 然后 'az storage blob download --auth-mode login --account-name [storage-account-name] --container-name [container-name] --file [out-file] --名称 [blob 文件名]'以上是关于将文件从 Azure Blob 存储下载到 Azure Linux VM的主要内容,如果未能解决你的问题,请参考以下文章
将文件从 Azure 存储 blob 移动到 Ftp 服务器
使用 SAS 将文件从 Azure Blob 存储下载到浏览器
使用 AspNet 从 Azure Blob 存储下载和重命名文件
恢复文件从用户的机器上传到 Azure Blob 存储和从 Azure Blob 下载文件到用户的机器在 Typescript(angular) 从浏览器