有没有办法定义S3存储桶策略来强制执行标准存储类?我想阻止用户创建冗余存储类减少的对象。
答案 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
,也许您很幸运,它已经在'私人测试'中;)