Proveedor de credenciales IMDS - AWS SDKs y herramientas

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Proveedor de credenciales IMDS

nota

Para obtener ayuda para comprender el diseño de las páginas de configuración o para interpretar la tabla Soporte mediante herramientas y SDK de AWS que aparece a continuación, consulte Comprender las páginas de configuración de esta guía.

El servicio de metadatos de instancias (IMDS) son datos sobre una instancia que se pueden utilizar para configurar o administrar la instancia en ejecución. Para obtener más información, consulte Trabajo con metadatos de la instancia en la Guía del usuario de Amazon EC2. Amazon EC2 proporciona un punto de conexión local disponible para las instancias que puede proporcionar varios bits de información a la instancia. Si la instancia tiene una función asociada, puede proporcionar un conjunto de credenciales válidas para esa función. Los SDK pueden usar ese punto de conexión para resolver las credenciales como parte de su cadena de proveedores predeterminados de credenciales. De forma predeterminada, se utiliza Instance Metadata Service Version 2 (IMDSv2), una versión más segura de IMDS que utiliza un token de sesión. Si se produce un error debido a una condición que no se puede volver a intentar (códigos de error HTTP 403, 404, 405), se utiliza IMDSv1 como alternativa.

Configure esta funcionalidad mediante lo siguiente:

AWS_EC2_METADATA_DISABLED: variable de entorno

Si debe o no intentar utilizar el servicio de metadatos de instancias (IMDS) de Amazon EC2 para obtener credenciales.

Valor predeterminado: false.

Valores válidos:

  • true – no utilice el IMDS para obtener credenciales.

  • false – utilice el IMDS para obtener las credenciales.

ec2_metadata_v1_disabled: configuración de archivos config de AWS compartidos
AWS_EC2_METADATA_V1_DISABLED: variable de entorno
aws.disableEc2MetadataV1: propiedad del sistema JVM: solo en Java/Kotlin

Si se debe utilizar o no el Servicio de metadatos de instancia versión 1 (IMDSv1) como alternativa en caso de que IMDSv2 falle.

nota

Los nuevos SDK no admiten el IMDSv1 y, por lo tanto, no son compatibles con esta configuración. Para obtener más información, consulte la tabla Soporte mediante SKD y herramientas de AWS.

Valor predeterminado: false.

Valores válidos:

  • true – no utilice el IMDSv1 como alternativa.

  • false – utilice el IMDSv1 como alternativa.

ec2_metadata_service_endpoint: configuración de archivos config de AWS compartidos
AWS_EC2_METADATA_SERVICE_ENDPOINT: variable de entorno
aws.ec2MetadataServiceEndpoint: propiedad del sistema JVM: solo en Java/Kotlin

El tipo de punto de conexión. Este valor anula la ubicación predeterminada en la que los SDK y las herramientas de AWS buscarán los metadatos de las instancias de Amazon EC2.

Valor predeterminado: si el ec2_metadata_service_endpoint_mode es igual a IPv4, el punto de conexión predeterminado es http://169.254.169.254. Valor predeterminado: si el ec2_metadata_service_endpoint_mode es igual a IPv6, el punto de conexión predeterminado es http://[fd00:ec2::254].

Valores válidos: URI válido.

ec2_metadata_service_endpoint_mode: configuración de archivos AWS config compartidos
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE: variable de entorno
aws.ec2MetadataServiceEndpointMode: propiedad del sistema JVM: solo en Java/Kotlin

El modo de punto de conexión de IMDS.

Valor predeterminado:IPv4.

Valores válidos: IPv4, IPv6.

nota

El proveedor de credenciales IMDS forma parte del Comprender la cadena de proveedores de credenciales. Sin embargo, el proveedor de credenciales IMDS solo se comprueba después de varios otros proveedores de esta serie. Por lo tanto, si desea que su programa utilice las credenciales de este proveedor, debe eliminar otros proveedores de credenciales válidos de la configuración o utilizar un perfil diferente. Como alternativa, en lugar de confiar en la cadena de proveedores de credenciales para descubrir automáticamente qué proveedor devuelve credenciales válidas, especifique el uso del proveedor de credenciales de IMDS en el código. Puede especificar las fuentes de credenciales directamente al crear clientes de servicio.

Seguridad de credenciales IMDS

De forma predeterminada, cuando el AWS SDK no está configurado con credenciales válidas, el SDK intentará utilizar el servicio de metadatos de instancias (IMDS) de Amazon EC2 para recuperar las credenciales de un rol de AWS. Este comportamiento se puede deshabilitar configurando la variable del entorno de AWS_EC2_METADATA_DISABLED en true. Esto evita actividades de red innecesarias y mejora la seguridad en redes que no son de confianza en las que se puede suplantar el servicio de metadatos de instancias Amazon EC2.

nota

Los clientes de los AWS SDK configurados con credenciales válidas nunca utilizarán el IMDS para recuperar las credenciales, independientemente de cualquiera de estas configuraciones.

Cómo inhabilitar el uso de las credenciales IMDS de Amazon EC2

La forma de configurar esta variable de entorno depende del sistema operativo que se utilice y de si desea o no que el cambio sea persistente.

Linux y macOS

Los clientes que utilizan Linux o macOS pueden configurar esta variable de entorno con el siguiente comando:

$ export AWS_EC2_METADATA_DISABLED=true

Si desea que esta configuración se mantenga durante varias sesiones del intérprete de comandos y se reinicie el sistema, puede añadir el comando anterior al archivo de perfil de intérprete de comandos, como .bash_profile, .zsh_profile o.profile.

Windows

Los clientes que utilizan Windows pueden configurar esta variable de entorno con el siguiente comando:

$ set AWS_EC2_METADATA_DISABLED=true

Si desea que esta configuración sea persistente en varias sesiones de intérprete de comandos y se reinicie el sistema, utilice el siguiente comando en su lugar:

$ setx AWS_EC2_METADATA_DISABLED=true
nota

El comando setx no aplica el valor a la sesión de shell actual, por lo que tendrá que volver a cargar o volver a abrir el intérprete de comandos para que el cambio surta efecto.

Soporte mediante SKD y herramientas de AWS

Los siguientes SDK admiten las características y los ajustes descritos en este tema. Se anotan todas las excepciones parciales. Todos los ajustes de propiedades del sistema JVM son compatibles con AWS SDK para Java y AWS SDK para Kotlin únicamente.

SDK Compatible Notas o más información
AWS CLI v2
SDK para C++
SDK para Go V2 (1.x)
SDK para Go 1.x (V1) Para usar la configuración de archivos compartidos config, debe activar la carga desde el archivo de configuración; consulte Sesiones.
SDK para Java 2.x
SDK para Java 1.x Parcial Propiedades del sistema JVM: se utiliza com.amazonaws.sdk.disableEc2MetadataV1 en lugar deaws.disableEc2MetadataV1; aws.ec2MetadataServiceEndpointMode y aws.ec2MetadataServiceEndpoint no se admiten.
SDK para JavaScript 3.x
SDK para JavaScript 2.x
SDK de para Kotlin No utilice el IMDSv1 como alternativa.
SDK para .NET 4.x
SDK para .NET 3.x
SDK para PHP 3.x
SDK para Python (Boto3)
SDK para Ruby 3.x
SDK de para Rust No utilice el IMDSv1 como alternativa.
SDK de para Swift
Herramientas para PowerShell V5 Puede desactivar la opción alternativa IMDSv1 de forma explícita en el código mediante [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true.
Herramientas para PowerShell V4 Puede desactivar la opción alternativa IMDSv1 de forma explícita en el código mediante [Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true.