我可以将元数据与AWS Marketplace AMI相关联吗?

时间:2016-10-24 07:20:53

标签: amazon-web-services metadata ami

我对AWS Marketplace AMI有三个问题:

  1. 我可以将元数据与我在AWS Marketplace中提供的AMI相关联吗?
  2. 我可以从该AMI创建的实例中读取此元数据吗?
  3. 我可以确保此元数据不会被伪造吗?例如。我可以用私钥签名。
  4. 为什么?我想确保人们无法在我的AMI中复制软件并在我的AMI之外使用它。我想如果我的软件可以查询有关当前实例的AMI的元数据,并且元数据包含将AMI绑定给我的不可信息的信息,那么这是不可能的。

1 个答案:

答案 0 :(得分:1)

每个EC2实例都有Instance Identity Document,提供有关实例的信息,包括其实例ID,展示位置等。此文档由AWS签名,以便您可以使用公钥对其进行验证。

它包含AMI ID,甚至似乎提供了您的product id,但文档中不清楚"billingProducts"是否引用了这个或其他内容。

由于各种原因,这并非完全万无一失,包括您必须在代码中嵌入公钥以验证签名,如果我有您的代码副本 - - 并且我已经充分确定了 - 然后我可以使用我自己的密钥覆盖该部分,然后伪造身份证明文件......但是当你允许我访问你的代码副本时,你总是会冒同样的风险。这不是AWS提供的固有限制,而是一个问题,即我的服务器上运行的任何东西都不能完全免除我的篡改......但这似乎足以让诚实的人保持诚实,我会建议除此之外什么都不可能。

如果您一般熟悉EC2实例元数据,则无疑会识别http://169.254.169.254/。如果不是:这是一个特殊的(链接本地)地址,它为EC2元数据服务提供端点。它是一个奇怪的地址,但每个EC2实例在访问该端点时都会看到自己的视图。 IP地址不会在实例,可用区,区域,帐户等之间发生变化,服务由EC2基础架构提供,而不是由实例本身上运行的任何内容提供。

实例所有者is not billed for http requests to this endpoint因此您的代码可以经常检查它,看起来是合理的。

相关问题