AWS S3 存储类文件大小阈值策略

问题描述 投票:0回答:1

我有以下策略声明,需要将

INTELLIGENT_TIERING
存储类密钥应用于存储桶
foo
:

{
  "Sid": "EnforceIntelligentTiering",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::foo/*",
  "Condition": {
    "StringNotEquals": {
      "s3:x-amz-storage-class": "INTELLIGENT_TIERING"
    }
  }
}

如果我尝试将文件复制到此存储桶,且该文件小于

INTELLIGENT_TIERING
存储类的大小阈值 (128 kB),是否会抛出错误以阻止复制此文件?还是会应用标准等级?

如果出现错误,我该如何修改此策略,使其仅应用于大于阈值的文件,以避免此错误?

amazon-web-services amazon-s3 policy
1个回答
0
投票

如果您尝试按原样将小于 INTELLIGENT_TIERING 存储类阈值 (128 kB) 的文件复制到 S3 存储桶,则会抛出错误,导致文件无法复制。这是因为该策略明确拒绝任何 PutObject 操作,除非存储类别设置为 INTELLIGENT_TIERING。但是,小于 128 kB 的文件不符合 INTELLIGENT_TIERING 的条件,这会导致冲突。

如何修改策略以仅适用于大于阈值的文件: 为了避免此错误,您可以修改策略以仅将条件应用于大于 128 kB 的文件。这可以通过添加一个检查 s3:content-length:

的条件来完成
{
  "Sid": "EnforceIntelligentTiering",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::foo/*",
  "Condition": {
    "StringNotEquals": {
      "s3:x-amz-storage-class": "INTELLIGENT_TIERING"
    },
    "NumericGreaterThanEquals": {
      "s3:content-length": 131072
    }
  }
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.