Configurar as opções de metadados da instância - Amazon Elastic Compute Cloud

Configurar as opções de metadados da instância

As opções de metadados de instância permitem configurar instâncias novas ou existentes para fazer o seguinte:

  • Exigir o uso do IMDSv2 ao solicitar metadados de instância

  • Especificar o limite de salto de resposta PUT

  • Desativar o acesso aos metadados da instância

Também é possível usar chaves de condição do IAM em uma política do IAM ou SCP para fazer o seguinte:

  • Permitir que uma instância seja executada somente se ela estiver configurada para exigir o uso do IMDSv2

  • Restringir o número de saltos permitidos

  • Desativar o acesso aos metadados da instância

nota

Proceda com cautela e conduza testes cuidadosos antes de fazer qualquer alteração. Anote o seguinte:

  • Se você exigir o uso do IMDSv2, as aplicações ou agentes que usam o IMDSv1 para acesso aos metadados da instância falharão.

  • Se você desativar todo o acesso aos metadados da instância, as aplicações ou agentes que contam com o acesso aos metadados da instância para funcionarem falharão.

  • Para IMDSv2, você deve usar /latest/api/token ao recuperar o token.

Configurar opções de metadados da instância para novas instâncias

É possível exigir o uso do IMDSv2 em uma instância ao executá-la. Você também pode criar uma política do IAM que impeça que os usuários executem novas instâncias, a menos que exijam o IMDSv2 na nova instância.

Console

Como exigir o uso do IMDSv2 em uma nova instância

  • Ao executar uma nova instância no console do Amazon EC2, selecione as seguintes opções na página Configure Instance Details (Configurar detalhes da instância):

    • Em Advanced Details (Detalhes avançados), em Metadata accessible (Metadados acessíveis), selecione Enabled (Habilitado).

    • Em Metadata version (Versão de metadados), selecione V2 (token required) V2 (token obrigatório).

Para mais informações, consulte Etapa 3: configurar detalhes da instância.

AWS CLI

Para exigir o uso do IMDSv2 na sub-rede de uma nova instância

O exemplo de run-instances a seguir executa uma instância c3.large com --metadata-options definido como HttpTokens=required. Quando você especifica um valor para HttpTokens, você também deve definir HttpEndpoint como enabled. Como o cabeçalho de token seguro é definido como required para solicitações de recuperação de metadados, ele opta por exigir o uso do IMDSv2 na instância ao solicitar metadados de instância.

aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type c3.large ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required"
AWS CloudFormation

Para especificar as opções de metadados de uma instância usando AWS CloudFormation, consulte a propriedade AWS::EC2::LaunchTemplate MetadataOptions no Guia do usuário do AWS CloudFormation.

Como exigir o uso do IMDSv2 em todas as novas instâncias

Para garantir que os usuários do IAM podem executar apenas instâncias que usam o IMDSv2 ao solicitar metadados da instância, você pode 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 esse endpoint na inicialização da instância. O endpoint IPv6 para IMDS só pode ser acessado em Instâncias criadas no Sistema Nitro. Para obter mais informações sobre opções de metadados, consulte run-instances na Referência de comandos da AWS CLI. O exemplo a seguir mostra como habilitar endpoints IPv6 para IMDS:

aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type t3.large ... --metadata-options "HttpEndpoint=enabled,HttpProtocolIpv6=enabled"
Console

Como desabilitar o acesso aos metadados da instância

  • Para garantir que o acesso aos metadados da instância esteja desativado, independentemente da versão do serviço de metadados da instância que você esteja usando, inicie a instância no console do Amazon EC2 com a seguinte opção selecionada na página Configure Instance Details (Configurar os detalhes da instância):

    • Em Advanced Details (Detalhes avançados), em Metadata accessible (Metadados acessíveis), selecione Disabled (Desabilitado).

Para mais informações, consulte Etapa 3: configurar detalhes da instância.

AWS CLI

Como desabilitar o acesso aos metadados da instância

Para garantir que o acesso aos metadados da instância esteja desativado, independentemente da versão do serviço de metadados da instância que você esteja usando, inicie a instância com --metadata-options definido como HttpEndpoint=disabled. Você pode habilitar o acesso posteriormente usando o comando modify-instance-metadata-options.

aws ec2 run-instances --image-id ami-0abcdef1234567890 --instance-type c3.large ... --metadata-options "HttpEndpoint=disabled"
AWS CloudFormation

Para especificar as opções de metadados de uma instância usando AWS CloudFormation, consulte a propriedade AWS::EC2::LaunchTemplate MetadataOptions no Guia do usuário do AWS CloudFormation.

Modificar as opções de metadados de instância para as instâncias existentes

É possível exigir o uso do IMDSv2 em uma instância existente Você também pode alterar o limite de saltos de resposta PUT e desativar o acesso aos metadados em uma instância existente. Também é possível criar uma política do IAM que impeça que os usuários modifiquem as opções de metadados em uma instância existente.

Atualmente apenas o AWS SDK ou AWS CLI oferece suporte para modificar as opções de metadados da instância nas instâncias existentes. Você não pode usar o console Amazon EC2 para modificar as opções de metadados da instância.

Como exigir o uso de IMDSv2

É possível optar por exigir que o IMDSv2 seja usado ao solicitar metadados de instância. Use o comando modify-instance-metadata-options da CLI e defina o parâmetro http-tokens como required. Quando você especifica um valor para http-tokens, você também deve definir http-endpoint como enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-tokens required \ --http-endpoint enabled

Como 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. Use o comando modify-instance-metadata-options da CLI e defina o parâmetro http-put-response-hop-limit como o número de saltos necessário. No exemplo a seguir, o limite de saltos está definido como 3. Observe que ao especificar um valor para http-put-response-hop-limit, também é necessário definir http-endpoint como enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-put-response-hop-limit 3 \ --http-endpoint enabled

Como restaurar o uso de IMDSv1 em uma instância usando IMDSv2

Você pode usar o comando da CLI modify-instance-metadata-options com http-tokens definido como optional para restaurar o uso de IMDSv1 ao solicitar metadados de instância.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-tokens optional \ --http-endpoint enabled

Para ativar o endpoint IPv6 para sua instância

Por padrão, o endpoint IPv6 está desabilitado. Isso é verdade mesmo se você tiver iniciado uma instância em uma sub-rede somente IPv6. O endpoint IPv6 para IMDS só pode ser acessado em Instâncias criadas no Sistema Nitro. Para obter mais informações, consulte modify-instance-metadata-options na Referência de comandos da AWS CLI. O exemplo a seguir mostra como ativar o endpoint IPv6 para serviço de metadados da instância.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-protocol-ipv6 enabled \ --http-endpoint enabled

Como desabilitar o acesso aos metadados da instância

É possível desativar o acesso aos metadados da instância desabilitando o HTTP endpoint do serviço de metadados de instância, independentemente de qual versão do serviço de metadados de instância você está usando. É possível reverte essa alteração a qualquer momento habilitando o HTTP endpoint. Use o comando modify-instance-metadata-options da CLI e defina o parâmetro http-endpoint como disabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567898abcdef0 \ --http-endpoint disabled

Como controlar o uso de modify-instance-metadata-options

Para controlar quais usuários do IAM podem modificar as opções de metadados em uma instância existente, especifique uma política que impeça que todos os usuários que não tenham uma função especificada usem a API ModifyInstanceMetadataOptions. Para ver um exemplo de política do IAM, consulte Trabalhar com metadados de instância.