在不使用主密钥或辅助密钥的情况下使用Azure存储帐户进行身份验证

时间:2020-04-06 01:29:07

标签: azure azure-storage azure-storage-blobs

据我了解,涉及Azure存储帐户有两种类型的SAS令牌。

  1. 帐户级SAS令牌
  2. Blob容器/队列级别SAS令牌

我观察到,如果我们不选择使用主/次密钥对存储帐户进行身份验证,而使用帐户级SAS令牌作为身份验证机制,那么我将无法使用存储访问签名创建Blob容器级SAS令牌。这是为什么?有办法使它起作用吗?我不想向我的服务提供对帐户级别密钥的访问权,并且不想创建SAS令牌以在运行时实现RBAC,是否有相同的方法?

1 个答案:

答案 0 :(得分:1)

我观察到,如果我们不选择使用主键/辅助键 使用存储帐户进行身份验证并使用帐户级别的SAS 令牌作为身份验证机制,那么我无法创建Blob 使用存储的访问签名的容器级SAS令牌。为什么呢?

这是设计使然。容器级别的SAS仅允许您在容器级别上工作,您可以在该容器级别上的blob上执行操作。创建Blob容器是帐户级别的活动,因此您需要使用帐户SAS。目前,帐户SAS没有共享访问策略的概念。

我不想在帐户级别提供对我的服务的访问权限 密钥并想要创建SAS令牌以在RBAC上实现RBAC 运行时,有什么办法吗?

是的,有。 Azure Blob存储支持基于Azure AD的身份验证/授权,并支持Azure订阅中提供的基于角色的访问控制(RBAC)。您可以在Azure AD中为用户分配精细的RBAC角色,他们将只能执行其角色允许的操作。您可以在这里了解更多信息:minimal reproducible example

您可以在以下位置找到有关Azure存储中可用的各种授权选项的更多详细信息:https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad