Configurar las opciones de metadatos para instancias existentes - Amazon Elastic Compute Cloud

Configurar las opciones de metadatos para instancias existentes

Puede modificar las opciones de metadatos para las instancias existentes.

Además, puede crear una política de IAM que impida a los usuarios modificar las opciones de metadatos de instancias existentes. Para controlar qué usuarios pueden modificar las opciones de metadatos de instancias, especifique una política que impida a todos los usuarios que no tengan un rol determinado utilizar la API ModifyInstanceMetadataOptions. Para ver una política de IAM de ejemplo, consulte Trabajar con metadatos de instancias.

nota

Si se utilizó una política declarativa para configurar las opciones de metadatos de la instancia, no podrá modificarlas directamente en la cuenta. Para obtener más información, consulte Políticas declarativas en la Guía del usuario de AWS Organizations.

Requerir el uso de IMDSv2

Utilice uno de los siguientes métodos para modificar las opciones de metadatos de una instancia existente para requerir que se utilice IMDSv2 al requerir los metadatos de instancia. Cuando se requiere IMDSv2, no se puede usar IMDSv1.

nota

Antes de solicitar el uso de IMDSv2, asegúrese de que la instancia no esté realizando llamadas a IMDSv1. La métrica MetadataNoToken de CloudWatch rastrea las llamadas de IMDSv1. Cuando MetadataNoToken no registra ningún uso de IMDSv1 en una instancia, la instancia estará lista para requerir IMDSv2.

Console
Para exigir el uso de IMDSv2 en una instancia existente
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Seleccione la instancia.

  4. Elija Acciones, Configuración de la instancia y Modificar opciones de metadatos de instancia.

  5. En el cuadro de diálogo Modificar opciones de metadatos de instancia, haga lo siguiente:

    1. En Servicio de metadatos de instancia, seleccione Habilitar.

    2. En IMDSv2, seleccione Obligatorio.

    3. Seleccione Save.

AWS CLI
Para exigir el uso de IMDSv2 en una instancia existente

Use el comando de la CLI modify-instance-metadata-options y establezca el parámetro http-tokens en required. Cuando se especifica un valor para http-tokens, también se debe establecer http-endpoint en enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --http-tokens required \ --http-endpoint enabled
PowerShell
Para exigir el uso de IMDSv2 en una instancia existente

Utilice el cmdlet Edit-EC2InstanceMetadataOption y defina el parámetro HttpTokens en required. Cuando se especifica un valor para HttpTokens, también se debe establecer HttpEndpoint en enabled.

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -HttpTokens required ` -HttpEndpoint enabled).InstanceMetadataOptions

Restauración del uso de IMDSv1

Cuando se requiere IMDSv2 en una instancia, se producirá un error al usar una solicitud de IMDSv1. Cuando IMDSv2 sea opcional, tanto IMDSv2 como IMDSv1 funcionarán. Por lo tanto, para reemplazar IMDSv1, haga que IMDSv2 sea opcional (httpTokens = optional) mediante alguno de los métodos siguientes.

La propiedad IMDS de httpTokensEnforced también impide los intentos de habilitar IMDSv1 en una instancia existente. Si se habilita para una cuenta de una región, si se intenta establecer httpTokens en optional se producirá una excepción de UnsupportedOperation. Para obtener más información, consulte Solución de problemas.

importante

Si los lanzamientos de la instancia fallan debido a la aplicación de IMDSv2, tiene dos opciones para permitir que los lanzamientos se realicen correctamente:

  • Lanzar instancias solo como IMDSv2: si el software que se ejecuta en las instancias usa solo IMDSv2 (sin depender de IMDSv1), puede lanzar las instancias solo como IMDSv2. Para ello, configure IMDSv2 únicamente mediante los parámetros de lanzamiento de httpTokens = required o los metadatos predeterminados de la cuenta de la región.

  • Desactivar la aplicación: si su software sigue dependiendo de IMDSv1, establezca httpTokensEnforced en disabled para la cuenta de la región. Para obtener más información, consulte Aplicar IMDSv2 a nivel de cuenta.

Console
Para restaurar el uso de IMDSv1 en una instancia
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Seleccione la instancia.

  4. Elija Acciones, Configuración de la instancia y Modificar opciones de metadatos de instancia.

  5. En el cuadro de diálogo Modificar opciones de metadatos de instancia, haga lo siguiente:

    1. Para Servicio de metadatos de instancia, asegúrese de que esté seleccionada la opción Habilitar.

    2. En IMDSv2, seleccione Opcional.

    3. Seleccione Save.

AWS CLI
Para restaurar el uso de IMDSv1 en una instancia

Puede utilizar el comando de la CLI modify-instance-metadata-options http-tokens establecido en optional para restaurar el uso de IMDSv1 cuando se solicitan metadatos de la instancia.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --http-tokens optional \ --http-endpoint enabled
PowerShell
Para restaurar el uso de IMDSv1 en una instancia

Puede usar el cmdlet Edit-EC2InstanceMetadataOption con HttpTokens establecido en optional, para restaurar el uso de IMDSv1 al solicitar los metadatos de la instancia.

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -HttpTokens optional ` -HttpEndpoint enabled).InstanceMetadataOptions

