如何在弹性beantalk环境中使用IMDSv2?

时间:2020-01-26 08:45:21

标签: amazon-web-services security amazon-ec2 amazon-elastic-beanstalk

我最近阅读了有关新的Instance Metadata Service - IMDSv2的信息,该信息在EC2环境中修复了SSRF攻击。 我了解直接在cli上直接使用EC2时的工作方式。 但是我找不到任何信息可以采取什么步骤在弹性beantalk中使用它来代表我处理EC2实例创建以及如何在那里执行它。

有人可以告诉我这是否已经或将来可能吗? 我找不到有关的信息。

谢谢。

2 个答案:

答案 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。

参考文献:

  1. Configuring Instance Metadata Service
  2. AWS Security Blog

    除上述内容外,您还可以使用IAM条件来强制IAM用户无法启动实例(除非它使用IMDSv2),还可以强制IAM用户无法重新启用IMDSv1。 (详细信息请参见参考资料1)