如何在不使用帐户密钥的情况下访问存储帐户 blob 容器?

Posted

技术标签:

【中文标题】如何在不使用帐户密钥的情况下访问存储帐户 blob 容器?【英文标题】:How can you access a Storage Account blob container without using an Account Key? 【发布时间】:2021-03-07 09:43:30 【问题描述】:

我可以访问 Power BI 中存储帐户 blob 中的数据...但它需要帐户访问密钥!

是否有某种方法可以使用其他身份验证方法访问数据,即应用注册、服务主体、托管身份等等?

【问题讨论】:

如果 PowerBI 可以访问 Azure Key Vault,您可以将帐户密钥放在那里,以保护用户的值。 @JoelCochran 好主意...但是如何让 Power BI 访问 Key Vault? 我不确定它是否受支持,但您可以在这里调查:docs.microsoft.com/en-us/power-bi/admin/…。 @JoelCochran 嗯 ...看起来只是使用 Key Vault 进行静态数据加密。找不到任何有关使用 Key Vault 获取客户端机密或证书以获取 OAuth 访问令牌的信息:-( 【参考方案1】:

您可以使用 共享访问签名(SAS) 来连接 Power BI 中的 Blob 存储。这个guide 会帮助你。

如果您使用 Azure AD 访问 blob,它似乎没有与 Power BI 集成。还有一个 .Net code sample 关于创建块 blob。

Azure AD 对安全主体(用户、 组或服务主体)运行应用程序。如果 身份验证成功,Azure AD 将访问令牌返回给 应用程序,然后应用程序可以使用访问令牌 授权对 Azure Blob 存储或队列存储的请求。

有关详细信息,document 描述了 Azure 存储为授权访问资源提供的选项。

【讨论】:

感谢您的指点。是的,我可以使用 Power BI Web 连接器,并包含 SAS 令牌以访问 blob 中的数据。向前一步,因为 SAS 令牌只有读取和列出权限。

以上是关于如何在不使用帐户密钥的情况下访问存储帐户 blob 容器?的主要内容,如果未能解决你的问题,请参考以下文章

Azure CLI - 如何从帐户密钥中找到可用的“端点”?

如何在不编写自己的程序的情况下将某些文件上传到 Azure Blob 存储?

Azure 存储帐户 - 容器级访问和 ACL

如何获取 Azure 存储帐户密钥

如何在 Azure 中的密钥轮换后为存储 Blob 的客户端请求提供服务

如何使用 Python 获取 Azure 的所有存储帐户名称及其访问密钥