策略实施S3标准存储类

时间:2014-06-11 09:04:26

标签: amazon-s3 amazon-iam

有没有办法定义S3存储桶策略来强制执行标准存储类?我想阻止用户创建冗余存储类减少的对象。

2 个答案:

答案 0 :(得分:3)

现在,您可以使用S3存储桶策略中的条件将S3对象(使用super.paintComponent)的创建约束到特定存储类。

当前版本的AWS文档有一个示例 - Restrict object uploads to objects with a specific storage class

  

假设帐户A拥有一个存储桶,并且帐户管理员希望限制帐户A中的用户Dave,以便只能将对象上传到将与html, body { height: 100vh; } #box { position: relative; min-width: 100%; min-height: 100%; background-color: #3498eb; overflow: auto; } #results { position: absolute; top: 0; left: 0; } 存储类一起存储的存储桶。帐户A管理员可以使用PutObject条件密钥完成此操作,如以下示例存储桶策略所示。

STANDARD_IA

s3:x-amz-storage-class{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::examplebucket/*" ], "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] } 的值将特定于您的用户和S3存储桶。 Principal约束需要更改为Resource

答案 1 :(得分:1)

我恐怕没有,至少它似乎没有记录 - 鉴于Amazon IAM政策设计,这个约束需要由一个resp来涵盖。 Condition

  

Condition元素(或Condition块)允许您指定条件   当政策生效时。 [...]条件值可以包括日期,时间,IP   请求者的地址,请求源的ARN,用户   名称,用户标识和请求者的用户代理。有些服务让   您在条件中指定其他值; 例如,亚马逊S3   允许您使用s3:VersionId键编写条件,该键是唯一的   该服务。 [...] [强调我的]

现在,Specifying Conditions in a Policy用于对象操作的Amazon S3条件密钥部分缺少对存储类的任何引用,而语义兄弟s3:x-amz-server-side-encryption已经存在:

  

授予s3:PutObject权限时,存储桶拥有者可以添加   使用此键的条件要求用户指定此标头   请求。存储桶拥有者可以授予此类有条件权限   确保用户上传的对象以加密方式保存。

考虑到这些标题的对称性(请参阅Object Key and Metadata中的系统定义的元数据部分),您可能只想尝试s3:x-amz-storage-class,也许您很幸运,它已经在'私人测试'中;)