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

如何在AWS S3中仅阻止特定路径层级的对象删除

AWS S3 特定层级删除权限控制方案

需求说明

存储桶路径结构如下:

  • level0
    • level1
      • level2-A
        • level3-A
          • file1.ext
          • file2.ext
      • level2-B
        • level3-B
          • file1.ext
          • file2.ext

要求:

  • 允许删除level3层级及以下的所有对象(包括level3文件夹、内部文件及更深层级内容)
  • 禁止删除level0、level1、level2层级的对象(level2名称未知,仅知晓level0和level1的名称)

错误策略分析

你之前尝试的策略未达到预期,原因是Deny规则范围不准确,且权限逻辑顺序不合理:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Sid1",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::<<my-bucket>>/*"
            ]
        },
        {
            "Sid": "Sid2",
            "Effect": "Deny",
            "Action": [
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<<my-bucket>>/level0/level1/*/"
            ]
        }
    ]
}

该策略仅拒绝删除level2文件夹对象,未明确允许level3及以下的删除权限,全局Allow s3:* 还可能引发权限逻辑冲突,最终导致所有内容无法删除。

正确权限策略

以下策略可精准实现你的需求:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowDeleteLevel3AndBelow",
            "Effect": "Allow",
            "Action": "s3:DeleteObject",
            "Resource": "arn:aws:s3:::<<my-bucket>>/level0/level1/*/*"
        },
        {
            "Sid": "DenyDeleteLevel0ToLevel2",
            "Effect": "Deny",
            "Action": "s3:DeleteObject",
            "Resource": [
                "arn:aws:s3:::<<my-bucket>>/level0/",
                "arn:aws:s3:::<<my-bucket>>/level0/level1/",
                "arn:aws:s3:::<<my-bucket>>/level0/level1/*/"
            ]
        },
        {
            "Sid": "AllowOtherS3Operations",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::<<my-bucket>>/*"
        }
    ]
}

策略说明

  1. AllowDeleteLevel3AndBelow:明确允许删除所有level0/level1/[任意level2]/[任意level3]及更深层级的对象,通配符*可匹配任意字符(包括路径分隔符/),覆盖level3文件夹、内部文件及子层级内容。
  2. DenyDeleteLevel0ToLevel2:拒绝删除level0、level1文件夹对象,以及所有level2层级的文件夹对象(通过level0/level1/*/匹配任意名称的level2文件夹)。
  3. AllowOtherS3Operations:允许除删除限制外的所有S3操作,确保用户可正常访问、上传其他层级内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:57:48