

# Configuración de las opciones del servicio de metadatos de instancias
<a name="configuring-instance-metadata-options"></a>

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` \$1 `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` \$1 `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 solo es compatible con [instancias basadas en Nitro](instance-types.md#instance-hypervisor-type) en [subredes compatibles con IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-ip-address-range) (de doble pila o solo IPv6).

**Versión de metadatos**: `IMDSv1 or IMDSv2 (token optional)` \$1 `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**: `1`–`64`  
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, un límite de `1` saltos puede provocar problemas. Para obtener información sobre cómo mitigar estos problemas, consulte la información sobre entornos de contenedores en [Consideraciones sobre el acceso a los metadatos de instancia](instancedata-data-retrieval.md#imds-considerations).

**Acceso a etiquetas en metadatos de instancia**: `enabled` \$1 `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 [Visualización de etiquetas para las instancias de EC2 mediante los metadatos de la instancia](work-with-tags-in-IMDS.md).

Para ver la configuración actual de una instancia, consulte [Opciones de metadatos de instancia de consulta para instancias existentes](instancedata-data-retrieval.md#query-IMDS-existing-instances).

## Dónde configurar las opciones de metadatos de instancia
<a name="where-to-configure-instance-metadata-options"></a>

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](configuring-IMDS-new-instances.md) y [Configurar las opciones de metadatos para instancias existentes](configuring-IMDS-existing-instances.md).

## Orden de prioridad para las opciones de metadatos de instancia
<a name="instance-metadata-options-order-of-precedence"></a>

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.

**nota**  
La configuración de aplicación de IMDSv2 a nivel de cuenta se evalúa después de que el orden de prioridad haya determinado la configuración del IMDS de la instancia. Cuando la aplicación de IMDSv2 está habilitada, fallarán las instancias habilitadas con IMDSv1. Para obtener más información sobre la aplicación, consulte [Aplicar IMDSv2 a nivel de cuenta](configuring-IMDS-new-instances.md#enforce-imdsv2-at-the-account-level).

**aviso**  
Si la aplicación de IMDSv2 está habilitada y no se ha establecido `httpTokens` en `required` en la configuración de la instancia en el momento del lanzamiento, en los ajustes de la cuenta o en la configuración de la AMI, el lanzamiento fallará.

**Ejemplo 1: determine los valores de las opciones de metadatos**

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ó.

**Ejemplo 2: determine los valores de las opciones de metadatos**

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`).

**Ejemplo 3: determine los valores de las opciones de metadatos con HttpTokenforced activado**

En este ejemplo, el número de cuenta en la región tiene `HttpTokens = required` y `HttpTokensEnforced = enabled`.

Considere los siguientes intentos de lanzamiento de instancias de EC2:
+ Intento de lanzamiento con `HttpTokens` establecido en `optional`: el lanzamiento falla porque la aplicación a nivel de cuenta está habilitada (`HttpTokensEnforced = enabled`) y el parámetro de lanzamiento tiene prioridad sobre el valor predeterminado de la cuenta.
+ Intento de lanzamiento con `HttpTokens` establecido en `required`: el lanzamiento se realiza correctamente porque cumple con la aplicación a nivel de cuenta. 
+ Intento de lanzamiento sin especificar ningún valor de `HttpTokens`: el lanzamiento se realiza correctamente porque el valor predeterminado se establece en `required` según la configuración de la cuenta. 

### Ajuste de la versión de los metadatos de instancia
<a name="metadata-version-order-of-precedence"></a>

Cuando se lanza una instancia, el valor de la *versión de metadatos* de la instancia es **IMDSv1 o IMDSv2 (token opcional)** (`httpTokens=optional`) o **solo IMDSv2 (se requiere token) (`httpTokens=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.

En el siguiente diagrama de flujo se muestra cómo se determina la versión de metadatos de una instancia en el momento del lanzamiento en función de los ajustes de los distintos niveles de la configuración y en el lugar en el que se evalúa la aplicación. En la siguiente tabla se proporciona la configuración específica de cada nivel.

![\[Un diagrama de flujo que muestra los puntos de evaluación de la versión de metadatos de la instancia y de la aplicación de IMDSv2.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/imds-defaults-launch-flow.png)


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
<a name="iam-condition-keys-and-imds"></a>

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

**Topics**
+ [Dónde configurar las opciones de metadatos de instancia](#where-to-configure-instance-metadata-options)
+ [Orden de prioridad para las opciones de metadatos de instancia](#instance-metadata-options-order-of-precedence)
+ [Uso de las claves de condición de IAM para restringir las opciones de metadatos de instancia](#iam-condition-keys-and-imds)
+ [Configurar las opciones de metadatos para instancias nuevas](configuring-IMDS-new-instances.md)
+ [Configurar las opciones de metadatos para instancias existentes](configuring-IMDS-existing-instances.md)

**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.
(Solo Windows) Si la versión de PowerShell es anterior a 4.0, debe [actualizar a Windows Management Framework 4.0](https://devblogs.microsoft.com/powershell/windows-management-framework-wmf-4-0-update-now-available-for-windows-server-2012-windows-server-2008-r2-sp1-and-windows-7-sp1/) para requerir el uso de IMDSv2.

# Configurar las opciones de metadatos para instancias nuevas
<a name="configuring-IMDS-new-instances"></a>

Puede configurar las siguientes opciones de metadatos para nuevas instancias.

**Topics**
+ [Requerir el uso de IMDSv2](#configure-IMDS-new-instances)
+ [Habilitación de los puntos de conexión IPv4 e IPv6 de IMDS](#configure-IMDS-new-instances-ipv4-ipv6-endpoints)
+ [Desactivar el acceso a los metadatos de instancia](#configure-IMDS-new-instances--turn-off-instance-metadata)
+ [Permitir acceso a etiquetas en metadatos de instancia](#configure-IMDS-new-instances-tags-in-instance-metadata)

**nota**  
Los ajustes de estas opciones se configuran a nivel de cuenta, ya sea directamente en la cuenta o mediante una política declarativa. Se deben configurar en cada Región de AWS en la que desee configurar las opciones de metadatos de la instancia. El uso de una política declarativa permite aplicar la configuración en varias regiones simultáneamente, así como en varias cuentas simultáneamente. Cuando se utiliza una política declarativa, no se puede modificar la configuración directamente en una cuenta. En este tema se describe cómo configurar el ajuste directamente dentro de una cuenta. Para obtener información sobre el uso de políticas declarativas, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de AWS Organizations*.

## Requerir el uso de IMDSv2
<a name="configure-IMDS-new-instances"></a>

Puede usar los siguientes métodos para exigir el uso de IMDSv2 en sus instancias nuevas.

**Topics**
+ [Ajuste de IMDSv2 como valor predeterminado de la cuenta](#set-imdsv2-account-defaults)
+ [Aplicar IMDSv2 a nivel de cuenta](#enforce-imdsv2-at-the-account-level)
+ [Configuración de la instancia en el momento de la inicialización](#configure-IMDS-new-instances-instance-settings)
+ [Configuración de la AMI](#configure-IMDS-new-instances-ami-configuration)
+ [Uso de una política de IAM](#configure-IMDS-new-instances-iam-policy)

### Ajuste de IMDSv2 como valor predeterminado de la cuenta
<a name="set-imdsv2-account-defaults"></a>

Puede establecer el valor predeterminado del servicio de metadatos de instancias (IMDS) a nivel de cuenta para cada Región de AWS. Cuando se inicia una instancia *nueva*, la versión de metadatos de la instancia se configura automáticamente al valor a nivel de cuenta predeterminado. Sin embargo, puede anular el valor manualmente al iniciarla o después. Para obtener más información sobre cómo afectan a una instancia la configuración a nivel de cuenta y las anulaciones manuales, consulte [Orden de prioridad para las opciones de metadatos de instancia](configuring-instance-metadata-options.md#instance-metadata-options-order-of-precedence)

**nota**  
Si se establece el valor predeterminado a nivel de cuenta, no se restablecen las instancias *existentes*. Por ejemplo, si establece el valor predeterminado a nivel de cuenta en IMDSv2, las instancias existentes que estén configuradas en IMDSv1 no se verán afectadas. Si desea cambiar el valor de las instancias existentes, debe cambiarlo manualmente en las propias instancias.

Puede establecer el valor predeterminado de la cuenta para la versión de metadatos de instancia en IMDSv2, de modo que todas las instancias *nuevas* de la cuenta se inicien con IMDSv2 obligatoriamente y, de esta forma, se deshabilita IMDSv1. Con esta cuenta predeterminada, cuando lance una instancia, los valores predeterminados de la instancia serán los siguientes:
+ Consola: la **versión de metadatos** se configura en **V2 únicamente (token obligatorio)** y el **límite de saltos de respuesta de los metadatos** se establece en **2**.
+ AWS CLI: `HttpTokens` se configuran como `required` y `HttpPutResponseHopLimit` se configura en `2`. 

**nota**  
Antes de establecer el valor predeterminado de la cuenta en IMDSv2, asegúrese de que las instancias no dependan de IMDSv1. Para obtener más información, consulte [Ruta recomendada para exigir IMDSv2](instance-metadata-transition-to-version-2.md#recommended-path-for-requiring-imdsv2).

------
#### [ Console ]

**Cómo configurar IMDSv2 como valor predeterminado para la cuenta de la Región especificada**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superior derecha de la página.

1. En el panel de navegación, elija **Panel**.

1. En la tarjeta **Atributos de cuenta**, en **Configuración**, elija **Protección y seguridad de datos**.

1. **Junto a los **Valores predeterminados de IMDS**, seleccione Administrar**.

1. En la página **Administrar valores predeterminados de IMDS**, haga lo siguiente:

   1. En **Servicio de metadatos de instancia**, seleccione **Habilitado**.

   1. En **Metadata version** (Versión de metadatos), elija **V2 only (token required)** (solo V2 [token obligatorio]).

   1. En el **Límite de saltos de respuesta de metadatos**, especifique **2** si las instancias alojarán contenedores. De lo contrario, seleccione **Sin preferencia**. Si no se especifica ninguna preferencia, en el momento del lanzamiento, el valor predeterminado será **2** si la AMI tiene la configuración `ImdsSupport: v2.0`; de lo contrario, el valor predeterminado será **1**.

   1. Elija **Actualizar**.

------
#### [ AWS CLI ]

**Cómo configurar IMDSv2 como valor predeterminado para la cuenta de la Región especificada**  
Use el comando [modify-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html) y especifique la Región en la que desea modificar la configuración a nivel de cuenta de IMDS. Incluya `--http-tokens` establecidos como `required` y `--http-put-response-hop-limit` establecido en `2` si las instancias alojarán contenedores. De lo contrario, especifique `-1` si no desea indicar ninguna preferencia. Si se especifica `-1` (ninguna preferencia), en el momento del lanzamiento, el valor predeterminado será `2` si la AMI tiene la configuración `ImdsSupport: v2.0`; de lo contrario, el valor predeterminado será `1`.

```
aws ec2 modify-instance-metadata-defaults \
    --region us-east-1 \
    --http-tokens required \
    --http-put-response-hop-limit 2
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "Return": true
}
```

**Cómo ver la configuración de cuenta predeterminada para las opciones de metadatos de instancia para la Región especificada**  
Use el comando [get-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-metadata-defaults.html) y especifique la Región.

```
aws ec2 get-instance-metadata-defaults --region us-east-1
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "AccountLevel": {
        "HttpTokens": "required",
        "HttpPutResponseHopLimit": 2
    },
    "ManagedBy": "account"
}
```

El campo `ManagedBy` indica la entidad que configuró el ajuste. En este ejemplo, `account` indica que el ajuste se configuró directamente en la cuenta. Un valor de `declarative-policy` significaría que el ajuste se configuró mediante una política declarativa. Para obtener más información, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de AWS Organizations*.

**Configuración de IMDSv2 como servicio predeterminado para la cuenta para todas las regiones**  
Use el comando [modify-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html) para modificar la configuración de nivel de cuenta de IMDS para todas las regiones. Incluya `--http-tokens` establecidos como `required` y `--http-put-response-hop-limit` establecido en `2` si las instancias alojarán contenedores. De lo contrario, especifique `-1` si no desea indicar ninguna preferencia. Si se especifica `-1` (ninguna preferencia), en el momento del lanzamiento, el valor predeterminado será `2` si la AMI tiene la configuración `ImdsSupport: v2.0`; de lo contrario, el valor predeterminado será `1`.

```
echo -e "Region          \t Modified" ; \
echo -e "--------------  \t ---------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 modify-instance-metadata-defaults \
            --region $region \
            --http-tokens required \
            --http-put-response-hop-limit 2 \
            --output text)
        echo -e "$region        \t $output"
    );
done
```

A continuación, se muestra un ejemplo del resultado.

```
Region                   Modified
--------------           ---------
ap-south-1               True
eu-north-1               True
eu-west-3                True
...
```

**Visualización de la configuración de cuenta predeterminada para las opciones de metadatos de instancia para todas las regiones**  
Use el comando [get-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-metadata-defaults.html).

```
echo -e "Region   \t Level          Hops    HttpTokens" ; \
echo -e "-------------- \t ------------   ----    ----------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 get-instance-metadata-defaults \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

A continuación, se muestra un ejemplo del resultado.

```
Region           Level          Hops    HttpTokens
--------------   ------------   ----    ----------
ap-south-1       ACCOUNTLEVEL   2       required
eu-north-1       ACCOUNTLEVEL   2       required
eu-west-3        ACCOUNTLEVEL   2       required
...
```

------
#### [ PowerShell ]

**Cómo configurar IMDSv2 como valor predeterminado para la cuenta de la Región especificada**  
Use el cmdlet [Edit-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataDefault.html) y especifique la Región en la que desea modificar la configuración a nivel de cuenta de IMDS. Incluya `-HttpToken` establecidos como `required` y `-HttpPutResponseHopLimit` establecido en `2` si las instancias alojarán contenedores. De lo contrario, especifique `-1` si no desea indicar ninguna preferencia. Si se especifica `-1` (ninguna preferencia), en el momento del lanzamiento, el valor predeterminado será `2` si la AMI tiene la configuración `ImdsSupport: v2.0`; de lo contrario, el valor predeterminado será `1`.

```
Edit-EC2InstanceMetadataDefault `
    -Region us-east-1 `
    -HttpToken required `
    -HttpPutResponseHopLimit 2
```

A continuación, se muestra un ejemplo del resultado.

```
True
```

**Cómo ver la configuración de cuenta predeterminada para las opciones de metadatos de instancia para la Región especificada**  
Use el cmdlet [Get-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceMetadataDefault.html) y especifique la región.

```
Get-EC2InstanceMetadataDefault -Region us-east-1 | Format-List
```

A continuación, se muestra un ejemplo del resultado.

```
HttpEndpoint            : 
HttpPutResponseHopLimit : 2
HttpTokens              : required
InstanceMetadataTags    :
```

**Configuración de IMDSv2 como servicio predeterminado para la cuenta para todas las regiones**  
Use el cmdlet [Edit-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataDefault.html) para modificar la configuración de nivel de cuenta de IMDS de todas las regiones. Incluya `-HttpToken` establecidos como `required` y `-HttpPutResponseHopLimit` establecido en `2` si las instancias alojarán contenedores. De lo contrario, especifique `-1` si no desea indicar ninguna preferencia. Si se especifica `-1` (ninguna preferencia), en el momento del lanzamiento, el valor predeterminado será `2` si la AMI tiene la configuración `ImdsSupport: v2.0`; de lo contrario, el valor predeterminado será `1`.

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region   = $_
        Modified = (Edit-EC2InstanceMetadataDefault `
                -Region $_ `
                -HttpToken required `
                -HttpPutResponseHopLimit 2)
    } 
} | `
Format-Table Region, Modified -AutoSize
```

Resultado previsto

```
Region         Modified
------         --------
ap-south-1         True
eu-north-1         True
eu-west-3          True
...
```

**Visualización de la configuración de cuenta predeterminada para las opciones de metadatos de instancia para todas las regiones**  
Utilice el cmdlet [Get-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceMetadataDefault.html).

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region = $_
        HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit
        HttpTokens              = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens
    }
} | `
Format-Table -AutoSize
```

Ejemplo de resultado

```
Region         HttpPutResponseHopLimit HttpTokens
------         ----------------------- ----------
ap-south-1                           2 required
eu-north-1                           2 required
eu-west-3                            2 required                    
...
```

------

### Aplicar IMDSv2 a nivel de cuenta
<a name="enforce-imdsv2-at-the-account-level"></a>

Puede aplicar el uso de IMDSv2 a nivel de cuenta para cada Región de AWS. Cuando se aplican, las instancias solo se pueden lanzar si están configuradas para que exijan IMDSv2. Esta aplicación se aplica independientemente de cómo esté configurada la instancia o la AMI.

**nota**  
Antes de habilitar la aplicación de IMDSv2 a nivel de cuenta, asegúrese de que sus aplicaciones y AMI sean compatibles con IMDSv2. Para obtener más información, consulte [Ruta recomendada para exigir IMDSv2](instance-metadata-transition-to-version-2.md#recommended-path-for-requiring-imdsv2). Si la aplicación de IMDSv2 está habilitada y `httpTokens` no está establecida en la configuración de la instancia `required` en el momento del lanzamiento, en la configuración de la cuenta o en la configuración de la AMI, el lanzamiento de la instancia fallará. Para obtener información sobre la resolución de problemas, consulte [Se produce un error al lanzar una instancia habilitada para IMDSv1](troubleshooting-launch.md#launching-an-imdsv1-enabled-instance-fails).

**nota**  
Esta configuración no cambia la versión de IMDS de las instancias existentes, pero bloquea la activación de IMDSv1 en las instancias existentes que actualmente tienen inhabilitado IMDSv1.

------
#### [ Console ]

**Para aplicar IMDSv2 para la cuenta de la región especificada**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Para cambiar la región Región de AWS, utilice el selector de regiones en la esquina superior derecha de la página.

1. En el panel de navegación, elija **Panel**.

1. En la tarjeta **Atributos de cuenta**, en **Configuración**, elija **Protección y seguridad de datos**.

1. **Junto a los **Valores predeterminados de IMDS**, seleccione Administrar**.

1. En la página **Administrar valores predeterminados de IMDS**, haga lo siguiente:

   1. En **Metadata version** (Versión de metadatos), elija **V2 only (token required)** (solo V2 [token obligatorio]).

   1. En **Aplicar IMDSv2**, seleccione **Activado.**

   1. Elija **Actualizar**.

------
#### [ AWS CLI ]

**Para aplicar IMDSv2 para la cuenta de la región especificada**  
 Use el comando [modify-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html) y especifique la Región en la que desea aplicar IMDSv2. 

```
aws ec2 modify-instance-metadata-defaults \
    --region us-east-1 \
    --http-tokens required \
    --http-tokens-enforced enabled
```

A continuación, se muestra un ejemplo del resultado.

```
{
"Return": true
}
```

**Para ver la configuración de aplicación de IMDSv2 para la cuenta en una región específica**  
Use el comando [get-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-metadata-defaults.html) y especifique la Región.

```
aws ec2 get-instance-metadata-defaults --region us-east-1
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "AccountLevel": {
        "HttpTokens": "required",
        "HttpTokensEnforced": "enabled"
    },
    "ManagedBy": "account"
}
```

El campo `ManagedBy` indica la entidad que configuró el ajuste. En este ejemplo, `account` indica que el ajuste se configuró directamente en la cuenta. Un valor de `declarative-policy` significaría que el ajuste se configuró mediante una política declarativa. Para obtener más información, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de organizaciones de AWS*.

**Para aplicar IMDSv2 para la cuenta para todas las regiones**  
Use el comando [modify-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html) para aplicar IMDSv2 en todas las regiones.

```
echo -e "Region          \t Modified" ; \
echo -e "--------------  \t ---------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 modify-instance-metadata-defaults \
            --region $region \
            --http-tokens-enforced enabled \
            --output text)
        echo -e "$region        \t $output"
    );
done
```

A continuación, se muestra un ejemplo del resultado.

```
Region                   Modified
--------------           ---------
ap-south-1               True
eu-north-1               True
eu-west-3                True
...
```

**Para ver la configuración de aplicación de IMDSv2 de la cuenta en todas las regiones**  
Use el comando [get-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-metadata-defaults.html).

```
echo -e "Region   \t Level           HttpTokensEnforced" ; \
echo -e "-------------- \t ------------   ----------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 get-instance-metadata-defaults \
            --region $region \
            --query 'AccountLevel.HttpTokensEnforced' \           
            --output text)
        echo -e "$region \t ACCOUNTLEVEL $output" 
    );
done
```

A continuación, se muestra un ejemplo del resultado.

```
Region           Level          HttpTokensEnforced
--------------   ------------   ------------------
ap-south-1       ACCOUNTLEVEL   enabled
eu-north-1       ACCOUNTLEVEL   enabled
eu-west-3        ACCOUNTLEVEL   enabled
...
```

------
#### [ PowerShell ]

**Para aplicar IMDSv2 para la cuenta de la región especificada**  
Use el cmdlet [Edit-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataDefault.html) y especifique la Región en la que desea aplicar IMDSv2. 

```
Edit-EC2InstanceMetadataDefault `
    -Region us-east-1 `
    -HttpToken required `
    -HttpPutResponseHopLimit 2
```

A continuación, se muestra un ejemplo del resultado.

```
@{
    Return = $true
}
```

**Para ver la configuración de aplicación de IMDSv2 para la cuenta en una región específica**  
Use el comando Get-EC2InstanceMetadataDefault y especifique la región.

```
Get-EC2InstanceMetadataDefault -Region us-east-1
```

A continuación, se muestra un ejemplo del resultado.

```
@{
    AccountLevel = @{
        HttpTokens = "required"
        HttpTokensEnforced = "enabled"
    }
    ManagedBy = "account"
}
```

El campo `ManagedBy` indica la entidad que configuró el ajuste. En este ejemplo, `account` indica que el ajuste se configuró directamente en la cuenta. Un valor de `declarative-policy` significaría que el ajuste se configuró mediante una política declarativa. Para obtener más información, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de organizaciones de AWS*.

**Para aplicar IMDSv2 para la cuenta para todas las regiones**  
Use el comando [modify-instance-metadata-defaults](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-defaults.html) para aplicar IMDSv2 en todas las regiones.

```
echo -e "Region          \t Modified" ; \
echo -e "--------------  \t ---------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 modify-instance-metadata-defaults \
            --region $region \
            --http-tokens-enforced enabled \
            --output text)
        echo -e "$region        \t $output"
    );
done
```

A continuación, se muestra un ejemplo del resultado.

```
Region                   Modified
--------------           ---------
ap-south-1               True
eu-north-1               True
eu-west-3                True
...
```

**Configuración de IMDSv2 como servicio predeterminado para la cuenta para todas las regiones**  
Use el cmdlet [Edit-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataDefault.html) para modificar la configuración de nivel de cuenta de IMDS de todas las regiones. Incluya `-HttpToken` establecidos como `required` y `-HttpPutResponseHopLimit` establecido en `2` si las instancias alojarán contenedores. De lo contrario, especifique `-1` si no desea indicar ninguna preferencia. Si se especifica `-1` (ninguna preferencia), en el momento del lanzamiento, el valor predeterminado será `2` si la AMI tiene la configuración `ImdsSupport: v2.0`; de lo contrario, el valor predeterminado será `1`.

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region   = $_
        Modified = (Edit-EC2InstanceMetadataDefault `
                -Region $_ `
                -HttpToken required `
                -HttpPutResponseHopLimit 2)
    } 
} | `
Format-Table Region, Modified -AutoSize
```

Resultado previsto

```
Region         Modified
------         --------
ap-south-1         True
eu-north-1         True
eu-west-3          True
...
```

**Visualización de la configuración de cuenta predeterminada para las opciones de metadatos de instancia para todas las regiones**  
Utilice el cmdlet [Get-EC2InstanceMetadataDefault](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceMetadataDefault.html).

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region = $_
        HttpPutResponseHopLimit = (Get-EC2InstanceMetadataDefault -Region $_).HttpPutResponseHopLimit
        HttpTokens              = (Get-EC2InstanceMetadataDefault -Region $_).HttpTokens
    }
} | `
Format-Table -AutoSize
```

Ejemplo de resultado

```
Region         HttpPutResponseHopLimit HttpTokens
------         ----------------------- ----------
ap-south-1                           2 required
eu-north-1                           2 required
eu-west-3                            2 required                    
...
```

------

### Configuración de la instancia en el momento de la inicialización
<a name="configure-IMDS-new-instances-instance-settings"></a>

Al [iniciar una instancia](ec2-launch-instance-wizard.md), puede configurarla para exigir el uso de IMDSv2 mediante la configuración de los siguientes campos:
+ Consola de Amazon EC2: establezca **Metadata version** (Versión de metadatos) en **V2 only (token required)** (Solo V2 [token obligatorio]).
+ AWS CLI: `HttpTokens` establecido en `required`.

Al especificar que IMDSv2 es obligatorio, también se debe habilitar el punto de conexión del servicio de metadatos de instancia (IMDS); para ello, se debe establecer **Metadatos accesibles** en **Habilitados** (consola) o `HttpEndpoint` en `enabled` (AWS CLI).

En un entorno de contenedores, cuando se requiere IMDSv2, recomendamos establecer el límite de saltos en `2`. Para obtener más información, consulte [Consideraciones sobre el acceso a los metadatos de instancia](instancedata-data-retrieval.md#imds-considerations).

------
#### [ Console ]

**Para exigir el uso de IMDSv2 en una nueva instancia**
+ Al iniciar una nueva instancia en la consola de Amazon EC2, despliegue **Advanced details** (Detalles avanzados) y haga lo siguiente:
  + Para **Metadatos accesibles**, elija **Enabled** (Habilitado).
  + En **Metadata version** (Versión de metadatos), elija **V2 only (token required)** (solo V2 [token obligatorio]).
  + (Entorno de contenedores) Para el **límite de saltos de respuesta de metadatos**, elija **2**.

  Para obtener más información, consulte [Detalles avanzados](ec2-instance-launch-parameters.md#liw-advanced-details).

------
#### [ AWS CLI ]

**Para exigir el uso de IMDSv2 en una nueva instancia**  
En el siguiente ejemplo de [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html), se inicia una instancia `c6i.large` con `--metadata-options` establecido en `HttpTokens=required`. Cuando se especifica un valor para `HttpTokens`, también se debe establecer `HttpEndpoint` en `enabled`. Debido a que el encabezado del token de seguridad está establecido en `required` para las solicitudes de recuperación de metadatos, se requiere que la instancia use IMDSv2 al solicitar los metadatos de la instancia.

En un entorno de contenedores, cuando se requiere IMDSv2, recomendamos establecer el límite de saltos en `2` con `HttpPutResponseHopLimit=2`.

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type c6i.large \
	...
    --metadata-options "HttpEndpoint=enabled,HttpTokens=required,HttpPutResponseHopLimit=2"
```

------
#### [ PowerShell ]

**Para exigir el uso de IMDSv2 en una nueva instancia**  
En el siguiente ejemplo del cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html), se inicia una instancia `c6i.large` con `MetadataOptions_HttpEndpoint` establecido en `enabled` y el parámetro `MetadataOptions_HttpTokens` en `required`. Cuando se especifica un valor para `HttpTokens`, también se debe establecer `HttpEndpoint` en `enabled`. Debido a que el encabezado del token de seguridad está establecido en `required` para las solicitudes de recuperación de metadatos, se requiere que la instancia use IMDSv2 al solicitar los metadatos de la instancia.

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType c6i.large `
    -MetadataOptions_HttpEndpoint enabled `
    -MetadataOptions_HttpTokens required
```

------
#### [ CloudFormation ]

Para especificar las opciones de metadatos de una instancia con CloudFormation, consulte la propiedad [AWS::EC2::LaunchTemplate MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html) en la *Guía del usuario de AWS CloudFormation*.

------

### Configuración de la AMI
<a name="configure-IMDS-new-instances-ami-configuration"></a>

Al registrar una AMI nueva o modificar una AMI existente, puede establecer el parámetro `imds-support` en `v2.0`. Las instancias iniciadas desde esta AMI tendrán el valor de **Metadata version** (Versión de metadatos) establecido en **V2 only (token required)** (Solo V2 [token obligatorio]) (consola) o `HttpTokens` establecido en `required` (AWS CLI). Con esta configuración, la instancia requiere que se utilice IMDSv2 al solicitar los metadatos de la instancia.

Tenga en cuenta que cuando establezca `imds-support` en `v2.0`, las instancias iniciadas desde esta AMI también tendrán **Metadata response hop limit** (Límite de saltos de respuesta de metadatos) (consola) o `http-put-response-hop-limit` (AWS CLI) establecido en **2**.

**importante**  
No utilice este parámetro a menos que el software de AMI sea compatible con IMDSv2. Después de establecer el valor en `v2.0`, no podrá deshacer el cambio. La única forma de “restablecer” la AMI es crear una AMI nueva a partir de la instantánea subyacente.

**Para configurar una nueva AMI para IMDSv2**  
Utilice uno de los siguientes métodos para configurar una nueva AMI de IMDSv2.

------
#### [ AWS CLI ]

El siguiente ejemplo de [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) registra una AMI mediante la instantánea especificada de un volumen raíz de EBS como dispositivo `/dev/xvda`. Especifique `v2.0` para el parámetro `imds-support` a fin de que las instancias que se lancen desde esta AMI requieran que se utilice IMDSv2 al solicitar metadatos de instancia.

```
aws ec2 register-image \
    --name my-image \
    --root-device-name /dev/xvda \
    --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example} \
    --architecture x86_64 \
    --imds-support v2.0
```

------
#### [ PowerShell ]

En el siguiente ejemplo del cmdlet [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html), se registra una AMI mediante la instantánea especificada de un volumen raíz de EBS como dispositivo `/dev/xvda`. Especifique `v2.0` para el parámetro `ImdsSupport` a fin de que las instancias que se lancen desde esta AMI requieran que se utilice IMDSv2 al solicitar metadatos de instancia.

```
Register-EC2Image `
    -Name 'my-image' `
    -RootDeviceName /dev/xvda `
    -BlockDeviceMapping  ( 
    New-Object `
        -TypeName Amazon.EC2.Model.BlockDeviceMapping `
        -Property @{ 
        DeviceName = '/dev/xvda'; 
        EBS        = (New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice -Property @{ 
                SnapshotId = 'snap-0123456789example'
                VolumeType = 'gp3' 
                } )      
        }  ) `
    -Architecture X86_64 `
    -ImdsSupport v2.0
```

------

**Para configurar una AMI existente para IMDSv2**  
Utilice uno de los métodos siguientes para configurar una AMI existente para IMDSv2.

------
#### [ AWS CLI ]

El siguiente ejemplo [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) modifica una AMI existente únicamente para IMDSv2. Especifique `v2.0` para el parámetro `imds-support` a fin de que las instancias que se lancen desde esta AMI requieran que se utilice IMDSv2 al solicitar metadatos de instancia.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --imds-support v2.0
```

------
#### [ PowerShell ]

En el siguiente ejemplo de cmdlet [Edit-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html), se modifica una AMI existente únicamente para IMDSv2. Especifique `v2.0` para el parámetro `imds-support` a fin de que las instancias que se lancen desde esta AMI requieran que se utilice IMDSv2 al solicitar metadatos de instancia.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -ImdsSupport 'v2.0'
```

------

### Uso de una política de IAM
<a name="configure-IMDS-new-instances-iam-policy"></a>

Puede crear una política de IAM que realice una de las siguientes acciones:
+ Impide a los usuarios iniciar nuevas instancias a menos que exijan el uso de IMDSv2 en la nueva instancia.
+ Impide que los usuarios llamen a la API ModifyInstanceMetadataOptions para cambiar las opciones de metadatos de una instancia en ejecución. Restrinja el acceso a la propiedad ModifyInstanceMetadataOptions HttpTokens para evitar actualizaciones no deseadas de las instancias en ejecución.
+ Impida que los usuarios llamen a la API ModifyInstanceMetadataDefaults para cambiar la configuración predeterminada de las cuentas tanto de HttpTokens como de HttpTokensEnforced. Al restringir el acceso a estas dos propiedades, se garantizará que solo los roles autorizados puedan modificar los valores predeterminados de la cuenta.

**Para exigir el uso de IMDSv2 en todas las instancias nuevas mediante una política de IAM**  
Para asegurarse de que los usuarios solo puedan lanzar instancias que exigen el uso de IMDSv2 al solicitar metadatos de instancia, haga lo siguiente:
+ Restrinja el acceso a las API `ModifyInstanceMetadataOptions` y `ModifyInstanceMetadataDefaults`, más específicamente, a las propiedades `httpTokens` y `httpTokensEnforced`.
+ A continuación, establezca la cuenta predeterminada en `httpTokens = required` y `httpTokensEnforced = enabled`.

  Para ver una política de IAM de ejemplo, consulte [Trabajar con metadatos de instancias](ExamplePolicies_EC2.md#iam-example-instance-metadata).

## Habilitación de los puntos de conexión IPv4 e IPv6 de IMDS
<a name="configure-IMDS-new-instances-ipv4-ipv6-endpoints"></a>

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**
+ El tipo de instancia seleccionado es una [instancia basada en Nitro](instance-types.md#instance-hypervisor-type).
+ Las subredes seleccionadas son compatibles con IPv6, y cada subred es [de doble pila o solo IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-ip-address-range).

Utilice uno de los siguientes métodos para lanzar una instancia con el punto de conexión IPv6 de IMDS habilitado.

------
#### [ Console ]

**Para habilitar el punto de conexión IPv6 de IMDS en el momento del lanzamiento de una instancia**
+ [Lance la instancia](ec2-launch-instance-wizard.md) en la consola de Amazon EC2 con la siguiente información especificada en **Advanced details** (Detalles avanzados):
  + Para el **punto de conexión IPv6 para la obtención de metadatos**, seleccione **Activado**.

Para obtener más información, consulte [Detalles avanzados](ec2-instance-launch-parameters.md#liw-advanced-details).

------
#### [ AWS CLI ]

**Para habilitar el punto de conexión IPv6 de IMDS en el momento del lanzamiento de una instancia**  
El siguiente ejemplo de [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) inicia una instancia `c6i.large` con el punto de conexión de IPv6 habilitado para IMDS. Para habilitar el punto de conexión de IPv6, para el parámetro `--metadata-options`, especifique `HttpProtocolIpv6=enabled`. Cuando se especifica un valor para `HttpProtocolIpv6`, también se debe establecer `HttpEndpoint` en `enabled`.

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

------
#### [ PowerShell ]

**Para habilitar el punto de conexión IPv6 de IMDS en el momento del lanzamiento de una instancia**  
En el siguiente ejemplo del cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html), se inicia una instancia `c6i.large` con el punto de conexión de IPv6 habilitado para IMDS. Para habilitar el punto de conexión IPv6, especifique `MetadataOptions_HttpProtocolIpv6` como `enabled`. Cuando se especifica un valor para `MetadataOptions_HttpProtocolIpv6`, también se debe establecer `MetadataOptions_HttpEndpoint` en `enabled`.

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType c6i.large `
    -MetadataOptions_HttpEndpoint enabled `
    -MetadataOptions_HttpProtocolIpv6 enabled
```

------

## Desactivar el acceso a los metadatos de instancia
<a name="configure-IMDS-new-instances--turn-off-instance-metadata"></a>

Puede desactivar el acceso a los metadatos de la instancia si deshabilita el IMDS al iniciar una instancia. Puede activar el acceso más adelante si vuelve a habilitar el IMDS. Para obtener más información, consulte [Activación del acceso a los metadatos de instancias](configuring-IMDS-existing-instances.md#enable-instance-metadata-on-existing-instances).

**importante**  
Puede optar por deshabilitar el IMDS durante la inicialización o después. Si deshabilita el IMDS *durante la inicialización*, es posible que lo siguiente no funcione:  
Es posible que no tenga acceso mediante SSH a su instancia. `public-keys/0/openssh-key`, que es la clave de SSH pública de su instancia, no estará accesible porque normalmente se proporciona y se accede a ella desde los metadatos de la instancia de EC2.
Los datos de usuario de EC2 no estarán disponibles y no se ejecutarán al iniciar la instancia. Los datos de usuario de EC2 se alojan en el IMDS. Si deshabilita el IMDS, desactiva de forma eficaz el acceso a los datos de los usuarios.
Para acceder a esta funcionalidad, puede volver a habilitar el IMDS después de la inicialización.

------
#### [ Console ]

**Para desactivar el acceso a los metadatos de instancia durante la inicialización**
+ [Lance la instancia](ec2-launch-instance-wizard.md) en la consola de Amazon EC2 con la siguiente información especificada en **Advanced details** (Detalles avanzados):
  + Para **Metadatos accesibles**, elija **Disabled** (Deshabilitado).

Para obtener más información, consulte [Detalles avanzados](ec2-instance-launch-parameters.md#liw-advanced-details).

------
#### [ AWS CLI ]

**Para desactivar el acceso a los metadatos de instancia durante la inicialización**  
Lance la instancia con `--metadata-options` establecido en `HttpEndpoint=disabled`.

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type c6i.large \
    ... 
    --metadata-options "HttpEndpoint=disabled"
```

------
#### [ PowerShell ]

**Para desactivar el acceso a los metadatos de instancia durante la inicialización**  
En el siguiente ejemplo del cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html), se inicia una instancia con `MetadataOptions_HttpEndpoint` establecido en `disabled`.

```
New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType c6i.large `
    -MetadataOptions_HttpEndpoint disabled
```

------
#### [ CloudFormation ]

Para especificar las opciones de metadatos de una instancia con CloudFormation, consulte la propiedad [AWS::EC2::LaunchTemplate MetadataOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html) en la *Guía del usuario de CloudFormation*. 

------

## Permitir acceso a etiquetas en metadatos de instancia
<a name="configure-IMDS-new-instances-tags-in-instance-metadata"></a>

De forma predeterminada, no se puede acceder a las etiquetas de instancia en los metadatos de la instancia. Para cada instancia, debe permitir el acceso de manera explícita. Si se permite el acceso, las *claves* de etiquetas de la instancia deben cumplir con restricciones de caracteres específicas; de lo contrario, fallará el lanzamiento de la instancia. Para obtener más información, consulte [Habilitación del acceso a etiquetas en metadatos de instancia](work-with-tags-in-IMDS.md#allow-access-to-tags-in-IMDS).

# Configurar las opciones de metadatos para instancias existentes
<a name="configuring-IMDS-existing-instances"></a>

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](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataOptions.html). Para ver una política de IAM de ejemplo, consulte [Trabajar con metadatos de instancias](ExamplePolicies_EC2.md#iam-example-instance-metadata).

**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](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) en la *Guía del usuario de AWS Organizations*.

## Requerir el uso de IMDSv2
<a name="modify-require-IMDSv2"></a>

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/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la instancia.

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

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

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

   1. En **IMDSv2**, seleccione **Obligatorio**.

   1. Seleccione **Save**.

------
#### [ AWS CLI ]

**Para exigir el uso de IMDSv2 en una instancia existente**  
Use el comando de la CLI [modify-instance-metadata-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) 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
<a name="modify-restore-IMDSv1"></a>

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](#troubleshoot-modifying-an-imdsv1-enabled-instance-fails).

**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](configuring-IMDS-new-instances.md#enforce-imdsv2-at-the-account-level).

------
#### [ Console ]

**Para restaurar el uso de IMDSv1 en una instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la instancia.

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

1. 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**.

   1. En **IMDSv2**, seleccione **Opcional**.

   1. Seleccione **Save**.

------
#### [ AWS CLI ]

**Para restaurar el uso de IMDSv1 en una instancia**  
Puede utilizar el comando de la CLI [modify-instance-metadata-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) `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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) 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
<a name="modify-PUT-response-hop-limit"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) 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
<a name="enable-ipv6-endpoint-for-existing-instances"></a>

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**
+ El tipo de instancia seleccionado es una [instancia basada en Nitro](instance-types.md#instance-hypervisor-type).
+ Las subredes seleccionadas son compatibles con IPv6, y cada subred es [de doble pila o solo IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-ip-address-range).

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](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) 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
<a name="enable-instance-metadata-on-existing-instances"></a>

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/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la instancia.

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

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

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

   1. Seleccione **Save**.

------
#### [ AWS CLI ]

**Para activar el acceso a los metadatos de instancia**  
Use el comando de la CLI [modify-instance-metadata-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) y defina el parámetro `HttpEndpoint` en `enabled`.

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

------

## Desactivar el acceso a los metadatos de instancia
<a name="disable-instance-metadata-on-existing-instances"></a>

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/](https://console.aws.amazon.com/ec2/).

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

1. Seleccione la instancia.

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

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

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

   1. Seleccione **Save**.

------
#### [ AWS CLI ]

**Para desactivar el acceso a los metadatos de instancia**  
Use el comando de la CLI [modify-instance-metadata-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 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](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) y defina el parámetro `HttpEndpoint` en `disabled`.

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

------

## Permitir acceso a etiquetas en metadatos de instancia
<a name="modify-access-to-tags-in-instance-metadata-on-existing-instances"></a>

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](work-with-tags-in-IMDS.md#allow-access-to-tags-in-IMDS).

## Solución de problemas
<a name="troubleshoot-modifying-an-imdsv1-enabled-instance-fails"></a>

### Se produce un error al modificar una instancia habilitada para IMDSv1
<a name="modifying-an-imdsv1-enabled-instance-fails"></a>

#### Descripción
<a name="modifying-an-imdsv1-enabled-instance-fails-description"></a>

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
<a name="modifying-an-imdsv1-enabled-instance-fails-cause"></a>

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
<a name="modifying-an-imdsv1-enabled-instance-fails-solution"></a>

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](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataDefaults.html) en la Referencia de la API de Amazon EC2. Si prefiere configurar este ajuste mediante la consola, consulte [Aplicar IMDSv2 a nivel de cuenta](configuring-IMDS-new-instances.md#enforce-imdsv2-at-the-account-level).

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](instance-metadata-transition-to-version-2.md).

 