Amazon web services 来自EC2(专有网络)的AWS S3接入点访问被拒绝
我有下面的场景,我试图使用访问点访问S3存储桶内容,但是我得到了Amazon web services 来自EC2(专有网络)的AWS S3接入点访问被拒绝,amazon-web-services,amazon-s3,amazon-ec2,Amazon Web Services,Amazon S3,Amazon Ec2,我有下面的场景,我试图使用访问点访问S3存储桶内容,但是我得到了AccessDenied错误 具有公共子网的客户专有网络 此子网下具有公共IP的EC2实例 已将IAM角色分配给EC2实例以完全访问S3 创建了S3 bucketmy test bucket&访问点“my test ap”,并提供了默认策略和VPC id以限制通过internet的访问 ssh到EC2实例并运行命令-aws s3 ls--Bucket my test Bucket或aws s3api list objects--Bu
AccessDenied
错误
my test bucket
&访问点“my test ap”,并提供了默认策略和VPC id以限制通过internet的访问ssh
到EC2实例并运行命令-aws s3 ls--Bucket my test Bucket
或aws s3api list objects--Bucket--my test Bucket
,列出Bucket中的所有内容aws s3api列表对象的命令--bucket arn:aws:s3:us-east-1:my account id:accesspoint/my test ap
会给我“AccessDenied”消息{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:us-east-1:my-account-id:accesspoint/my-test-ap",
"Condition": {
"StringEquals": {
"s3:AccessPointNetworkOrigin": "VPC"
}
}
}
]
}
请注意,确保没有什么可以让这项工作正常进行。为了再现您的情况,我执行了以下操作:
- 创建了一个AmazonS3存储桶
- 创建了一个带有公共子网的新亚马逊专有网络(使用专有网络向导)
- 启动了一个AmazonEC2实例,该实例具有允许所有AmazonS3访问的IAM角色
- 通过SSH登录并确认可以访问S3
- 在bucket上创建了一个S3访问点,其中包含:
Network origin=VPC
- 指向新VPC
- “阻止所有公共访问”设置为true(所有已阻止)
- 使用无接入点策略(这与您的场景不同)
aws s3api list-objects-v2 --bucket arn:aws:s3:ap-southeast-2:1111:accesspoint/my-access-point
结果:AccessDenied
然后,我添加了一个VPC端点,因为上面说:
要将接入点与VPC一起使用,必须修改VPC端点的访问策略。VPC端点允许流量从VPC流向Amazon S3。他们有访问控制策略,控制VPC内的资源如何与S3交互。只有当VPC端点策略同时授予对接入点和底层存储桶的访问权限时,从VPC到S3的请求才能通过接入点成功
然后,我能够成功地访问bucket
因此,从VPC访问S3接入点时,似乎需要VPC端点
一个例子如所示:您能给我们展示一下您的接入点策略配置吗,这样我们就可以尝试重现您的场景了?@JohnRotenstein编辑了一个带有策略的问题。有趣的是,我可以从EC2实例创建新的访问点,返回S3。资源不应该是
arn:aws:S3:us-east-1:my account id:accesspoint/my test ap/*
?谢谢John。添加VPC端点并删除接入点策略,可以完成此操作。