我想对所有 S3 存储桶应用特定限制。通常,AWS 发布的资源会描述每个存储桶的解决方案。但是,这并不能解决其他用户创建可以规避给定限制的存储桶策略的问题。
举例来说:s3-bucket-ssl-仅请求,以下为相关限制示例:
{
"Effect": "Deny",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:s3:::example-bucket/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
这是否只能用于新存储桶并不重要,但回顾性应用将是一个好处。似乎没有存储桶策略层次结构,所以我的问题基本上是,实现这一点的推荐方法是什么?
答案1
使用附加到您的 AWS 组织 OU 的 AWS 服务控制策略。下面的代码片段仅强制执行传输中的 S3 加密,但您也可以强制执行:
- 静态 S3 / EBS / RDS 加密(可能其他服务也一样)
- 允许的 EC2 大小/系列
- 创建默认 VPC
- 禁用默认 EBS 加密
- 停用安全服务
- 根用户做了很多事情(实际上他们不应该做任何事情)
- 区域执行
- OU 的白名单服务
我的括号可能不太正确,我是从更大的 SCP 中剪下来的,但任何 IDE(如 VSCode)都可以帮助解决这个问题。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "S3EncryptionInTransit",
"Effect": "Deny",
"Action": "s3:PutObject",
"Resource": "*",
"Condition": {
"ForAllValues:StringNotEquals": {
"s3:x-amz-server-side-encryption": ["AES256", "aws:kms"]
}
}
}]
}