【发布时间】:2020-06-02 13:20:02
【问题描述】:
我有几个 s3 存储桶,我只向特定的 IAM 用户授予了访问权限。我通过设置以下存储桶策略来做到这一点:
Effect : "Deny"NotPrincipal : { "AWS " : "<My_IAM_User>" }
我只能从 IAM 用户访问存储桶,因此该策略按预期工作,但我还想将存储桶访问限制为仅特定 IP。这个 IP 是我的服务器运行的 ec2 IP 地址。我使用的策略值如下:
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"<My_EC2_Server_IP_Address>"
]
}
}
我希望上述策略只允许我的 EC2 服务器访问 s3 存储桶对象,但如果我从任何其他 IP 进行调用(例如:在我的本地计算机上运行服务器并尝试访问存储桶) . ) 它仍然响应存储桶中的有效对象。 上述政策似乎没有阻止任何访问存储桶的请求来自其他随机 IP 地址。
我的整个存储桶策略如下所示:
{
"Version": "<Version_value>",
"Statement": [
{
"Sid": "<Sid_value>",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "<My_IAM_User>"
},
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::<My_Bucket_name>/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "<My_EC2_Server_IP_Address>"
}
}
}
]
}
我的参考资料: 1.https://aws.amazon.com/premiumsupport/knowledge-center/block-s3-traffic-vpc-ip/ 2.https://medium.com/@devopslearning/100-days-of-devops-day-11-restricting-s3-bucket-access-to-specific-ip-addresses-a46c659b30e2
【问题讨论】:
-
您应该包含整个策略(屏蔽任何敏感数据,例如 IP、IAM 用户 ARN 和存储桶名称)。
-
当然@jarmod,我已经添加了我的整个存储桶策略。长期以来一直坚持这一点,如果我能找到解决方案,那将非常有帮助。提前致谢。
标签: amazon-web-services amazon-s3 amazon-ec2 aws-policies