我最近阅读了有关新的Instance Metadata Service - IMDSv2的信息,该信息在EC2环境中修复了SSRF攻击。 我了解直接在cli上直接使用EC2时的工作方式。 但是我找不到任何信息可以采取什么步骤在弹性beantalk中使用它来代表我处理EC2实例创建以及如何在那里执行它。
有人可以告诉我这是否已经或将来可能吗? 我找不到有关的信息。
谢谢。
答案 0 :(得分:1)
您可以将Lambda函数配置为在Auto Scaling组中的https://medium.com/@dahlberg.bob/what-i-learned-from-lint-today-57c46b5f3225有新实例时被触发
使用启动模板而不是启动配置使您可以灵活地在CloudFormation中设置此参数,但是目前尚无明确记录的方式。
答案 1 :(得分:0)
首先,AWS提供了一个新的Cloudwatch指标,该指标可查看正在进行的IMDS v1调用的数量。您可以使用它来监视在实例上进行IMDS v1调用的频率。您可以进行设置以监视您的Elastic Beanstalk实例。
接下来,我们需要在实例上启用IMDS v2。为此,我们需要最新版本的AWS CLI(aws-cli / 1.16.287 Python / 3.6.8)。已发布适用于AWS CLI的更新,其中包含在EC2下启用/禁用IMDSv2的选项。
进行迁移时,Elastic Beanstalk可让您配置所使用的实例。
您可以按照Customizing software on Linux servers中提供的步骤进行操作,然后
确保存在最新版本的AWS CLI。
设置完成后,您可以运行
aws ec2 Modify-instance-metadata-options --instance-id --profile-启用http端点-需要http令牌
如Modify Instance Metadata Options
中所述您还可以指定Customizing software on Linux servers中包含的要在弹性Beanstalk中实例启动时运行的命令
卷曲http://169.254.169.254/latest/meta-data/instance-id | \
xargs -I {} aws ec2 Modify-instance-metadata-options --instance-id {} --profile-启用了HTTP端点-需要http令牌
这应在启动时为相应实例配置IMDSv2。
参考文献:
除上述内容外,您还可以使用IAM条件来强制IAM用户无法启动实例(除非它使用IMDSv2),还可以强制IAM用户无法重新启用IMDSv1。 (详细信息请参见参考资料1)