Cambio del límite de saltos de respuesta PUT

En las instancias existentes, puede modificar la configuración del límite de saltos de respuesta PUT.

Actualmente, solo la AWS CLI y los AWS SDK admiten cambiar el límite de saltos de respuesta PUT.

AWS CLI
Para cambiar el límite de saltos de respuesta PUT

Use el comando de la CLI modify-instance-metadata-options y establezca el parámetro http-put-response-hop-limit en el número de saltos necesario. En el siguiente ejemplo, el límite de saltos se ha establecido en 3. Tenga en cuenta que al especificar un valor para http-put-response-hop-limit, también debe establecer http-endpoint en enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --http-put-response-hop-limit 3 \ --http-endpoint enabled
PowerShell
Para cambiar el límite de saltos de respuesta PUT

Utilice el cmdlet Edit-EC2InstanceMetadataOption y defina el parámetro HttpPutResponseHopLimit para el número de saltos obligatorio. En el siguiente ejemplo, el límite de saltos se ha establecido en 3. Tenga en cuenta que al especificar un valor para HttpPutResponseHopLimit, también debe establecer HttpEndpoint en enabled.

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -HttpPutResponseHopLimit 3 ` -HttpEndpoint enabled).InstanceMetadataOptions

Habilitación de los puntos de conexión IPv4 e IPv6 de IMDS

El IMDS tiene dos puntos de conexión en una instancia: IPv4 (169.254.169.254) e IPv6 ([fd00:ec2::254]). Al habilitar el IMDS, el punto de conexión IPv4 se habilita automáticamente. El punto de conexión IPv6 permanece deshabilitado incluso si se lanza una instancia en una subred de solo IPv6. Para habilitar el punto de conexión IPv6, tiene que hacerlo de manera explícita. Si habilita el punto de conexión IPv6, el punto de conexión IPv4 permanece habilitado.

Puede habilitar el punto de conexión IPv6 al momento de lanzar una instancia o después.

Requisitos para la habilitación de un punto de conexión IPv6

En la actualidad, solo la AWS CLI y los AWS SDK son compatibles con la habilitación de un punto de conexión IPv6 de IMDS después del lanzamiento de una instancia.

AWS CLI
Para habilitar el punto de conexión IPv6 de IMDS para una instancia

Use el comando de la CLI modify-instance-metadata-options y establezca el parámetro http-protocol-ipv6 en enabled. Tenga en cuenta que al especificar un valor para http-protocol-ipv6, también debe establecer http-endpoint en enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --http-protocol-ipv6 enabled \ --http-endpoint enabled
PowerShell
Para habilitar el punto de conexión IPv6 de IMDS para una instancia

Utilice el cmdlet Edit-EC2InstanceMetadataOption y defina el parámetro HttpProtocolIpv6 en enabled. Tenga en cuenta que al especificar un valor para HttpProtocolIpv6, también debe establecer HttpEndpoint en enabled.

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -HttpProtocolIpv6 enabled ` -HttpEndpoint enabled).InstanceMetadataOptions

Activación del acceso a los metadatos de instancias

