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

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

O serviço de metadados de instância (IMDS) é executado localmente em cada instância do EC2. As opções de metadados de instância se referem a um conjunto de configurações que controlam a acessibilidade e o comportamento do IMDS em uma instância do EC2.

Você pode configurar as seguintes opções de metadados da instância em cada instância:

Serviço de metadados de instância (IMDS): enabled | disabled

É possível habilitar ou desabilitar o IMDS em uma instância. Quando desabilitado, os metadados da instância não poderão ser acessados por você ou por nenhum outro código.

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. Se quiser habilitar o endpoint IPv6, você precisará fazer isso explicitamente.

Endpoint IPv6 do IMDS: enabled | disabled

Você pode habilitar explicitamente o endpoint IPv6 do IMDS em uma instância. Quando o endpoint IPv6 estiver habilitado, o endpoint IPv4 permanecerá habilitado. O endpoint IPv6 só é compatível com instâncias baseadas no AWS Nitro System e em uma sub-rede compatível com IPv6 (pilha dupla ou IPv6 apenas).

Versão de metadados: IMDSv1 or IMDSv2 (token optional) | IMDSv2 only (token required)

Ao solicitar metadados de instância, as chamadas do IMDSv2 exigem um token. As chamadas do IMDSv1 não exigem um token. É possível configurar uma instância para permitir chamadas do IMDSv1 ou do IMDSv2 (quando um token for opcional) ou para permitir somente chamadas do IMDSv2 (quando um token for obrigatório).

Limite de salto de resposta de metadados: 164

O limite de saltos é o número de saltos de rede que a resposta PUT pode fazer. Você pode definir o limite de saltos para um mínimo de 1 e um máximo de 64. Em um ambiente de contêiner, recomendamos definir o limite de saltos como 2. Para ter mais informações, consulte Considerações.

Acesso a tags nos metadados da instância: enabled | disabled

É possível habilitar ou desabilitar o acesso às tags de uma instância nos metadados de uma instância. Para ter mais informações, consulte Trabalho com tags de instância em metadados de instância.

Onde configurar as opções de metadados da instância

É possível configurar as opções de metadados da instância em diferentes níveis, da seguinte forma:

  • Conta: você pode definir valores padrão para as opções de metadados da instância por conta para cada Região da AWS. Quando uma instância for executada, as opções de metadados da instância serão definidas automaticamente para os valores na conta. Você pode alterar esses valores na execução. Os valores padrão por conta não afetam as instâncias existentes.

  • AMI: ao registrar ou modificar uma AMI, é possível definir o parâmetro imds-support como v2.0. Quando uma instância for executada com essa AMI, a versão dos metadados da instância será definida automaticamente como IMDSv2 e o limite de saltos será definido como 2.

  • Instância: você pode alterar todas as opções de metadados de uma instância na execução, substituindo as configurações padrão. Também é possível alterar as opções de metadados da instância após a execução em uma instância em execução ou parada. Observe que as alterações poderão sofrer restrições de uma política do IAM ou SCP.

Para obter mais informações, consulte Configurar opções de metadados da instância para novas instâncias e Modificar as opções de metadados de instância para as instâncias existentes.

Ordem de precedência das opções de metadados da instância

O valor de cada opção de metadados da instância é determinado na inicialização da instância, seguindo uma ordem hierárquica de precedência. A hierarquia, com a maior precedência no topo, é a seguinte:

  • Precedência 1: configuração da instância na execução: é possível especificar os valores no modelo de execução ou na configuração da instância. Todos os valores especificados aqui substituirão os valores especificados por conta ou na AMI.

  • Precedência 2: configurações da conta: se não houver um valor especificado na inicialização da instância, ele será determinado pelas configurações por conta (que são definidas para cada Região da AWS). As configurações por conta incluem um valor para cada opção de metadados ou não indicam nenhuma preferência.

  • Precedência 3: configuração da AMI: se não houver um valor especificado na execução da instância ou por conta, ele será determinado pela configuração da AMI. Isso se aplica somente a HttpTokens e HttpPutResponseHopLimit.

Cada opção de metadados é avaliada separadamente. É possível configurar a instância com uma combinação de configuração direta da instância, padrões por conta e a configuração da AMI.

A menos que as alterações sejam restringidas por uma política do IAM ou SCP, você poderá alterar o valor de qualquer opção de metadados após a execução em uma instância em execução ou parada.

Determinar valores para opções de metadados: exemplo 1

Neste exemplo, uma instância do EC2 é iniciada em uma região na qual HttpPutResponseHopLimit está definido como 1 para a conta. A AMI especificada tem ImdsSupport definido como v2.0. Nenhuma opção de metadados é especificada diretamente na instância na execução. A instância é executada com as seguintes opções de metadados:

