无法将文件从S3复制到EC2实例

时间:2019-05-03 05:34:39

标签: amazon-s3 amazon-ec2

我有一个EC2实例,它打开了所有入站流量。它被分配了以下角色:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::test-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:ListObject"
            ],
            "Resource": [
                "arn:aws:s3:::test-bucket/*"
            ]
        }
    ]
}

我正在尝试将文件从S3存储桶复制到此实例。

aws s3 cp s3://test-bucket/test.csv /home/ubuntu/

我收到此错误:

  

严重错误:端点URL:“ https://test-bucket.s3.eu-central-1.amazonaws.com/test.csv”上的连接超时

我在做什么错?如何获得S3存储桶使用的公共IP地址?我可以尝试在EC2的出站规则中指定它。

1 个答案:

答案 0 :(得分:0)

  

如何获取S3存储桶使用的公共IP地址?我可以尝试在EC2的出站规则中指定它

使用现代化的非移动Web浏览器转到S3控制台。单击存储桶内的对象。右侧将弹出对象that show Overview, Properties and Permissions的详细信息窗格。概述中是对象URL。通常,它遵循以下URL模式:

https://s3.amazonaws.com/<bucket-name>/<object key>

ping s3.amazonaws.com以获取IP地址。现在,我得到:52.216.185.149

要获取range of s3 ips,请使用aws powershell command

Get-AWSPublicIpAddressRange -ServiceKey s3 -Region eu-central-1

IpPrefix            IpAddressFormat Region       Service
--------            --------------- ------       -------
52.219.72.0/22      Ipv4            eu-central-1 S3
52.219.44.0/22      Ipv4            eu-central-1 S3
52.92.68.0/22       Ipv4            eu-central-1 S3
54.231.192.0/20     Ipv4            eu-central-1 S3

一种将s3文件下载到ubuntu实例的更简单方法,建议您遵循使用s3 sync命令的steps in this guide。该指南使用一个角色来包括您的s3桶状样板。请注意,提示指示您无法在启动ec2实例but that is not true anymore后更改其IAM角色。您可以创建一个角色,并将其附加到已运行的实例。我将使用s3 cp命令而不是s3 sync