我一直在尝试将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
有什么想法?我是否正确理解了这种机制?
答案 0 :(得分:5)
AWS CLI在帐户之间具有相同的复制图像限制。这就是我如何解决它:
$ 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"
答案 1 :(得分:0)
AFAIK,AMI副本无法跨帐户工作。
您可能希望首先根据帐户A(ap-southeast-2)上的AMI在帐户B(ap-southeast-2)上创建AMI。
确保将帐户A上的AMI权限设置为public
。然后你可以在帐户B上启动一个实例,然后根据该实例创建和AMI(ap-southeast-2)
然后在帐户B上,您可以运行脚本将AMI从ap-southeast-2复制到us-east-1
希望这有帮助。