Configurar opções de metadados da instância para novas instâncias
Tópicos
Exigir o uso de IMDSv2
Há várias maneiras de exigir que o IMDSv2 seja usado em uma instância na inicialização, como se segue:
Configurar a instância na inicialização
Quando você inicia uma instância, pode configurá-la para exigir o uso do IMDSv2, configurando os seguintes campos:
-
Console do Amazon EC2: defina Metadata version (Versão de metadados) como V2 only (token required) (Apenas V2 [token obrigatório]).
-
AWS CLI: defina
HttpTokens
comorequired
.
Quando você especificar que o IMDSv2 é obrigatório, também deverá habilitar o endpoint do serviço de metadados da instância definindo Metadata accessible (Metadados acessíveis) como Enabled (Habilitado) (console) ou HttpEndpoint
como enabled
(AWS CLI).
Configurar a AMI
Quando você registra a AMI, pode definir o parâmetro imds-support
como v2.0
. As instâncias iniciadas a partir dessa AMI terão Metadata version (Versão de metadados) definido como V2 only (token required) (Apenas V2 [token obrigatório]) (console) ou HttpTokens
definido como required
(AWS CLI). Com essas configurações, a instância exige que o IMDSv2 seja usado ao solicitar metadados da instância.
Observe que quando você configura imds-support
como v2.0
, as instâncias iniciadas a partir dessa AMI também têm Metadata response hop limit (Limite de saltos na resposta de metadados) (console) ou http-put-response-hop-limit
(AWS CLI) definido como 2.
Para configurar uma AMI para o IMDSv2
O exemplo de register-image a seguir registra uma AMI usando o snapshot especificado de um volume raiz do EBS como /dev/xvda
de dispositivo. Especifique v2.0
no parâmetro imds-support
de modo que a AMI seja configurada para especificar que as instâncias iniciadas a partir dela exijam o uso do IMDSv2.
aws ec2 register-image \ --name
my-image
\ --root-device-name /dev/xvda \ --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example
} \ --imds-support v2.0
Usar uma política do IAM
Também é possível criar uma política do IAM que impeça que os usuários do IAM iniciem novas instâncias, a menos que exijam o IMDSv2 na nova instância.
Para impor o uso do IMDSv2 em todas as novas instâncias usando uma política do IAM
Para garantir que os usuários do IAM podem executar apenas instâncias que usam o IMDSv2 ao solicitar metadados da instância, é possível especificar que a condição para exigir o IMDSv2 deve ser atendida para que uma instância possa ser executada. Para ver um exemplo de política do IAM, consulte Trabalhar com metadados de instância.
Configurar endpoints IPv4 e IPv6
Por padrão, o endpoint IPv6 está desabilitado. Isso é verdade mesmo se você estiver iniciando uma instância em uma sub-rede somente IPv6. Você pode escolher habilitar o endpoint iPv6 na inicialização da instância quando usar a AWS CLI. Essa opção só está disponível no console do Amazon EC2.
O endpoint IPv6 para o serviço de metadados da instância só é acessível em Instâncias criadas no Sistema Nitro.
Configurar endpoints IPv4 e IPv6
O exemplo de run-instances a seguir inicia uma instância t3.large
com o endpoint IPv6 habilitado para o serviço de metadados da instância. Para habilitar o endpoint IPv6, no parâmetro --metadata-options
, especifique HttpProtocolIpv6=enabled
. Quando você especifica um valor para HttpProtocolIpv6
, você também deve definir HttpEndpoint
como enabled
.
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --instance-typet3.large
\ ... --metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
Desativar o acesso aos metadados da instância
Você pode garantir que o acesso aos metadados da instância seja desativado, independentemente da versão do serviço de metadados da instância que você esteja usando. Você pode ativar o acesso posteriormente usando o comando modify-instance-metadata-options.