"MetadataOptions": { ... "HttpTokens": "required", "HttpPutResponseHopLimit": 1, ...

Esses valores foram determinados da seguinte manneira:

  • Nenhuma opção de metadados especificada na execução: durante a execução da instância, não se forneceu valores específicos para as opções de metadados nos parâmetros de execução da instância nem no modelo de execução.

  • As configurações da conta têm a próxima precedência: na ausência da definição de valores específicos na execução, as configurações por conta na região terão precedência. Isso significa que os valores padrão configurados por conta serão aplicados. Nesse caso, o HttpPutResponseHopLimit foi definido como 1.

  • As configurações da AMI têm a última precedência: na ausência de um valor específico definido na inicialização ou no nível da conta para HttpTokens (a versão de metadados da instância), a configuração da AMI é aplicada. Nesse caso, a configuração da AMI ImdsSupport: v2.0 determinou que HttpTokens estava definido como required. Observe que, embora a configuração da AMI ImdsSupport: v2.0 tenha sido projetada para definir HttpPutResponseHopLimit: 2, ela foi substituída pela configuração no nível da conta HttpPutResponseHopLimit: 1, que tem maior precedência.

Determinar valores para opções de metadados: exemplo 2

Neste exemplo, a instância do EC2 é executada com as mesmas configurações do Exemplo 1 anterior, mas com a configuração HttpTokens definida como optional diretamente na instância na execução. A instância é executada com as seguintes opções de metadados:

"MetadataOptions": { ... "HttpTokens": "optional", "HttpPutResponseHopLimit": 1, ...

O valor de HttpPutResponseHopLimit é determinado da mesma forma que no Exemplo 1. No entanto, o valor de HttpTokens é determinado da seguinte forma: as opções de metadados configuradas na instância na execução terão precedência. Embora a AMI tenha sido configurada com ImdsSupport: v2.0 (em outras palavras, HttpTokens esteja definido como required), o valor especificado na instância na execução (HttpTokens definido como optional) teve precedência.

Definir a versão de metadados da instância

Quando uma instância é executada, o valor da versão de metadados da instância é IMDSv1 or IMDSv2 (token optional) ou IMDSv2 only (token required).

Na execução da instância, é possível especificar manualmente o valor da versão de metadados ou usar o valor padrão. Se você especificar o valor manualmente, ele substituirá todos os padrões. Se você optar por não especificar o valor manualmente, ele será determinado por uma combinação de configurações padrão, conforme descrito na tabela a seguir.

A tabela mostra como a versão dos metadados de uma instância na execução (indicada pela Configuração resultante da instância na coluna 4) é determinada pelas configurações nos diferentes níveis de configuração. A ordem de precedência é da esquerda para a direita, com a primeira coluna tendo a maior precedência, da seguinte maneira:

  • Coluna 1: Parâmetro de inicialização: representa a configuração na instância que você especifica manualmente na execução.

  • Coluna 2: Padrão por conta: representa a configuração da conta.

  • Coluna 3: Padrão da AMI: representa a configuração na AMI.

Parâmetro de execução Padrão por conta Padrão da AMI Configuração resultante da instância
Somente V2 (requer token) Sem preferência Somente V2 Somente V2
Somente V2 (requer token) Somente V2 Somente V2 Somente V2
Somente V2 (requer token) V1 ou V2 Somente V2 Somente V2
V1 ou V2 (token opcional) Sem preferência Somente V2 V1 ou V2
V1 ou V2 (token opcional) Somente V2 Somente V2 V1 ou V2
V1 ou V2 (token opcional) V1 ou V2 Somente V2 V1 ou V2
Não definido Sem preferência Somente V2 Somente V2
Não definido Somente V2 Somente V2 Somente V2
Não definido V1 ou V2 Somente V2 V1 ou V2
Somente V2 (requer token) Sem preferência nulo Somente V2
Somente V2 (requer token) Somente V2 nulo Somente V2
Somente V2 (requer token) V1 ou V2 nulo Somente V2
V1 ou V2 (token opcional) Sem preferência nulo V1 ou V2
V1 ou V2 (token opcional) Somente V2 nulo V1 ou V2
V1 ou V2 (token opcional) V1 ou V2 nulo V1 ou V2
Não definido Sem preferência nulo V1 ou V2
Não definido Somente V2 nulo Somente V2
Não definido V1 ou V2 nulo V1 ou V2

Usar chaves de condição do IAM para restringir as opções de metadados da instância

É possível usar chaves de condição do IAM em uma política do IAM ou SCP da seguinte maneira:

  • 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, use /latest/api/token ao recuperar o token.