在不使用主键或辅助键的情况下使用 azure 存储帐户进行身份验证
Posted
技术标签:
【中文标题】在不使用主键或辅助键的情况下使用 azure 存储帐户进行身份验证【英文标题】:Authenticating with azure storage account without using primary or secondary keys 【发布时间】:2020-07-17 23:20:12 【问题描述】:据我了解,Azure 存储帐户有两种类型的 SAS 令牌。
-
帐户级 SAS 令牌
Blob 容器/队列级 SAS 令牌
我观察到,如果我们不选择使用主/辅助密钥对存储帐户进行身份验证并使用帐户级别 SAS 令牌作为身份验证机制,那么我无法使用存储访问签名创建 Blob 容器级别 SAS 令牌.这是为什么?有没有办法让它工作?我不想提供对帐户级密钥的服务的访问权限,并且想创建 SAS 令牌以在运行时实现 RBAC,有什么办法吗?
【问题讨论】:
【参考方案1】:我观察到,如果我们不选择使用主键/辅助键 使用存储帐户进行身份验证并使用帐户级别 SAS 令牌作为身份验证机制,然后我无法创建 Blob 使用存储访问签名的容器级 SAS 令牌。这是为什么呢?
这是设计使然。容器级 SAS 仅允许您在容器级工作,您可以在该容器级对该容器内的 blob 执行操作。创建 Blob 容器是帐户级别的活动,因此您需要使用帐户 SAS。目前,Account SAS 没有共享访问策略的概念。
我不想在帐户级别提供对我的服务的访问权限 密钥并希望创建 SAS 令牌以在 运行时,有什么办法吗?
是的,有。 Azure Blob 存储支持基于 Azure AD 的身份验证/授权,并支持 Azure 订阅中提供的基于角色的访问控制 (RBAC)。你可以在 Azure AD 中为用户分配精细的 RBAC 角色,他们将只能执行其角色允许的操作。你可以在这里阅读更多信息:https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad。
您可以在此处找到有关 Azure 存储中可用的各种授权选项的更多详细信息:https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage。
【讨论】:
以上是关于在不使用主键或辅助键的情况下使用 azure 存储帐户进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章