【问题标题】:Can I associate metadata with an AWS Marketplace AMI?我可以将元数据与 AWS Marketplace AMI 相关联吗?
【发布时间】:2016-10-24 19:35:21
【问题描述】:

我有关于 AWS Marketplace AMI 的三个问题:

  1. 我能否将元数据与我在 AWS Marketplace 中提供的 AMI 相关联?
  2. 我可以从该 AMI 创建的实例中读取此元数据吗?
  3. 我能否确保此元数据不会被篡改?例如。我可以用私钥对其内容进行签名。

为什么?我想确保人们不能复制我的 AMI 中的软件并在我的 AMI 之外使用它。我认为,如果我的软件可以查询有关当前实例的 AMI 的元数据,并且该元数据包含将 AMI 与我联系在一起的不可伪造信息,那么这是不可能的。

【问题讨论】:

    标签: amazon-web-services metadata amazon-ami


    【解决方案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,因此您的代码可以在合理的情况下经常检查它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 2014-06-21
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      相关资源
      最近更新 更多