Amazon web services 由于有关EC2 BillingProduct代码的神秘错误,无法复制图像
我正试图复制EC2映像以对其进行加密 我发布的命令行是:Amazon web services 由于有关EC2 BillingProduct代码的神秘错误,无法复制图像,amazon-web-services,packer,Amazon Web Services,Packer,我正试图复制EC2映像以对其进行加密 我发布的命令行是: $ aws ec2 copy-image --name encrypted-kafka-201707121432 \ --source-region ap-southeast-2 --encrypted --source-image-id ami-2a617249 \ --region ap-southeast-2 这将导致发出以下错误: An error occurred (InvalidRequest) when call
$ aws ec2 copy-image --name encrypted-kafka-201707121432 \
--source-region ap-southeast-2 --encrypted --source-image-id ami-2a617249 \
--region ap-southeast-2
这将导致发出以下错误:
An error occurred (InvalidRequest) when calling the CopyImage operation:
Images with EC2 BillingProduct codes cannot be copied to another AWS account.
我环顾四周,了解到此错误通常在复制Windows AMI(例如)时出现,它与SO()上的此问题类似
但是,此映像不是来自市场,也不是Windows AMI,并且其中没有任何产品代码:
$ aws ec2 describe-images --image-ids ami-2a617249 --region ap-southeast-2 \
--query '.Images[].ProductCodes'
[]
将此项与另一项进行比较:
$ aws ec2 describe-images --image-ids ami-00280263 --region ap-southeast-2 \
--query '.Images[].ProductCodes'
[
{
"ProductCodeType": "marketplace",
"ProductCodeId": "dsli9z1o9amfv5g2hsmdj1pph"
}
]
图像是使用Packer烘焙的
我没有主意了。为什么会发生这种情况?是我做错了什么,还是这种没有记录的行为?事实证明,这种AMI的后代确实来自亚马逊市场 烘焙管道的简化版本为: 账户A: 市场AMI(AMI-xxxxxxxx)->打包机构建(AMI-YYYYYY)->共享到帐户B 账户B: 我随后发表:
aws ec2 copy-image --encrypted --source-image ami-yyyyyyyy
并收到:
An error occurred (InvalidRequest) when calling the CopyImage operation:
Images with EC2 BillingProduct codes cannot be copied to another AWS account.
从帐户B,我可以检查所有者,即与我共享该帐户的帐户:
$ aws ec2 describe-images --image-id ami-yyyyyyyy --region ap-southeast-2 \
> --query 'Images[0].OwnerId'
这返回帐户A的16位帐户ID
在这一点上,了解使用Packer烘焙AMI会导致产品代码明显丢失是很有帮助的。但是,这些产品代码仍然存在,Amazon支持人员可以看到它们。需要致电亚马逊支持部门确认此部分
为了解决这个问题,我现在用Python或Bash(AWS CLI)维护一个可以使用的脚本。该实例是从Marketplace实例的AMI生成的,还是以任何方式与Marketplace实例关联?另请看,就我所知,也就是说,除非我被误导,否则不会。我想要排除这一点,我需要自己做所有的上游AMI烘焙,或者有没有办法进行测试?结果证明答案是“是”。下面是完整的解释。因此,您可以共享图像,将其旋转,并从运行的实例创建副本,而不仅仅是制作图像的副本。