我有一个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的出站规则中指定它。
答案 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
。