Configurar las opciones de metadatos de instancia - Amazon Elastic Compute Cloud

Configurar las opciones de metadatos de instancia

El servicio de metadatos de instancias (IMDS) se ejecuta de forma local en todas las instancias de EC2. Las opciones de metadatos de instancia hacen referencia a un conjunto de configuraciones que controlan la accesibilidad y el comportamiento del IMDS en una instancia de EC2.

Puede configurar las siguientes opciones de metadatos de instancia en cada instancia.

Servicio de metadatos de instancias (IMDS): enabled | disabled

Puede habilitar o deshabilitar el IMDS en una instancia. Si está deshabilitado, ni usted ni ningún código podrá acceder a los metadatos de la instancia.

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. Si desea habilitar el punto de conexión IPv6, tendrá que hacerlo de forma explícita.

Punto de conexión IPv6 del IMDS: enabled | disabled

Puede habilitar de forma explícita el punto de conexión IPv6 del IMDS en una instancia. Cuando el punto de conexión IPv6 está habilitado, el punto de conexión IPv4 permanece habilitado. El punto de conexión IPv6 sólo es compatible con instancias integradas en el AWS Nitro System.

Versión de metadatos: IMDSv1 or IMDSv2 (token optional) | IMDSv2 only (token required)

Al solicitar metadatos de instancia, las llamadas de IMDSv2 solicitan un token. Las llamadas de IMDSv1 no requieren un token. Puede configurar una instancia para que permita las llamadas de IMDSv1 o IMDSv2 (en las que el token es opcional) o para que solo permita las llamadas de IMDSv2 (en las que el token es obligatorio).

Límite de saltos de respuesta de metadatos: 164

El límite de saltos es el número de saltos de red que puede realizar la respuesta PUT. Puede establecer el límite de saltos en un mínimo de 1 y un máximo de 64. En un entorno de contenedores, recomendamos establecer el límite de saltos en 2. Para obtener más información, consulte Consideraciones.

Acceso a etiquetas en metadatos de instancia: enabled | disabled

Puede habilitar o deshabilitar el acceso a las etiquetas de la instancia desde los metadatos de instancia. Para obtener más información, consulte Trabajar con etiquetas de instancia en los metadatos de instancia.

Dónde configurar las opciones de metadatos de instancia

Las opciones de metadatos de instancia se pueden configurar en diferentes niveles, de la siguiente manera:

  • Cuenta: puede establecer valores predeterminados para las opciones de metadatos de instancia a nivel de cuenta para cada Región de AWS. Cuando se inicia una instancia, las opciones de metadatos de instancia se configuran automáticamente en los valores a nivel de cuenta. Puede cambiar este valor en el momento de la inicialización. Los valores predeterminados a nivel de cuenta no afectan a las instancias existentes.

  • AMI: puede establecer el parámetro imds-support a v2.0 cuando registra o modifica una AMI. Cuando se inicia una instancia con esta AMI, la versión de metadatos de instancia se establece automáticamente en IMDSv2 y el límite de saltos se establece en 2.

  • instancia: puede cambiar todas las opciones de metadatos de instancia en el momento de la inicialización, al anular la configuración predeterminada. También puede cambiar las opciones de metadatos de instancia después de la inicialización en una instancia en ejecución o detenida. Tenga en cuenta que los cambios pueden restringirse mediante una política de IAM o SCP.

Para obtener más información, consulte Configurar las opciones de metadatos para instancias nuevas y Configurar las opciones de metadatos para instancias existentes.

Orden de prioridad para las opciones de metadatos de instancia

El valor de cada opción de metadatos de instancia se determina en el momento de la inicialización de la instancia, siguiendo un orden jerárquico de prioridad. La jerarquía, con la prioridad más alta en la parte superior, es la siguiente:

  • Prioridad 1, configuración de la instancia en la inicialización: los valores se pueden especificar en la plantilla de inicialización o en la configuración de la instancia. Todos los valores especificados aquí anulan los valores especificados a nivel de cuenta o en la AMI.

  • Prioridad 2, configuración de la cuenta: si no se especifica un valor al iniciar la instancia, lo determina la configuración a nivel de cuenta (que se establece para cada Región de AWS). La configuración a nivel de cuenta incluye un valor para cada opción de metadatos o no indica ninguna preferencia.

  • Prioridad 3, configuración de la AMI: si no se especifica un valor al iniciar la instancia o a nivel de cuenta, lo determina la configuración de la AMI. Esto se aplica solo a HttpTokens y HttpPutResponseHopLimit.

Cada opción de metadatos se evalúa por separado. La instancia se puede ajustar con una combinación de configuración de instancia directa, valores predeterminados a nivel de cuenta y la configuración de la AMI.

Puede cambiar el valor de cualquier opción de metadatos después de la inicialización en una instancia en ejecución o detenida, a menos que los cambios estén restringidos por una política de IAM o SCP.

Determine los valores de las opciones de metadatos: ejemplo 1

En este ejemplo, se inicia una instancia de EC2 en una Región en la que HttpPutResponseHopLimit se establece en 1 a nivel de cuenta. La AMI especificada tiene ImdsSupport establecido en v2.0. En el momento de la inicialización, no se especifican opciones de metadatos directamente en la instancia. La instancia se inicia con las siguientes opciones de metadatos:

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

