代码之家  ›  专栏  ›  技术社区  ›  Silly Dude

AWS。NET SDK:无法从S3端点访问S3

  •  0
  • Silly Dude  · 技术社区  · 7 年前

    我的web服务器需要访问S3。当我将它们放置在公共子网中,或将它们放置在私有子网中并使用NAT网关时,一切正常:

    IAmazonS3 client = new AmazonS3Client("myaccesskey", "mysecretkey", enRegion);
    PutObjectRequest putReq = new PutObjectRequest();
    putReq.FilePath = "c:\temp\myphoto.jpg";
    putReq.BucketName = "MyBucket";
    putReq.Key = "myphoto.jpg";
    PutObjectResponse putResp = client.PutObject(putReq);
    

    现在我尝试将web服务器放置在具有S3端点的私有子网中,我的代码无法再访问S3。我需要更改代码吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Kush Vyas    7 年前

    仅供参考的专有网络是真正私有的。只有您明确允许的流量才能通过专有网络的边界。

    因此,在VPC内部,需要访问外部资源的实例要么需要分配一个EIP(在这种情况下,它们可以使用AWS的基础设施访问外部资源),要么需要提供一个NAT主机(在这种情况下,所有流量都通过自己的NAT离开VPC)。

    截至2015年5月11日,AWS发布了S3的“VPC端点”,该端点允许直接从VPC访问S3,而无需通过代理主机或NAT实例

    您可以创建端点,选择所需的专有网络,并自定义访问策略(如果需要):

    请参考 AWS Blog Post 详细信息。

    希望这有帮助。