2

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

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

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

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

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

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

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

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

4

1 回答 1

0

非常hacky的解决方法,但这对我有用:

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

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

/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'
于 2013-09-23T14:32:24.923 回答