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

Configurar las opciones de metadatos para instancias nuevas

Puede configurar las siguientes opciones de metadatos de instancia.

Requerir el uso de IMDSv2

Utilice uno de los métodos siguientes para exigir el uso de IMDSv2 en sus instancias.

Configuración de la instancia en el momento del lanzamiento

Al lanzar una instancia, 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).

New console
Para exigir el uso de IMDSv2 en una nueva instancia
  • Al lanzar 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]).

    Para obtener más información, consulte Detalles avanzados.

Old console
Para exigir el uso de IMDSv2 en una nueva instancia
  • Al lanzar una nueva instancia en la consola de Amazon EC2, seleccione las siguientes opciones en la página Configure Instance Details (Configurar detalles de instancia):

    • En Advanced Details (Detalles avanzados), en Metadata accessible (Metadatos accesibles), seleccione Enabled (Habilitado).

    • En Metadata version (Versión de metadatos), seleccione V2 (token required) (V2 (token obligatorio)).

Para obtener más información, consulte Paso 3: Configurar los detalles de la instancia.

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

En el siguiente ejemplo de run-instances, se lanza 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.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type c6i.large \ ... --metadata-options "HttpEndpoint=enabled,HttpTokens=required"
PowerShell
Para exigir el uso de IMDSv2 en una nueva instancia

En el siguiente ejemplo del cmdlet New-EC2Instance, se lanza 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
AWS CloudFormation

Para especificar las opciones de metadatos de una instancia conAWS CloudFormation, consulte la propiedad AWS::EC2::LaunchTemplate MetadataOptions en la Guía del usuario de AWS CloudFormation.

Configuración de la AMI

Al registrar una AMI nueva o modificar una AMI existente, puede establecer el parámetro imds-support en v2.0. Las instancias lanzadas 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 lanzadas 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 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, 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.

Import-Module AWS.Tools.EC2 # Required for Amazon.EC2.Model object creation. 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 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-0123456789example \ --imds-support v2.0
PowerShell

En el siguiente ejemplo de cmdlet Edit-EC2ImageAttribute, 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

También puede crear una política de IAM que impida a los usuarios lanzar nuevas instancias a menos que exijan el uso de IMDSv2 en la nueva instancia.

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, puede especificar que la condición para exigir IMDSv2 debe cumplirse antes de lanzar una instancia. Para ver una política de IAM de ejemplo, consulte Trabajar con metadatos de instancias.

Configuración de puntos de conexión de IPv4 e IPv6

El punto de conexión IPv6 está desactivado de forma predeterminada. Esto es cierto incluso si se está lanzando una instancia en una subred de solo IPv6. Puede optar por habilitar el punto de conexión IPv6 en el lanzamiento de una instancia.

Solo se puede acceder al punto de conexión de IPv6 para IMDS en Instancias integradas en el sistema Nitro.

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

New console
Cómo habilitar el punto de conexión IPv6 del IMDS en el momento del lanzamiento
  • Lance la instancia en la consola de Amazon EC2 con la siguiente información especificada en Advanced details (Detalles avanzados):

    • En Transporte de metadatos, seleccione Habilitado.

Para obtener más información, consulte Detalles avanzados.

AWS CLI

El siguiente ejemplo de run-instances lanza 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

En el siguiente ejemplo del cmdlet New-EC2Instance, se lanza 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

Puede desactivar el acceso a los metadatos de la instancia si deshabilita el IMDS al lanzar 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.

importante

Puede optar por deshabilitar el IMDS durante el lanzamiento o después. Si deshabilita el IMDS durante el lanzamiento, 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 del lanzamiento.

New console
Para desactivar el acceso a los metadatos de instancia durante el lanzamiento
  • Lance la instancia 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.

Old console
Para desactivar el acceso a los metadatos de instancia durante el lanzamiento
  • Lance la instancia en la consola de Amazon EC2 con la siguiente opción seleccionada en la página Configure Instance Details (Configurar detalles de la instancia):

    • En Advanced Details (Detalles avanzados), en Metadata accessible (Metadatos accesibles), seleccione Disabled (Desactivado).

Para obtener más información, consulte Paso 3: Configurar los detalles de la instancia.

AWS CLI
Para desactivar el acceso a los metadatos de instancia durante el lanzamiento

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 el lanzamiento

En el siguiente ejemplo del cmdlet New-EC2Instance, se lanza una instancia con MetadataOptions_HttpEndpoint establecido en disabled.

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

Para especificar las opciones de metadatos de una instancia conAWS CloudFormation, consulte la propiedad AWS::EC2::LaunchTemplate MetadataOptions en la Guía del usuario de AWS CloudFormation.