如何禁止Azure中Blob的'Change Tier'操作
阻止Azure Blob层修改的可行解决方案
你需要禁用的下图高亮的「Change Tier」选项,同时拦截所有途径的层修改操作,可通过以下两种方案实现,两类方案均同时覆盖门户界面、PowerShell、API、SDK等所有调用渠道:
- 方案1:Azure Policy全局拦截(推荐,适合批量范围管控)
该方案无需修改现有RBAC权限配置,直接在对应范围(订阅/资源组/单个存储账户)分配策略即可生效:- 前往Azure Policy控制台,搜索内置策略定义
存储Blob不应允许更改层 - 将策略分配到你需要管控的范围,策略生效后所有修改Blob层的请求都会被直接拒绝,同时门户中的「Change Tier」按钮会自动置灰不可点击
- 如需自定义管控粒度,可自定义策略,核心规则是匹配操作
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tier/action,效果设置为Deny即可
- 前往Azure Policy控制台,搜索内置策略定义
- 方案2:RBAC拒绝权限分配(适合针对特定用户/组管控)
如果你只需要限制部分用户的修改权限,无需全局管控,可以配置RBAC拒绝分配:- Blob层修改对应的操作权限为
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tier/action - 针对需要限制的用户或安全组,创建拒绝分配,将上述操作设为拒绝,由于Azure RBAC中拒绝权限优先级高于所有允许权限,即使用户持有Contributor角色也无法执行层修改操作
- 配置完成后,受限用户访问门户时「Change Tier」选项会自动禁用,通过其他工具发起的修改请求也会返回权限错误
- Blob层修改对应的操作权限为
- 生效验证
配置完成后可通过两种方式验证效果:- 用受限账号登录Azure门户,查看对应Blob的「Change Tier」选项是否已灰化无法点击
- 用PowerShell执行
Set-AzStorageBlobTier命令尝试修改层,会收到策略拦截或权限不足的报错
内容的提问来源于stack exchange,提问作者Carol
相关产品推荐
相关产品推荐

