IMDSproveedor de credenciales - AWS SDKsy 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.

IMDSproveedor de credenciales

Instance Metadata Service (IMDS) proporciona datos sobre la instancia que puede usar para configurar o administrar la instancia en ejecución. Para obtener más información sobre los datos disponibles, consulta Trabajar con metadatos de instancias en la Guía del EC2 usuario de Amazon. Amazon EC2 proporciona un punto de enlace 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. SDKsPueden usar ese punto final para resolver las credenciales como parte de su cadena de proveedores de credenciales predeterminada. De forma predeterminada, se usa la versión 2 (IMDSv2) del Servicio de Metadatos de Instancia, una versión más segura IMDS que usa 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 HTTP error 403, 404, 405), IMDSv1 se utiliza como alternativa.

Configure esta funcionalidad mediante lo siguiente:

AWS_EC2_METADATA_DISABLED: variable de entorno

Si debe o no intentar utilizar Amazon EC2 Instance Metadata Service (IMDS) para obtener credenciales.

Valor predeterminado: false.

Valores válidos:

  • true— No lo utilice IMDS para obtener credenciales.

  • false— Se utiliza IMDS para obtener credenciales.

ec2_metadata_v1_disabled- compartido AWS configconfiguración de archivos
AWS_EC2_METADATA_V1_DISABLED: variable de entorno
aws.disableEc2MetadataV1- propiedad JVM del sistema: solo en Java/Kotlin

Si se debe utilizar o no la versión 1 (IMDSv1) del Servicio de Metadatos de Instancia como alternativa en caso de error. IMDSv2

nota

Los nuevos SDKs no admiten esta configuración IMDSv1 y, por lo tanto, no la admiten. Para obtener más información, consulte la tabla Compatibilidad con AWS SDKs.

Valor predeterminado: false.

Valores válidos:

  • true— No lo utilices IMDSv1 como alternativa.

  • false— Úselo IMDSv1 como alternativa.

ec2_metadata_service_endpoint- compartido AWS configconfiguración de archivos
AWS_EC2_METADATA_SERVICE_ENDPOINT: variable de entorno
aws.ec2MetadataServiceEndpoint- propiedad JVM del sistema: solo en Java/Kotlin

El punto final de. IMDS

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: válidosURI.

ec2_metadata_service_endpoint_mode- compartido AWS configconfiguración de archivos
AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE: variable de entorno
aws.ec2MetadataServiceEndpointMode- propiedad JVM del sistema: solo en Java/Kotlin

El modo de punto final de. IMDS

Valor predeterminado:IPv4.

Valores válidos: IPv4, IPv6.

nota

El proveedor de IMDS credenciales forma parte deCadena de proveedores de credenciales. Sin embargo, el proveedor de IMDS credenciales 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 IMDS credenciales en el código. Puede especificar las fuentes de credenciales directamente al crear clientes de servicio.

Seguridad de las credenciales IMDS

De forma predeterminada, cuando el AWS SDKno está configurado con credenciales válidas e SDK intentará utilizar el Amazon EC2 Instance Metadata Service (IMDS) para recuperar las credenciales de un AWS rol. 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 Amazon EC2 Instance Metadata Service.

nota

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

Inhabilitar el uso de las credenciales de Amazon EC2 IMDS

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.

Compatibilidad con AWS SDKs

Las siguientes opciones SDKs son compatibles con las funciones y configuraciones descritas en este tema. Se anotan todas las excepciones parciales. Cualquier configuración de propiedades del JVM sistema es compatible con la AWS SDK for Java y el AWS SDK para Kotlin únicamente.

SDK Compatible Notas o más información
AWS CLI v2
SDKpara C++
SDKpara Go V2 (1.x)
SDKpara 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.
SDKpara Java 2.x
SDKpara Java 1.x Parcial JVMpropiedades del sistema: se usa com.amazonaws.sdk.disableEc2MetadataV1 en lugar deaws.disableEc2MetadataV1; aws.ec2MetadataServiceEndpoint y aws.ec2MetadataServiceEndpointMode no se admite.
SDKpara JavaScript 3.x
SDKpara JavaScript 2.x
SDKpara Kotlin No utiliza la opción IMDSv1 alternativa.
SDKpara. NET3.x
SDKpara PHP 3.x
SDKpara Python (Boto3)
SDKpara Ruby 3.x
SDKpara Rust No utiliza el IMDSv1 respaldo.
SDKpara Swift
Herramientas para PowerShell Puede deshabilitar la opción IMDSv1 alternativa de forma explícita en el código mediante[Amazon.Util.EC2InstanceMetadata]::EC2MetadataV1Disabled = $true.