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

如何编写S3存储桶策略禁止文件夹批量删除但允许单个删除与下载

解决方案

你可以通过配置S3存储桶的IAM权限策略实现需求,核心逻辑是拦截S3批量删除的底层API调用,保留单文件操作权限:

  • 允许所有用户调用GetObject接口实现单个文件下载
  • 允许所有用户调用DeleteObject接口实现单个文件删除
  • 拒绝所有用户调用DeleteObjects接口,S3控制台批量删除、CLI/SDK批量删除、选中整个文件夹删除的底层都依赖该接口,禁止该接口即可完全拦截批量删除行为

示例存储桶策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket-name/folder1/*",
                "arn:aws:s3:::your-bucket-name/folder2/*"
            ],
            "Principal": "*"
        },
        {
            "Effect": "Deny",
            "Action": "s3:DeleteObjects",
            "Resource": [
                "arn:aws:s3:::your-bucket-name/folder1/*",
                "arn:aws:s3:::your-bucket-name/folder2/*"
            ],
            "Principal": "*"
        }
    ]
}

配置说明

  • 请将策略中的your-bucket-name替换为你实际使用的S3存储桶名称
  • IAM策略中Deny规则优先级高于所有Allow规则,即使用户原有权限包含s3:DeleteObjects,也会被该策略拦截
  • 如果需要将规则应用到整个存储桶,直接将Resource字段的值改为arn:aws:s3:::your-bucket-name/*即可
  • 如果需要限定只有特定用户/角色受该规则限制,可以调整Principal字段的ARN范围,不需要作用于所有用户可以删除"Principal": "*"改为指定ARN列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:48:02