对 Azure 存储的只写访问(不读取、不列出、不删除)

Posted

技术标签:

【中文标题】对 Azure 存储的只写访问(不读取、不列出、不删除)【英文标题】:Write-Only access (no read, no list, no delete) to Azure Storage 【发布时间】:2018-11-24 14:52:35 【问题描述】:

我正在开发一个必须对 Azure 存储 Blob 容器具有只写访问权限的应用程序。如果我只是使用基于密钥的访问,应用程序将能够进行比预期更多的交互方式。我所需要的只是对容器的只写访问权限。换句话说,应用程序使用的帐户不得公开读取、列出或删除 blob 的能力;只允许写。

是否有任何方法可以通过使用内置角色或 Azure AD 的基于角色的访问控制来促进微调访问?

【问题讨论】:

【参考方案1】:

如何使用仅具有 w 权限的 SAS (sp=w)。

https://docs.microsoft.com/en-us/rest/api/storageservices/Constructing-an-Account-SAS?redirectedfrom=MSDN

读取 (r):对所有已签名的资源类型(服务、容器和对象)有效。授予对指定资源类型的读取权限。 写入 (w):适用于所有已签名的资源类型(服务、容器和对象)。允许对指定资源类型的写入权限。 删除 (d):对容器和对象资源类型有效,队列消息除外。 列表 (l):仅对服务和容器资源类型有效。 添加 (a):仅对以下对象资源类型有效:队列消息、表实体和附加 blob。 创建 (c):仅对以下对象资源类型有效:blob 和文件。用户可以创建新的 blob 或文件,但不能 覆盖现有的 blob 或文件。 更新 (u):仅对以下对象资源类型有效:队列消息和表实体。 进程 (p):仅对以下对象资源类型有效:队列消息。

【讨论】:

以上是关于对 Azure 存储的只写访问(不读取、不列出、不删除)的主要内容,如果未能解决你的问题,请参考以下文章

python 从 azure 存储帐户读取

Actionscript 3中的只写访问器:糟糕的实践?

Azure更新存储下所有Contrainer的访问权限

如何使用 powershell/Azure CLI 列出有权访问 Azure DevOps 项目存储库的用户?

列出存储容器内容时获取 Azure 存储以返回 blob URL

我们可以使用 Azure Active Directory 提供对 blob/容器/存储帐户的访问吗?