使用azure存储帐户进行身份验证而不使用主密钥或辅助密钥

使用azure存储帐户进行身份验证而不使用主密钥或辅助密钥,azure,azure-storage,azure-storage-blobs,Azure,Azure Storage,Azure Storage Blobs,据我所知,涉及Azure存储帐户时,有两种类型的SAS令牌 帐户级SAS令牌 Blob容器/队列级别SAS令牌 我注意到,如果我们不选择使用主/辅密钥对存储帐户进行身份验证,并使用帐户级SAS令牌作为身份验证机制,那么我就无法使用存储访问签名创建Blob容器级SAS令牌。为什么呢?有没有办法让它发挥作用?我不想为我的服务提供对帐户级密钥的访问,而是想创建SAS令牌,以便在运行时实现RBAC,有什么方法可以实现同样的功能吗 我观察到,如果我们不选择使用主键/辅键 使用存储帐户进行身份验证并使用帐户

据我所知,涉及Azure存储帐户时,有两种类型的SAS令牌

  • 帐户级SAS令牌
  • Blob容器/队列级别SAS令牌
  • 我注意到,如果我们不选择使用主/辅密钥对存储帐户进行身份验证,并使用帐户级SAS令牌作为身份验证机制,那么我就无法使用存储访问签名创建Blob容器级SAS令牌。为什么呢?有没有办法让它发挥作用?我不想为我的服务提供对帐户级密钥的访问,而是想创建SAS令牌,以便在运行时实现RBAC,有什么方法可以实现同样的功能吗

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

    这是故意的。容器级SAS仅允许您在容器级工作,在容器级可以对容器内的Blob执行操作。创建blob容器是帐户级别的活动,因此您需要使用帐户SAS。此时,帐户SA没有共享访问策略的概念

    我不想提供对帐户级别的服务的访问 键,并希望创建SAS令牌以在 运行时,有没有同样的方法

    是的,有。Azure Blob存储支持基于Azure AD的身份验证/授权,并支持Azure订阅中提供的基于角色的访问控制(RBAC)。您可以在Azure AD中将粒度RBAC角色分配给您的用户,他们将只能执行其角色允许的操作。您可以在此处阅读更多信息:

    您可以在此处找到有关Azure存储中可用的各种授权选项的更多详细信息: