Modificar as opções de metadados de instância para as instâncias existentes
É possível modificar as opções de metadados da instância para instâncias existentes.
Também é possível criar uma política do IAM que impeça que os usuários modifiquem as opções de metadados em instâncias existentes. Para controlar quais usuários podem modificar as opções de metadados em uma instância, especifique uma política que impeça que todos os usuários que não tenham um perfil especificado usem a API ModifyInstanceMetadataOptions. Para ver um exemplo de política do IAM, consulte Trabalhar com metadados de instância.
nota
Se uma política declarativa foi usada para configurar as opções de metadados da instância, você não poderá modificá-las diretamente na conta. Para obter mais informações, consulte Políticas declarativas no Guia do usuário do AWS Organizations.
Exigir o uso de IMDSv2
Use um dos seguintes métodos para modificar as opções de metadados da instância para exigir que o IMDSv2 seja usado ao solicitar metadados da instância. Quando o IMDSv2 for necessário, o IMDSv1 não poderá ser usado.
nota
Antes de exigir que o IMDSv2 seja usado, certifique-se de que a instância não esteja fazendo chamadas do IMDSv1. A métrica MetadataNoToken do CloudWatch rastreia as chamadas do IMDSv1. Quando MetadataNoToken registra zero uso do IMDSv1 para uma instância, a instância está pronta para exigir o IMDSv2.
Restaurar o uso do IMDSv1
Quando o IMDSv2 é necessário em uma instância, o uso de uma solicitação do IMDSv1 falhará. Quando o IMDSv2 for opcional, tanto o IMDSv2 quanto o IMDSv1 funcionarão. Portanto, para restaurar o IMDSv1, defina o IMDSv2 opcional (httpTokens = optional) usando um dos métodos a seguir.
A propriedade httpTokensEnforced do IMDS também impede tentativas de habilitar o IMDSv1 em uma instância existente. Quando habilitada para uma conta em uma região, uma tentativa de definir httpTokens como optional resultará em uma exceção UnsupportedOperation. Para obter mais informações, consulte Solução de problemas.
Importante
Se as execuções de sua instância falharem devido à imposição do IMDSv2, você tem duas opções para permitir que as execuções sejam bem-sucedidas:
-
Inicie instâncias somente como IMDSv2: se o software executado nas instâncias usar somente o IMDSv2 (sem depender do IMDSv1), você poderá iniciar as instâncias somente como IMDSv2. Para fazer isso, configure o IMDSv2 apenas quando definido como
httpTokens = requirednos parâmetros de inicialização ou nos metadados padrão da conta na região. -
Desabilitar a imposição: se seu software ainda depender do IMDSv1, defina
httpTokensEnforcedcomodisabledpara a conta na região. Para obter mais informações, consulte Aplique o IMDSv2 no nível da conta.
Alterar o limite de salto de resposta PUT
Para instâncias existentes, é possível alterar as configurações do limite de saltos de resposta de PUT.
Atualmente, somente os SDKs AWS CLI e AWS oferecem suporte à alteração do limite de salto de resposta PUT.
Habilitar os endpoints IPv4 e IPv6 do IMDS
O IMDS tem dois endpoints em uma instância: IPv4 (169.254.169.254) e IPv6 ([fd00:ec2::254]). Quando você habilita o IMDS, o endpoint IPv4 é habilitado automaticamente. O endpoint IPv6 permanece desabilitado mesmo que você inicie uma instância em uma sub-rede IPv6 apenas. Para habilitar o endpoint IPv6, você precisa fazer isso explicitamente. Quando você habilita o endpoint IPv6, o endpoint IPv4 permanece habilitado.
É possível habilitar o endpoint iPv6 ao iniciar a instância ou posteriormente.
Requisitos para habilitação do endpoint iPv6
-
O tipo de instância selecionado é uma instância baseada em Nitro.
-
A sub-rede selecionada é compatível com IPv6, no qual a sub-rede é de pilha dupla ou IPv6 apenas.
Atualmente, apenas a AWS CLI e os SDKs da AWS são compatíveis com a habilitação do endpoint IPv6 do IMDS após a inicialização da instância.
Ativar o acesso aos metadados da instância
É possível ativar o acesso aos metadados da instância habilitando o endpoint de HTTP do IMDS na sua instância, independentemente da versão do IMDS que esteja sendo usada. É possível reverter essa alteração a qualquer momento desabilitando o endpoint de HTTP.
Use um dos métodos a seguir para ativar o acesso aos metadados da instância em uma instância.
Desativar o acesso aos metadados da instância
É possível desativar o acesso aos metadados da instância desabilitando o endpoint de HTTP do IMDS na sua instância, independentemente da versão do IMDS que esteja sendo usada. É possível reverte essa alteração a qualquer momento habilitando o HTTP endpoint.
Use um dos métodos a seguir para desativar o acesso aos metadados da instância em uma instância.
Permitir acesso a tags em metadados de instância
É possível permitir o acesso a tags em metadados de instância em uma instância em execução ou parada. Para cada instância, permita o acesso explicitamente. Se o acesso for permitido, as chaves de tag da instância devem estar em conformidade com restrições de caracteres específicas, caso contrário, você receberá um erro. Para obter mais informações, consulte Habilitar o acesso a tags em metadados da instância.
Solução de problemas
Falha na modificação de uma instância habilitada para IMDSv1
Descrição
Você recebeu a seguinte mensagem de erro:
You can't launch instances with IMDSv1 because httpTokensEnforced is
enabled for this account. Either launch the instance with httpTokens=required or
contact your account owner to disable httpTokensEnforced using the
ModifyInstanceMetadataDefaults API or the account settings in the EC2
console.
Causa
Esse erro é gerado quando você tenta modificar uma instância existente para habilitar o IMDSv1 (httpTokens = optional) em uma conta onde as configurações da conta do EC2 ou uma política declarativa da organização da AWS impõem o uso de IMDSv2 (httpTokensEnforced = enabled).
Solução
Se você precisar do suporte do IMDSv1 em instâncias existentes, precisará desabilitar a aplicação do IMDSv2 para a conta na região. Para desabilitar a aplicação do IMDSv2, defina HttpTokensEnforced como disabled. Para obter mais informações, consulte ModifyInstanceMetadataDefaults na Referência a APIs do Amazon EC2. Se você preferir definir essa configuração usando o console, consulte Aplique o IMDSv2 no nível da conta.
Recomendamos usar somente o IMDSv2 (httpTokens=required). Para obter mais informações, consulte Transição para usar o Serviço de metadados da instância versão 2.