2

我一直在尝试将 AMI 从我的 AWS 账户 A (ap-southeast-2) 迁移到账户 B (us-east-1)。

在我的帐户中,我已授予帐户 A 的启动权限。

但是,当我运行以下代码时,

$result = $this->destination_ec2_client->copyImage(
          array(
               'SourceRegion' => $this->source_region,
               'SourceImageId' => $image_id,
               'Name' => $amis[0]['Name']
          ));

当我通过文档运行上述代码时,调用应该从源区域复制 AMI 并将其复制到目标区域。

但是,最终输出是错误的。错误显示在控制台上失败的 AMI 描述下。

State Reason: AMI ownership mismatch

有什么想法吗?我是否正确理解了机制?

4

2 回答 2

5

AWS CLI 对账户之间的 copy-image 具有相同的限制。这就是我解决它的方法:

$ aws ec2 run-instances --image-id $SHAREDAMI --instance-type c3.large  --user-data '#!/bin/bash
> poweroff'

一旦上述实例停止:

$ aws ec2 create-image --instance-id $IDFROMRUN --name "Image from other accounts AMI"

生成的 AMI 现在可以在您的区域之间复制。前任。:

$ aws --region us-west-1 ec2 copy-image --source-region us-east-1 --source-image-id $AMIFROMCREATE --name "Copy of Image from other accounts AMI"
于 2015-02-04T22:24:05.310 回答
0

AFAIK,AMI 副本不能跨账户工作。

您可能希望首先基于账户 A (ap-southeast-2) 上的 AMI 在账户 B (ap-southeast-2) 上创建一个 AMI。

确保将账户 A 上 AMI 的权限设置为public。然后您可以在账户 B 上启动一个实例,然后在 (ap-southeast-2) 上基于该实例创建 AMI

然后,在账户 B 上,您可以运行脚本将 AMI 从 ap-southeast-2 复制到 us-east-1

希望这可以帮助。

于 2014-01-15T19:43:24.967 回答