Estos valores se determinaron de la siguiente manera:

  • No se especificaron opciones de metadatos en el momento de la inicialización: durante la inicialización de la instancia, no se proporcionaron valores específicos para las opciones de metadatos ni en los parámetros de inicialización de la instancia ni en la plantilla de inicialización.

  • La configuración de la cuenta tiene prioridad: si no se especifican valores específicos en el momento de la inicialización, prevalece la configuración a nivel de la cuenta dentro de la Región. Esto significa que se aplican los valores predeterminados configurados a nivel de cuenta. En este caso, HttpPutResponseHopLimit se estableció en 1.

  • La configuración de la AMI tiene prioridad: en ausencia de un valor específico en la inicialización o a nivel de cuenta para HttpTokens (la versión de metadatos de la instancia), se aplica la configuración de la AMI. En este caso, la configuración de AMI ImdsSupport: v2.0 determinó que HttpTokens se estableció en required. Tenga en cuenta que, si bien la configuración de la AMI ImdsSupport: v2.0 está diseñada para establecerse como HttpPutResponseHopLimit: 2, la configuración a nivel de cuenta HttpPutResponseHopLimit: 1, que tiene mayor prioridad, la anuló.

Determine los valores de las opciones de metadatos: ejemplo 2

En este ejemplo, la instancia de EC2 se inicia con la misma configuración que en el ejemplo 1 anterior, pero con HttpTokens configurados optional directamente como en la instancia en el momento de la inicialización. La instancia se inicia con las siguientes opciones de metadatos:

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

El valor de HttpPutResponseHopLimit se determina de la misma manera que en el ejemplo 1. Sin embargo, el valor de HttpTokens se determina de la siguiente manera: las opciones de metadatos configuradas en la instancia en el momento de la inicialización tienen prioridad. Aunque la AMI se configuró con ImdsSupport: v2.0 (en otras palabras, HttpTokens se establecieron como required), prevaleció el valor especificado en la instancia en el momento de la inicialización (HttpTokens se establecieron como optional).

Ajuste de la versión de los metadatos de instancia

Cuando se inicia una instancia, el valor de la versión de metadatos de la instancia es IMDSv1 or IMDSv2 (token optional) o IMDSv2 only (token required).

Al iniciar la instancia, puede especificar de forma manual el valor de la versión de metadatos o usar el valor predeterminado. Si especifica el valor de forma manual, anulará los valores predeterminados. Si opta por no especificar el valor de forma manual, se determinará mediante una combinación de ajustes predeterminados, como se indica en la tabla siguiente.

En la tabla se muestra cómo se determina la versión de metadatos de una instancia en el momento de la inicialización (indicada en la columna 4, en la Configuración de la instancia resultante) en función de los ajustes de los distintos niveles de configuración. El orden de prioridad es de izquierda a derecha, donde la primera columna tiene mayor prioridad, como se indica a continuación:

  • Columna 1: Parámetro de inicialización, representa la configuración de la instancia que se especifica de forma manual en la inicialización.

  • Columna 2: Nivel de cuenta predeterminado, representa la configuración de la cuenta.

  • Columna 3: Valor predeterminado de la AMI, representa la configuración de la AMI.

Parámetro de inicialización Nivel de cuenta predeterminado AMI predeterminada Configuración de la instancia resultante
V2 únicamente (token obligatorio) Sin preferencias V2 únicamente V2 únicamente
V2 únicamente (token obligatorio) V2 únicamente V2 únicamente V2 únicamente
V2 únicamente (token obligatorio) V1 o V2 V2 únicamente V2 únicamente
V1 o V2 (token obligatorio) Sin preferencias V2 únicamente V1 o V2
V1 o V2 (token obligatorio) V2 únicamente V2 únicamente V1 o V2
V1 o V2 (token obligatorio) V1 o V2 V2 únicamente V1 o V2
No configurado Sin preferencias V2 únicamente V2 únicamente
No configurado V2 únicamente V2 únicamente V2 únicamente
No configurado V1 o V2 V2 únicamente V1 o V2
V2 únicamente (token obligatorio) Sin preferencias null V2 únicamente
V2 únicamente (token obligatorio) V2 únicamente null V2 únicamente
V2 únicamente (token obligatorio) V1 o V2 null V2 únicamente
V1 o V2 (token obligatorio) Sin preferencias null V1 o V2
V1 o V2 (token obligatorio) V2 únicamente null V1 o V2
V1 o V2 (token obligatorio) V1 o V2 null V1 o V2
No configurado Sin preferencias null V1 o V2
No configurado V2 únicamente null V2 únicamente
No configurado V1 o V2 null V1 o V2

Uso de las claves de condición de IAM para restringir las opciones de metadatos de instancia

Puede utilizar claves de condición de IAM en una política de IAM o SCP de la siguiente forma:

  • Permitir que una instancia se lance únicamente si está configurada para requerir el uso de IMDSv2

  • Restringir el número de saltos permitidos

  • Desactivar el acceso a los metadatos de instancia

nota

Debe proceder con cautela y realizar pruebas antes de realizar cambios. Tome nota de lo siguiente:

  • Si fuerza el uso de IMDSv2, las aplicaciones o los agentes que usen IMDSv1 para acceder a metadatos de instancia se interrumpirán.

  • Si desactiva todo acceso a los metadatos de instancia, las aplicaciones o los agentes que confíen en que el acceso a metadatos de instancia funcione, se interrumpirán.

  • En el caso de IMDSv2, debe utilizar /latest/api/token al recuperar el token.