
Automatiza a migração de workloads da AWS do IMDSv1 para o IMDSv2 para mitigar ataques SSRF. Detecta o uso de IMDSv1 em EC2, ECS, EKS, Lightsail e outros, com atualizações de hop limit e recomendações de SCP.
As cargas de trabalho da AWS que dependem do endpoint de metadados são vulneráveis a ataques de Server-Side Request Forgery (SSRF). O IMDShift automatiza o processo de migração de todas as cargas de trabalho para o IMDSv2 com amplas capacidades, que implementa medidas de segurança aprimoradas para proteger contra esses ataques.

MetadataNoToken nas regiões especificadasMetabadger é uma ferramenta mais antiga usada para facilitar a migração de cargas de trabalho EC2 da AWS para o IMDSv2.
O IMDShift traz várias melhorias em relação às capacidades do 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 Esta flag especifica os serviços a serem
verificados quanto ao uso do IMDSv1 em [EC2,
Sagemaker, ASG (Auto Scaling Groups), Lightsail,
ECS, EKS, Beanstalk].
Formato: "--services EC2,Sagemaker,ASG"
--include-regions TEXT Esta flag especifica explicitamente as regiões a
serem incluídas na verificação do uso do IMDSv1.
Formato: "--
include-regions ap-south-1,ap-southeast-1"
--exclude-regions TEXT Esta flag especifica explicitamente as regiões a
serem excluídas da verificação. Formato: "--exclude-regions ap-
south-1,ap-southeast-1"
--migrate Esta flag booleana permite que o IMDShift realize
a migração; o padrão é "False". Formato: "--
migrate"
--update-hop-limit INTEGER Esta flag especifica se o limite de saltos deve
ser atualizado e com qual valor. Recomenda-se
definir o limite de saltos como "2" para permitir
que contêineres funcionem com o endpoint IMDS.
Se esta flag não for passada, o limite de saltos
não é atualizado durante a migração. Formato: "--update-hop-
limit 3"
--enable-imds Esta flag booleana permite que o IMDShift ative o
endpoint de metadados para recursos que o têm
desabilitado e depois realize a migração;
o padrão é "False". Formato: "--enable-imds"
--profile TEXT Isso permite usar qualquer perfil do seu arquivo
~/.aws/credentials. Formato: "--profile
prod-env"
--role-arn TEXT Esta flag permite assumir um papel via aws sts.
Formato: "--role-arn
arn:aws:sts::111111111:role/John"
--print-scps Esta flag booleana imprime Políticas de Controle
de Serviço (SCPs) que podem ser usadas para
controlar o uso do IMDS, como negar acesso para
credenciais obtidas do IMDSv2 ou negar a criação
de recursos com IMDSv1; o padrão é "False".
Formato: "--print-scps"
--check-imds-usage Esta flag booleana inicia uma verificação para
identificar quantas instâncias estão usando
IMDSv1 nas regiões especificadas, nos últimos 30
dias, usando a métrica "MetadataNoToken" do
CloudWatch; o padrão é "False".
Formato: "--check-imds-usage"
--help Mostra esta mensagem e sai.