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

能否用Azure Policy限制存储账户JSON文件创建/上传?如何获取Blob名称?

实现Azure Policy限制JSON文件上传的方案

要创建拒绝上传/创建JSON文件的Azure Policy,核心是在规则中匹配Blob的文件名后缀,以下是具体实现方法:

核心逻辑说明

Azure Policy针对Blob资源时,可通过field('name')直接获取Blob的完整名称(包含容器内的路径)。结合endsWith函数即可判断文件名是否以.json(含大写.JSON)结尾,再匹配Blob的写操作来触发拒绝规则。

完整Policy定义

{
  "properties": {
    "displayName": "拒绝创建/上传JSON格式的Blob文件",
    "description": "限制所有用户向存储账户上传或创建以.json/.JSON结尾的Blob文件",
    "mode": "All",
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts/blobServices/containers/blobs"
          },
          {
            "field": "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/creationType",
            "equals": "Blob"
          },
          {
            "value": "[endsWith(toLower(field('name')), '.json')]",
            "equals": true
          }
        ]
      },
      "then": {
        "effect": "Deny",
        "details": {
          "message": "禁止上传或创建JSON格式的文件,请使用其他格式。"
        }
      }
    },
    "metadata": {
      "category": "Storage"
    }
  }
}

关键部分解释

  • field('name'):获取Blob的完整名称(例如mycontainer/test.json),通过toLower转换为小写后,用endsWith判断是否以.json结尾,覆盖大小写后缀的情况
  • type匹配:确保规则仅作用于Blob资源
  • creationType匹配:明确针对Blob类型(排除容器等其他存储资源)
  • effect设置为Deny:触发匹配条件时直接拒绝操作

部署方式

  • 门户部署:进入Azure门户的「策略」服务,创建自定义策略,将上述JSON粘贴到定义中,设置作用范围(订阅/资源组)后分配
  • CLI部署:使用以下命令创建策略定义(替换占位符)
    az policy definition create --name "DenyJsonBlobs" --display-name "拒绝创建/上传JSON格式的Blob文件" --description "限制JSON文件上传" --rules @policy.json --mode All
    

注意事项

  • 若需排除特定存储账户或容器,可在if块中添加not条件,例如排除名为allowed-container的容器:
    {
      "field": "Microsoft.Storage/storageAccounts/blobServices/containers/name",
      "notEquals": "allowed-container"
    }
    
  • 该规则会覆盖所有Blob写操作(包括上传、覆盖、重命名后符合后缀的情况)

内容的提问来源于stack exchange,提问作者Shahid Haider

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:50:25