我在Azure Blob存储中有一些由服务创建的动态文件。
我想允许我前面的代理访问容器中这些blob文件的任何
有没有办法使整个Blob容器公开或为每个Blob都不生成SAS令牌?
最好的方法是Shared Key吗?
任何建议将不胜感激。
谢谢!
答案 0 :(得分:0)
您的代理服务器将具有公共IP吗?如果是这样,请将您的Blob容器配置为启用匿名访问,然后enable Azure storage firewall将您的代理公用IP添加到白名单中,以确保只有您的代理才能访问您的Blob容器。我认为这将是一种简单的方法。
使用Azure AD RBAC也是满足您要求的简便方法。使用此功能,您可以使用access_token访问Azure存储。有关详细信息,您可以参考以下文档以获取详细信息:
https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad
https://docs.microsoft.com/en-us/rest/api/storageservices/authenticate-with-azure-active-directory
答案 1 :(得分:0)
因为您使用的是Azure Function,所以有几种可能的方法:
使用SAS令牌是一种有效的方法。它在Blob级别提供了精细的访问。
super admin
权限。如果您旋转存储帐户访问密钥,则还必须在功能应用程序设置中更新连接字符串。Azure Storage帐户现在支持RBAC。这意味着您可以授予功能应用程序对特定容器的读取权限:
使用Azure AD凭据对用户或应用程序进行身份验证提供了比其他授权方式更高的安全性和易用性。尽管您可以继续对应用程序使用共享密钥授权,但是使用Azure AD避免了将帐户访问密钥与代码存储在一起的需要。您还可以继续使用共享访问签名(SAS)授予对存储帐户中资源的细粒度访问权限,但是Azure AD提供了类似的功能,而无需管理SAS令牌或担心撤销受感染的SAS。 Microsoft建议在可能的情况下为您的Azure存储应用程序使用Azure AD身份验证。