我已经从AWS账户向另一个账户分享了一堆AMI。
我用EC2conn1.modify_image_attribute(AMI_id, operation='add', attribute='launchPermission', user_ids=[second_aws_account_id])
来做这件事。
但是,通过仅添加第二个帐户的启动权限,我可以启动一个实例,但我无法将共享的AMI复制到另一个地区[在第二个帐户]。
当我从第一个帐户的用户界面勾选“创建卷”复选框时,我可以从第二个帐户复制共享的AMI:
我可以使用boto中的modify_image_attribute
功能修改启动权限。
在文档中说attribute (string) – The attribute you wish to change
但我知道它只能更改启动权限并添加帐户。
然而,get_image_attribute
有3个选项Valid choices are: * launchPermission * productCodes * blockDeviceMapping
。
那么,有没有办法以编程方式从API和启动权限中更改它,或者它还没有实现?
答案 0 :(得分:1)
控制台使用API,因此在控制台中几乎无法使用API。
请记住,AMI只是一个配置实体 - 基本启动配置,链接到(不包含)一个或多个支持快照,这些技术是独立的实体。
当控制台提供可选的“向以下关联快照添加创建卷权限”时,控制台几乎肯定会向ModifySnapshotAttribute API发出额外的API请求。
另见http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html
据推测,将快照复制到另一个区域依赖于相同的“创建卷”权限(实际上,您会看到复制的快照具有虚假的源卷ID,可能是复制过程的工件)。
答案 1 :(得分:0)
根据接受的答案,这是我为感兴趣的人写的代码。
request.logout()