无效清单.向EC2注册映像时的HTTP 403(禁止)



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

我将其重新上传到一个新的bucket上,当尝试从新创建的bucket中注册AMI时,它失败了,并出现以下错误:

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

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

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

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

铲斗也位于良好的s3端点上。

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

很巧妙的解决方法,但这对我有效:

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

然后,编辑ec2ami工具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'