
AWSワークロードのIMDSv1からIMDSv2への移行を自動化し、SSRF攻撃を軽減します。EC2、ECS、EKS、LightsailなどでのIMDSv1の使用を検出し、ホップ制限の更新やSCPの推奨事項を提供します。
AWSのメタデータエンドポイントに依存するワークロードは、Server-Side Request Forgery (SSRF) 攻撃に対して脆弱です。IMDShiftは、すべてのワークロードをIMDSv2に移行するプロセスを自動化し、これらの攻撃から保護するための拡張セキュリティ対策を実装します。

MetadataNoToken CloudWatchメトリクスを使用してIMDSv1を使用しているリソースの特定Metabadger は、AWS EC2ワークロードのIMDSv2への移行を容易にするために使用されていた古いツールです。
IMDShiftは、Metabadgerの機能に対していくつかの改善を行っています:
git clone https://github.com/ayushpriya10/imdshift.git
cd imdshift/
python3 -m pip install .
git clone https://github.com/ayushpriya10/imdshift.git
cd imdshift/
python3 -m pip install -e .
Options:
--services TEXT このフラグは、IMDSv1使用状況をスキャンするサービスを指定します [EC2, Sagemaker, ASG (Auto Scaling
Groups), Lightsail, ECS, EKS, Beanstalk]。
書式: "--services EC2,Sagemaker,ASG"
--include-regions TEXT このフラグは、IMDSv1使用状況のスキャンに含めるリージョンを明示的に指定します。書式: "--
include-regions ap-south-1,ap-southeast-1"
--exclude-regions TEXT このフラグは、スキャンから除外するリージョンを明示的に指定します。書式: "--exclude-regions ap-
south-1,ap-southeast-1"
--migrate このブールフラグは、IMDShiftが移行を実行できるようにします。デフォルトは "False"。書式: "--
migrate"
--update-hop-limit INTEGER このフラグは、ホップリミットを更新するかどうかとその値を指定します。コンテナがIMDSエンドポイントと連携できるようにするには、ホップリミットを "2" に設定することを推奨します。このフラグが指定されない場合、移行中にホップリミットは更新されません。書式: "--update-hop-
limit 3"
--enable-imds このブールフラグは、IMDShiftがメタデータエンドポイントが無効になっているリソースに対してそれを有効にし、その後移行を実行できるようにします。デフォルトは "False"。書式: "--enable-imds"
--profile TEXT これにより、~/.aws/credentials ファイルの任意のプロファイルを使用できます。書式: "--profile
prod-env"
--role-arn TEXT このフラグは、aws sts を介してロールを引き受けることを可能にします。書式: "--role-arn
arn:aws:sts::111111111:role/John"
--print-scps このブールフラグは、IMDSの使用を制御するために使用できるService Control Policies (SCP) を出力します。例えば、IMDSv2から取得した認証情報へのアクセスを拒否したり、IMDSv1でのリソース作成を拒否したりします。デフォルトは "False"。書式: "--print-
scps"
--check-imds-usage このブールフラグは、指定されたリージョンにおいて、過去30日間にIMDSv1を使用しているインスタンスの数を特定するスキャンを起動します。"MetadataNoToken" CloudWatchメトリクスを使用します。デフォルトは
"False"。書式: "--check-imds-usage"
--help このメッセージを表示して終了します。