通过AWS API或CLI修改AMI属性[create volume]

时间:2016-11-23 11:56:42

标签: amazon-web-services amazon-ec2

我已经从AWS账户向另一个账户分享了一堆AMI。

我用EC2conn1.modify_image_attribute(AMI_id, operation='add', attribute='launchPermission', user_ids=[second_aws_account_id])来做这件事。

但是,通过仅添加第二个帐户的启动权限,我可以启动一个实例,但我无法将共享的AMI复制到另一个地区[在第二个帐户]。

当我从第一个帐户的用户界面勾选“创建卷”复选框时,我可以从第二个帐户复制共享的AMI:

1st account AMI permissions

我可以使用boto中的modify_image_attribute功能修改启动权限。

在文档中说attribute (string) – The attribute you wish to change但我知道它只能更改启动权限并添加帐户。

然而,get_image_attribute有3个选项Valid choices are: * launchPermission * productCodes * blockDeviceMapping

那么,有没有办法以编程方式从API和启动权限中更改它,或者它还没有实现?

2 个答案:

答案 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()