我试图使用S3存储作为一个简单的虚拟主机,但是想要把它背后的反向代理能够分层一些必要的安全控制措施。AWS桶政策的反向代理
我有,我想限制对S3的Web访问的反向代理相关的IP地址。当我在存储桶策略中应用基于IP的限制时,虽然它似乎使帐户中的管理交互非常难以阻止。
我想不会破坏通过控制台/ IAM用户/联合角色从帐户中访问,但启用HTTP访问S3网站只是反向代理相关的IP地址。
对什么是需要启用Web访问表明,我需要这个政策声明,所以我已经包括它开始与AWS文档。
{
"Id": "S3_Policy",
"Statement": [
{
"Sid": "AllowWebAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
然后我想限制网络流量到一组特定的IP,所以我添加了这个语句。
{
"Id": "S3_Policy",
"Statement": [
{
"Sid": "AllowWebAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Sid": "DenyNonProxyWebAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"99.99.99.1/32",
"99.99.99.2/32",
"99.99.99.3/32",
"99.99.99.4/32",
"99.99.99.5/32"
]
}
}
}
]
}
这种拒绝策略具有阻止我从与IAM用户访问我的帐户内的能力的意想不到的后果或联合承担的角色,所以我增加了一个明确允许这些资源。如果可能的话,我想只是为了“账户”而放置一个毯子。这让我有了这个政策,而且这似乎并不符合我的愿望。我似乎无法将其作为我的用户进行管理,也无法从代理访问网络内容。
{
"Id": "S3_Policy",
"Statement": [
{
"Sid": "AllowWebAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
},
{
"Sid": "DenyNonProxyWebAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"99.99.99.1/32",
"99.99.99.2/32",
"99.99.99.3/32",
"99.99.99.4/32",
"99.99.99.5/32"
]
}
}
},
{
"Sid": "AllowAccountUsersAccess",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:IAM::999999999999:user/[email protected]",
"arn:aws:IAM::999999999999:user/[email protected]",
"999999999999"
]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::my bucket"
]
}
]
}
有没有办法有一个S3存储是仅限于选择的IP范围的网络访问,而无需中断从账户管理桶本身的能力的静态虚拟主机?