当我尝试将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端点上。
每个人都知道如何解决这个错误吗?
答案 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'