InvalidManifest。将图像注册到EC2时的HTTP 403(禁止)

时间:2012-09-13 09:32:13

标签: amazon-s3 amazon-ec2 http-status-code-403

当我尝试将AMI注册到ec2时,我遇到了一些问题。这就是我所做的:我已经将已经存在的AMI下载到我的s3存储桶中,这个ami可以毫无问题地注册。 (当我尝试使用现有的ami的网络应用程序时)

我在新存储桶上重新上传它,当尝试从新创建的存储桶注册AMI时,它失败并出现此错误:

状态代码:400,AWS服务:AmazonEC2,AWS请求ID:X,AWS错误代码:InvalidManifest,AWS错误消息:URL http://s3.amazonaws.com:80/testclementusnew/0/node_ec2_infra.manifest.xml的HTTP 403(禁止)响应:检查您的S3 ACL是否正确。

我使用相同的帐户上传和注册,并在我的帐户拥有所有权限的文件的权限部分。

我正在使用最新版本的java SDK,我为s3和ec2指定了以下端点: ec2endPoint = ec2.us-east-1.amazonaws.com s3endPoint = s3.amazonaws.com

我也尝试过欧洲端点和同样的错误......

存储桶也位于良好的s3端点上。

每个人都知道如何解决这个错误吗?

1 个答案:

答案 0 :(得分:0)

漂亮的hacky解决方法,但这对我有用:

首先,您需要wget http://curl.haxx.se/ca/cacert.pem才能获得更新的CA证书列表。

然后,编辑ec2-ami-tools curl lib。我在:

/usr/lib/ec2-ami-tools/lib/ec2/common/curl.rb

我从

更改了第68行
invocation << ' -w "Response-Code: %{http_code}\nContent-Type: %{content_type}"'

invocation << ' -w "Response-Code: %{http_code}\nContent-Type: %{content_type}" --cacert /path/to/cacert.pem'