Amazon web services 来自EC2(专有网络)的AWS 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

我有下面的场景,我试图使用访问点访问S3存储桶内容,但是我得到了
AccessDenied
错误

  • 具有公共子网的客户专有网络
  • 此子网下具有公共IP的EC2实例
  • 已将IAM角色分配给EC2实例以完全访问S3
  • 创建了S3 bucket
    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端点并删除接入点策略,可以完成此操作。