![](/img/trans.png)
[英]How to allow access to specific S3 bucket from specific VPC on different region
[英]Allow S3 Bucket access from either specific VPC or console
我在S3存储桶(API密钥)的文件中存储了一些应用程序配置。 我将S3存储桶配置为仅允许通过特定的VPC端点进行访问,该端点将密钥与特定环境联系在一起,并防止例如生产密钥在登台或测试环境中意外使用。
但是有时我需要修改这些键,这很痛苦。 当前存储桶策略阻止控制台访问,因此我必须删除存储桶策略,更新文件,然后替换该策略。
如何允许从控制台,特定的VPC端点进行访问,而在其他地方没有访问权限?
目前的政策,我已经尝试过但失败了:
{
"Version": "2012-10-17",
"Id": "Policy12345",
"Statement": [
{
"Sid": "Principal-Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account-id:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-keys-staging",
"arn:aws:s3:::my-keys-staging/*"
]
},
{
"Sid": "Access-to-specific-VPCE-only",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-keys-staging",
"arn:aws:s3:::my-keys-staging/*"
],
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-vpceid"
}
}
}
]
}
如评论中所述,拥有明确的Deny
不能被覆盖。 通过包含与特定VPC绑定的Deny
,您不能添加任何其他Allow
元素来抵消该Deny
语句。
选项1
一种选择是将“如果不是从VPC abc拒绝,则”语句更改为“如果从VPC abc拒绝,则允许”语句。 这将允许您向策略中添加其他Allow
语句,以允许您从其他位置访问存储桶。
但是,这样做有两个非常重要的警告:
因此,通过将Deny
更改为Allow
,您将在存储桶级别不再具有VPC限制。
这可能会或可能不会在您组织的安全要求之内。
选项2
相反,您可以修改现有的Deny
以添加其他条件,这些条件将在“与”情况下起作用:
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-vpceid",
"aws:username": "your-username"
}
}
在以下情况下,这种类型的条件将拒绝请求:
因此,除了允许用户登录从任何地方访问存储桶之外,您应该能够限制对VPC的请求限制。
注意执行此操作将打开的安全漏洞。 您应该确保将用户名限制为(a)未分配任何访问密钥,并且(b)启用了MFA。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.