2016-10-24 6 views
0

У меня есть три вопроса, касающиеся AWS Marketplace Ами:Могу ли я связать метаданные с AMI Marketplace AMI?

  1. Могу ли я связать метаданные с ОИМ, которые я предлагаю в AWS Marketplace?
  2. Могу ли я прочитать эти метаданные из экземпляра, созданного из этого AMI?
  3. Могу ли я гарантировать, что эти метаданные не могут быть сфальсифицированы? Например. Я мог подписывать его содержимое с помощью закрытого ключа.

Почему? Я хочу, чтобы люди не могли копировать программное обеспечение в моем AMI и использовать его вне AMI. Я полагаю, что если мое программное обеспечение может запросить метаданные об AMI текущего экземпляра, и что метаданные содержат не подлежащую анализу информацию, связывающую AMI, то это было бы невозможно.

ответ

1

Каждый экземпляр EC2 имеет Instance Identity Document, который содержит информацию о экземпляре, включая его идентификатор экземпляра, место размещения и т. Д. Этот документ подписан AWS, чтобы вы могли проверить его с помощью открытого ключа.

Он включает в себя идентификатор AMI и даже, как представляется, предоставляет ваш product id, хотя из документации не ясно, относится ли это "billingProducts" к этому или к чему-то еще.

Это не совсем безупречно, по целому ряду причин, включая тот факт, что вам обязательно нужно встроить открытый ключ в свой код, чтобы проверить подпись, и если у меня есть копия вашего кода - и я достаточно определен, - тогда я мог бы перезаписать эту часть своим собственным ключом, а затем подделать документ идентификации ... но тогда, когда вы разрешаете мне доступ к копии вашего кода, вы всегда принимаете тот же риск. Это не является неотъемлемым ограничением в том, что предоставил AWS, а скорее проблемой, заключающейся в том, что ничто, что работает на моем сервере, невосприимчиво к моему подделке ... но кажется достаточным, чтобы честные честные люди были честными, и я бы предположил, что ничего сверх это возможно.

Если вы знакомы с метаданными экземпляра EC2 в целом, вы, несомненно, узнаете http://169.254.169.254/. Если нет: это специальный (локальный) адрес, который предоставляет конечную точку для службы метаданных EC2. Это странно выглядящий адрес, но каждый экземпляр EC2 видит свое собственное представление при доступе к этой конечной точке. IP-адрес не изменяется между экземплярами, зонами доступности, регионами, учетными записями и т. Д., А служба предоставляется инфраструктурой EC2, а не тем, что работает на самом экземпляре.

Владелец экземпляра is not billed for http requests to this endpoint, поэтому ваш код может проверять его так часто, как кажется разумным.

Смежные вопросы