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.
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.
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.
- Console
-
Para exigir o uso do IMDSv2 em uma instância existente
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione sua instância.
-
Escolha Ações, Configurações da instância e Modificar opções de metadados da instância.
-
Na caixa de diálogo Modificar opções de metadados da instância, faça o seguinte:
-
Em Serviço de metadados de instância, selecione Habilitar.
-
Em IMDSv2, escolha Obrigatório.
-
Escolha Salvar.
- AWS CLI
-
Para exigir o uso do IMDSv2 em uma instância existente
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
, também deve definir http-endpoint
como enabled
.
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567898abcdef0
\
--http-tokens required \
--http-endpoint enabled
- PowerShell
-
Para exigir o uso do IMDSv2 em uma instância existente
Use o cmdlet Edit-EC2InstanceMetadataOption e defina o parâmetro HttpTokens
como required
. Quando você especifica um valor para HttpTokens
, também deve definir HttpEndpoint
como enabled
.
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpTokens required `
-HttpEndpoint enabled).InstanceMetadataOptions
Restaurar o uso do IMDSv1
Quando o IMDSv2 for necessário, o IMDSv1 não funcionará ao solicitar metadados de instância. Quando o IMDSv2 for opcional, tanto o IMDSv2 quanto o IMDSv1 funcionarão. Portanto, para restaurar o IMDSv1, torne o IMDSv2 opcional usando um dos métodos a seguir.
- Console
-
Para restaurar o uso do IMDSv1 em uma instância
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione sua instância.
-
Escolha Ações, Configurações da instância e Modificar opções de metadados da instância.
-
Na caixa de diálogo Modificar opções de metadados da instância, faça o seguinte:
-
Em Serviço de metadados de instância, certifique-se de que a opção Habilitar esteja selecionada.
-
Em IMDSv2, escolha Opcional.
-
Escolha Salvar.
- AWS CLI
-
Para restaurar o uso do IMDSv1 em uma instância
É possível 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
- PowerShell
-
Para restaurar o uso do IMDSv1 em uma instância
Você pode usar o cmdlet Edit-EC2InstanceMetadataOption com o HttpTokens
configurado como optional
para restaurar o uso do IMDSv1 ao solicitar metadados da instância.
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpTokens optional `
-HttpEndpoint enabled).InstanceMetadataOptions
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.
- AWS CLI
-
Como alterar o limite de salto de resposta 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
- PowerShell
-
Como alterar o limite de salto de resposta PUT
Use o cmdlet Edit-EC2InstanceMetadataOption e defina o parâmetro HttpPutResponseHopLimit
para o número necessário de saltos. No exemplo a seguir, o limite de saltos está definido como 3
. Observe que ao especificar um valor para HttpPutResponseHopLimit
, também é necessário definir HttpEndpoint
como enabled
.
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpPutResponseHopLimit 3 `
-HttpEndpoint enabled).InstanceMetadataOptions
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.
Você pode habilitar o endpoint iPv6 ao iniciar a instância ou posteriormente.
Requisitos para habilitação do endpoint iPv6
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.
- AWS CLI
-
Para habilitar o endpoint de IPv6 do IMDS para a instância
Use o comando modify-instance-metadata-options da CLI e defina o parâmetro http-protocol-ipv6
como enabled
. Observe que ao especificar um valor para http-protocol-ipv6
, também é necessário definir http-endpoint
como enabled
.
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567898abcdef0
\
--http-protocol-ipv6 enabled \
--http-endpoint enabled
- PowerShell
-
Para habilitar o endpoint de IPv6 do IMDS para a instância
Use o cmdlet Edit-EC2InstanceMetadataOption e defina o parâmetro HttpProtocolIpv6
como enabled
. Observe que ao especificar um valor para HttpProtocolIpv6
, também é necessário definir HttpEndpoint
como enabled
.
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpProtocolIpv6 enabled `
-HttpEndpoint enabled).InstanceMetadataOptions
É 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.
- Console
-
Para ativar o acesso aos metadados da instância
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione sua instância.
-
Escolha Ações, Configurações da instância e Modificar opções de metadados da instância.
-
Na caixa de diálogo Modificar opções de metadados da instância, faça o seguinte:
-
Em Serviço de metadados de instância, selecione Habilitar.
-
Escolha Salvar.
- AWS CLI
-
Para ativar o acesso aos metadados da instância
Use o comando modify-instance-metadata-options da CLI e defina o parâmetro http-endpoint
como enabled
.
aws ec2 modify-instance-metadata-options \
--instance-id i-1234567898abcdef0
\
--http-endpoint enabled
- PowerShell
-
Para ativar o acesso aos metadados da instância
Use o cmdlet Edit-EC2InstanceMetadataOption e defina o parâmetro HttpEndpoint
como enabled
.
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpEndpoint enabled).InstanceMetadataOptions
É 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.
- Console
-
Como desabilitar o acesso aos metadados da instância
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione sua instância.
-
Escolha Ações, Configurações da instância e Modificar opções de metadados da instância.
-
Na caixa de diálogo Modificar opções de metadados da instância, faça o seguinte:
-
Em Serviço de metadados de instância, desmarque Habilitar.
-
Escolha Salvar.
- AWS CLI
-
Como desabilitar o acesso aos metadados da instância
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
- PowerShell
-
Como desabilitar o acesso aos metadados da instância
Use o cmdlet Edit-EC2InstanceMetadataOption e defina o parâmetro HttpEndpoint
como disabled
.
(Edit-EC2InstanceMetadataOption `
-InstanceId i-1234567898abcdef0
`
-HttpEndpoint disabled).InstanceMetadataOptions