Начнем с того, что AWS предоставил доступ к новой метрике Cloudwatch c, которая обеспечивает отображение количества выполняемых вызовов IMDS v1. Вы можете использовать это, чтобы отслеживать, как часто в экземпляре выполняются вызовы IMDS v1. Вы можете настроить это для мониторинга ваших экземпляров Elasti c Beanstalk. Далее нам нужно включить IMDS v2 на экземплярах. Для этого нам нужна последняя версия AWS CLI (aws -cli / 1.16.287 Python / 3.6.8). Вышло обновление для AWS CLI с возможностью включить / отключить IMDSv2 под EC2. Переходя к миграции, Elasti c Beanstalk позволяет настраивать используемые экземпляры. Вы можете выполнить шаги, описанные в Настройка программного обеспечения на Linux серверах , и убедиться, что установлена последняя версия AWS CLI. После установки вы можете запустить
aws ec2 modify-instance-metadata-options --instance-id --profile --http-endpoint enabled - требуются http-токены
, как описано в Изменить параметры метаданных экземпляра
Вы также можете указать команды для запуска при запуске экземпляра в Elasti c Beanstalk, как указано в Настройка программного обеспечения на Linux серверах для включения
curl http://169.254.169.254/latest/meta-data/instance-id | \ xargs -I {} aws ec2 modify-instance-metadata-options --instance-id {} --profile --http-endpoint enabled - требуются http-токены
Это должно позаботиться о настройке IMDSv2 при запуске для соответствующего экземпляра.
Ссылки:
- Настройка службы метаданных экземпляра
AWS Блог безопасности
В дополнение к вышесказанному вы можете использовать условия IAM для обеспечения того, чтобы пользователи IAM не могли запускать экземпляры, если он не использует IMDSv2, а также для того, чтобы пользователи IAM не могли повторно включить IMDSv1. (Подробности приведены в ссылке 1)