AWS S3 存储桶访问被拒绝
AWS S3 Bucket Access Denied
这是我在我的存储桶中实施的存储桶策略。
{
"Id": "Policy1535460101139",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1535460099601",
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucketname",
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": "vpc-id"
}
},
"Principal": "*"
}
]
}
保存此存储桶策略后,我无法从控制台(我具有 s3 完全访问权限)列出我的存储桶或对其执行任何操作,所有内容均显示访问被拒绝。因此,当我尝试从 VPC 中的一个 ec2 实例复制文件时,复制成功但我无法列出存储桶中的对象。我收到拒绝访问错误消息。(ec2 实例具有对存储桶具有完全权限的角色)。
这是附加到 EC2 实例的角色。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
我想知道这种奇怪的行为是我的存储桶策略的原因还是其他原因。如果是,关于我现在如何更改存储桶策略的任何提示?此外,这是我的控制台的屏幕截图。
是的,根据您的政策,这是 100%。
政策是这样说的:
"Effect": "Deny",
-- 拒绝访问
"Principal": "*"
-- 给大家
"Resource": "arn:aws:s3:::bucketname"
-- 到这个桶
"StringNotEquals": {"aws:SourceVpc": "vpc-id"
-- 如果请求不是来自这个 VPC
至于如何修复,要看你的要求了,你在问题中没有说明。
我什至无法从 vpc 内的实例访问存储桶的原因是因为我没有将 VPC 连接到实例所属子网的路由 table 上的 S3 端点. "aws:SourceVpc"
一词用于允许来自同一 VPC 的多个端点连接,如文档中所述,这与我的想法相反,即它将允许来自上述 VPC 的所有请求。因此,这个问题的最终解决方案是,您可以从上述 VPC 中存在的实例中删除存储桶策略,前提是它属于一个子网,该子网附加了一个 VPC 到 S3 端点。
这是我在我的存储桶中实施的存储桶策略。
{
"Id": "Policy1535460101139",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1535460099601",
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucketname",
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": "vpc-id"
}
},
"Principal": "*"
}
]
}
保存此存储桶策略后,我无法从控制台(我具有 s3 完全访问权限)列出我的存储桶或对其执行任何操作,所有内容均显示访问被拒绝。因此,当我尝试从 VPC 中的一个 ec2 实例复制文件时,复制成功但我无法列出存储桶中的对象。我收到拒绝访问错误消息。(ec2 实例具有对存储桶具有完全权限的角色)。 这是附加到 EC2 实例的角色。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
我想知道这种奇怪的行为是我的存储桶策略的原因还是其他原因。如果是,关于我现在如何更改存储桶策略的任何提示?此外,这是我的控制台的屏幕截图。
是的,根据您的政策,这是 100%。
政策是这样说的:
"Effect": "Deny",
-- 拒绝访问"Principal": "*"
-- 给大家"Resource": "arn:aws:s3:::bucketname"
-- 到这个桶"StringNotEquals": {"aws:SourceVpc": "vpc-id"
-- 如果请求不是来自这个 VPC
至于如何修复,要看你的要求了,你在问题中没有说明。
我什至无法从 vpc 内的实例访问存储桶的原因是因为我没有将 VPC 连接到实例所属子网的路由 table 上的 S3 端点. "aws:SourceVpc"
一词用于允许来自同一 VPC 的多个端点连接,如文档中所述,这与我的想法相反,即它将允许来自上述 VPC 的所有请求。因此,这个问题的最终解决方案是,您可以从上述 VPC 中存在的实例中删除存储桶策略,前提是它属于一个子网,该子网附加了一个 VPC 到 S3 端点。