You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Entra ID保护Blob访问:如何生成指定组可用的安全链接?

解决方案:Azure Blob存储基于用户组权限的SAS链接生成与访问控制

一、将容器权限锁定到指定用户组

  • 首先关闭容器的公共访问权限,确保默认状态下无外部访问权限
  • 进入Azure存储账户的IAM页面,给目标内部用户组添加存储Blob数据参与者(或更细粒度的权限,如仅上传/只读)角色,仅该组内用户可通过Azure AD身份验证访问容器内容

二、生成安全SAS链接的两种方式

1. 组内员工自主生成(适合自行上传场景)

员工可通过Azure CLI或PowerShell,基于自身Azure AD身份生成用户委派SAS,这类SAS绑定用户身份权限,仅组内授权用户可使用:

  • Azure CLI命令示例:
az storage blob generate-sas \
  --account-name <你的存储账户名> \
  --container-name <目标容器名> \
  --name <Blob文件名> \
  --permissions racwd \
  --expiry <过期时间,如2024-12-31T23:59:59Z> \
  --auth-mode login
  • 说明:--auth-mode login指定用当前用户的Azure AD身份生成,仅拥有容器权限的组内用户能成功生成,生成的SAS链接仅该用户(或同组授权人员)可用

2. 后端代码统一生成(适合批量分发场景)

若你需要通过代码生成链接分发给员工,可生成服务端用户委派SAS:

  • 步骤示例(.NET):
    1. 确保代码运行身份(服务主体/托管身份)拥有存储账户密钥操作员或存储Blob数据所有者角色,具备获取用户委派密钥的权限
    2. 获取用户委派密钥:
      var blobServiceClient = new BlobServiceClient(
          new Uri("https://<你的存储账户名>.blob.core.windows.net"), 
          new DefaultAzureCredential());
      var userDelegationKey = await blobServiceClient.GetUserDelegationKeyAsync(
          DateTimeOffset.UtcNow, 
          DateTimeOffset.UtcNow.AddDays(7));
      
    3. 生成SAS令牌并拼接Blob访问链接:
      var blobContainerClient = blobServiceClient.GetBlobContainerClient("<目标容器名>");
      var blobClient = blobContainerClient.GetBlobClient("<Blob文件名>");
      var sasBuilder = new BlobSasBuilder()
      {
          BlobContainerName = "<目标容器名>",
          BlobName = "<Blob文件名>",
          Resource = "b",
          ExpiresOn = DateTimeOffset.UtcNow.AddHours(24),
          Permissions = BlobSasPermissions.Write | BlobSasPermissions.Read
      };
      var sasToken = sasBuilder.ToSasQueryParameters(userDelegationKey, "<你的存储账户名>").ToString();
      var secureBlobUrl = $"{blobClient.Uri}?{sasToken}";
      
    4. 将生成的secureBlobUrl分发给组内员工,仅该组用户可通过此链接访问/上传Blob,因为用户委派SAS会验证请求者的Azure AD身份是否在授权组内

三、额外安全加固措施

  • 缩短SAS有效期:尽量设置较短的过期时间,降低链接泄露后的风险
  • 绑定IP范围:若员工均在公司内网,生成SAS时指定允许的IP段,缩小访问范围
  • 启用存储账户防火墙:仅允许公司内网IP或指定Azure服务访问存储账户,从网络层面强化防护

内容的提问来源于stack exchange,提问作者Hilton Giesenow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:42:37