Azure storage 的访问通常最常用的三种形式:
1.使用访问密钥 Access Key
Access Key默认有两个,任何程序拿到访问密钥或和storage account的名称,即可拼装出 连接字符串,从而访问storage account的数据。
这种密钥的方式,对于storage account的访问只有 ”可以访问“ 和 “不可以访问” 两种结果,除此不能进行更精确的控制,就像钥匙开锁,要么打开,要么打不开(key不正确)。
2. 使用 共享访问签名 shared access signature(SAS)
共享访问签名相比于 access key的方式,多了一些限制条件,例如可以控制 “读数据”还是“写数据”,也可以设定访问有效期,还可以设定客户端的IP地址。
共享访问签名的模式又分为用户委托SAS和服务委托SAS,具体参考:
3. 使用 AAD 和RBAC
Azure Active Directory (Azure AD) 通过 Azure 基于角色的访问控制 (Azure RBAC) 授予对受保护资源的访问权限。
将 Azure 角色分配到 Azure AD 安全主体后(用户,组,应用程序都可以),Azure 会向该安全主体授予对这些资源的访问权限。
通常在应用程序中,使用服务主体的方式访问 存储账户,关于服务主体,一般需要
- 在AAD中创建应用
- 配置应用的认证方式(证书或key)
- 配置应用的 角色
通过Azure 门户创建一个服务主体的方式请参考:
通过AAD访问storage account 实际上是通过获取OAuth 2.0 访问令牌后,才可以访问stoage account,但通常这个过程可以使用Azure SDK简化,
关于AAD 和RBAC 访问 storage Account的 详细文章,请参考:
在Azure 门户 上使用Storage account数据也会有两种 方式,分别为 访问密钥 和 AAD 的方式:
如下图,可以设置 切换成 aad 方式还是切换成 access key 方式。
关于门户中的两种方式,需要的权限也不尽相同,请参考官网: