use*_*629 1 amazon-s3 amazon-web-services amazon-iam
我有一些应用程序配置存储在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"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
正如评论中所提到的,有一个明确的Deny不能被覆盖.通过将Deny绑定包含在特定的VPC中,您无法添加任何其他Allow元素来抵消该Deny语句.
选项1
一种选择是将"拒绝,如果不是从VPC abc"声明更改为"允许从VPC abc".这将允许您向Allow策略添加其他语句,以允许您从其他位置访问存储桶.
但是,有两个非常重要的注意事项:
因此,通过更改Deny为Allow,您将不再在桶级别具有VPC限制.
这可能是也可能不在贵组织的安全要求范围内.
选项2
相反,您可以修改现有内容Deny以添加可在AND情况下工作的其他条件:
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-vpceid",
"aws:username": "your-username"
}
}
Run Code Online (Sandbox Code Playgroud)
如果出现以下情况,此类条件将拒绝请求:
因此,您应该能够保持限制请求到您的VPC的限制,除了您的用户登录将允许从任何地方访问存储桶.
通过这样做,请注意您打开的安全漏洞.您应该确保将用户名限制为(a)没有分配任何访问密钥,以及(b)启用了MFA.
| 归档时间: |
|
| 查看次数: |
583 次 |
| 最近记录: |