我希望我的 S3 存储桶可以通过两种方式访问:
- 当我登录时,通过控制台,这样我就可以修改文件
- 通过特定 VPC 中的 EC2 实例(为此正确设置了 IAM 角色)
这是我正在使用的存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy1415115909152",
"Statement": [
{
"Sid": "Principal-Access",
"Effect": "Allow",
"Principal": {
"CanonicalUser": "<my c_id>"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-keys",
"arn:aws:s3:::my-keys/*"
]
},
{
"Sid": "Access-to-specific-VPCE-only",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::my-keys",
"arn:aws:s3:::my-keys/*"
],
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-<my_vpce_id>"
}
},
"Principal": "*"
}
]
}
这对于从 VPC 访问有效,但对于在控制台登录的我无效。显然我可以删除存储桶策略,进行更改,然后重新应用它,但我宁愿不这样做...
答案1
您是否为控制台访问设置了特定的用户?如果您的会话未使用 CanonicalUser,则可能无权访问。