将使用显式拒绝规则来防止创建不包括服务器端加密选项( AES或KMS)的S3存储桶。明确否认是防止意外创造的首选结果。
我可以通过控制台找到在创建中指定的选项,而不是cli create-bucket命令。
据我所知,put-bucket-encryption命令可以用作后续管理控制,检测/纠正控制可以通过Lambda或其他方法实现,但这绕过了主动控制需求。
预期的结果将是应用一个策略,显式地拒绝创建、修改、读取内容,以及关于没有伴随属性SSEAlgorithm或函数等效的桶的策略不匹配或不匹配。
发布于 2019-06-07 08:04:37
我首先作为一个评论,OP认为这是一个合理的缓解:
拒绝所有使用AWS控制台的用户创建桶的访问权限。
编写一个特殊的服务,它将根据首选设置创建一个桶(当需要扩展到不同的调用时)。另一个副作用是,您可以简化额外的需求,比如检查桶名(例如company_project_module_xxx)和文档(将创建者/任务时间/注释添加到文档桶中)。
发布于 2019-06-05 18:12:21
{
"Sid": "DenyNoEncryption",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::test_bucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
}这就是策略在没有sse的情况下拒绝将对象添加到s3桶的方式。
如果您需要停止在没有sse的情况下创建s3存储桶。将s3操作更改为"s3:CreateBucket" --我认为这对您来说是有效的。然后将资源更改为*。
{
"Sid": "DenyNoEncryption",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:CreateBucket",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
}
}https://stackoverflow.com/questions/56464011
复制相似问题