如何配置通过专有网络从aws ec2实例访问我的aws s3 bucket



我已经在EC2上安装了带有kaltura nginx vod模块的nginx。我想通过http为我的s3 bucket设置专用远程只读模式。所需nginx配置示例:

vod_upstream_location /s3;
location /s3/ {
internal;
proxy_pass http://my-s3-bucket.s3-eu-east-1.amazonaws.com/;
}

我试图为我的s3创建接入点。在设置中,我曾将Access选项指向我的VPC,但当我试图通过http url从s3获取一些对象时,cURL从EC2返回403。此外,我还创建了具有只读S3访问权限的IAM角色,并将其分配给我的EC2,但结果是相同的-403。

如何在同一地区通过虚拟私有亚马逊网络建立从EC2到s3 bucket的私有http访问?

这是不起作用的,因为除非对象是公共的,否则您无法根据其URL访问对象。由于您已将IAM角色分配给EC2实例,因此必须使用带有EC2实例角色凭据的对象url向该对象发出签名的http请求。

因此,您必须自己构造有效的签名,或者只需使用AWS SDK,例如用于python的boto3,即可为您完成此操作。通过查看kaltura-nginx-vod的描述,它似乎没有代表您向S3发出任何签名请求。

最新更新