Puede activar el acceso a los metadatos de instancia al habilitar el punto de conexión HTTP del IMDS en la instancia, independientemente de la versión del IMDS que utilice. Para anular este cambio en cualquier momento, deshabilite el punto de conexión HTTP.

Utilice uno de los métodos siguientes para activar el acceso a los metadatos de una instancia en una instancia.

Console
Para activar el acceso a los metadatos de instancia
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Seleccione la instancia.

  4. Elija Acciones, Configuración de la instancia y Modificar opciones de metadatos de instancia.

  5. En el cuadro de diálogo Modificar opciones de metadatos de instancia, haga lo siguiente:

    1. En Servicio de metadatos de instancia, seleccione Habilitar.

    2. Seleccione Save.

AWS CLI
Para activar el acceso a los metadatos de instancia

Use el comando de la CLI modify-instance-metadata-options y establezca el parámetro http-endpoint en enabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --http-endpoint enabled
PowerShell
Para activar el acceso a los metadatos de instancia

Utilice el cmdlet Edit-EC2InstanceMetadataOption y defina el parámetro HttpEndpoint en enabled.

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -HttpEndpoint enabled).InstanceMetadataOptions

Desactivar el acceso a los metadatos de instancia

Puede desactivar el acceso a los metadatos de instancia al deshabilitar el punto de conexión HTTP del IMDS en la instancia, independientemente de la versión del IMDS que utilice. Puede anular este cambio en cualquier momento mediante la activación del punto de conexión HTTP.

Utilice uno de los métodos siguientes para desactivar el acceso a los metadatos de una instancia.

Console
Para desactivar el acceso a los metadatos de instancia
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Seleccione la instancia.

  4. Elija Acciones, Configuración de la instancia y Modificar opciones de metadatos de instancia.

  5. En el cuadro de diálogo Modificar opciones de metadatos de instancia, haga lo siguiente:

    1. Para Servicio de metadatos de instancia, desactive Habilitar.

    2. Seleccione Save.

AWS CLI
Para desactivar el acceso a los metadatos de instancia

Use el comando de la CLI modify-instance-metadata-options y establezca el parámetro http-endpoint en disabled.

aws ec2 modify-instance-metadata-options \ --instance-id i-1234567890abcdef0 \ --http-endpoint disabled
PowerShell
Para desactivar el acceso a los metadatos de instancia

Utilice el cmdlet Edit-EC2InstanceMetadataOption y defina el parámetro HttpEndpoint en disabled.

(Edit-EC2InstanceMetadataOption ` -InstanceId i-1234567890abcdef0 ` -HttpEndpoint disabled).InstanceMetadataOptions

Permitir acceso a etiquetas en metadatos de instancia

Puede permitir el acceso a etiquetas en los metadatos de instancia en una instancia en ejecución o detenida. Para cada instancia, debe permitir el acceso de manera explícita. Si se permite el acceso, las claves de etiquetas de instancia deben cumplir con restricciones de caracteres específicas; de lo contrario, dará error. Para obtener más información, consulte Habilitación del acceso a etiquetas en metadatos de instancia.

Solución de problemas

Se produce un error al modificar una instancia habilitada para IMDSv1

Descripción

Ha recibido este mensaje de error:

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

Este error se produce cuando se intenta modificar una instancia existente para que esté habilitada para IMDSv1 (httpTokens = optional) en una cuenta en la que la configuración de la cuenta EC2 o una política declarativa de la organización de AWS aplica el uso de IMDSv2 (httpTokensEnforced = enabled).

Solución

Si necesita compatibilidad con IMDSv1 en las instancias existentes, tendrá que deshabilitar la aplicación de IMDSv2 en la cuenta de la región. Configure HttpTokensEnforced en disabled para deshabilitar la aplicación de IMDSv2. Para obtener más información, consulte ModifyInstanceMetadataDefaults en la Referencia de la API de Amazon EC2. Si prefiere configurar este ajuste mediante la consola, consulte Aplicar IMDSv2 a nivel de cuenta.

Se recomienda que use únicamente IMDSv2 (httpTokens=required). Para obtener más información, consulte Transición al uso de Servicio de metadatos de instancia, versión 2.