加固 S3 存储桶

3

我们将部署所需的 RPM 存储在 S3 存储桶中,我们在存储桶上托管了一个 yum 库,以使更新 RPM 更加容易。

目前,我们的存储桶可通过 S3 端点(s3.amazonaws.com)公开访问,并对世界开放以便访问,因为我们当前无法从私有 S3 存储库中获取 yum 包。

我们需要加强 Repo 存储桶的安全性,以启用基于身份验证的访问 s3.amazonaws.com 端点的 S3。您有任何关于此的建议吗?谢谢!

`{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow Access From QA, dev",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                     
                    "arn:aws:iam::XXXXXXX:root"
                ]
            },
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::test-repo",
                "arn:aws:s3:::test-repo/*"
            ],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "X.X.X.X/32"
                     ]
                },
                "StringNotEquals": {
                    "aws:sourceVpce": "vpce-xxxxxxx"
                }
            }
        }
    ]
}
`
1个回答

4

不要试图专门添加身份验证层,而是考虑在您想要访问S3存储桶的VPC上添加VPC端点。

一旦这个VPC端点建立起来(并添加到路由表中),那么您就可以更新S3存储桶的存储桶策略,添加一个条件来拒绝所有不来自源VPC端点(aws:sourceVpce)的流量。

这种方法的优点是您不需要对服务器本身进行任何更改。

更多文档请参见此处


非常感谢您的时间和回答! - Sanjay M. P.
Chris,抱歉打扰你了。在应用aws:sourceVpce到存储桶策略后,来自VPC的实例是否能够curl https://s3.amazonaws.com/bucket-name/dir/file.rpm?我已经测试过了,但问题是对于一些用户它可以工作,而对于另一些用户则不行。只是想确认一下你是否有任何想法。再次感谢。 - Sanjay M. P.
curl https://s3.amazonaws.com/bucket/file
access denied <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>DE0CV4CE51C1BHH5C</RequestId>
- Sanjay M. P.
这是针对同一子网内的不同实例吗? - Chris Williams
是的,在同一VPC相同子网中有不同的实例,我们只有1个VPC 1个子网。aws ls(cli访问)适用于所有实例,但不适用于https。 - Sanjay M. P.
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接