Amazon EC2 instance metadata - AWS SDKs and Tools

Amazon EC2 instance metadata

Amazon EC2 provides a service on instances called the Instance Metadata Service (IMDS). To learn more about this service, see Instance metadata and user data in the Amazon EC2 User Guide for Linux Instances or Instance metadata and user data in the Amazon EC2 User Guide for Windows Instances. When attempting to retrieve credentials on an Amazon EC2 instance that has been configured with an IAM role, the connection to the instance metadata service is adjustable.

Configure this functionality by using the following:

metadata_service_num_attempts - shared AWS config file setting
AWS_METADATA_SERVICE_NUM_ATTEMPTS - environment variable

This setting specifies the number of total attempts to make before giving up when attempting to retrieve data from the instance metadata service.

Default value: 1

Valid values: Number greater than or equal to 1.

metadata_service_timeout - shared AWS config file setting
AWS_METADATA_SERVICE_TIMEOUT - environment variable

Specifies the number of seconds before timing out when attempting to retrieve data from the instance metadata service.

Default value: 1

Valid values: Number greater than or equal to 1.

Example of setting these values in the config file:

[default] metadata_service_num_attempts=10 metadata_service_timeout=10

Linux/macOS example of setting environment variables via command line:

export AWS_METADATA_SERVICE_NUM_ATTEMPTS=10 export AWS_METADATA_SERVICE_TIMEOUT=10

Windows example of setting environment variables via command line:

setx AWS_METADATA_SERVICE_NUM_ATTEMPTS 10 setx AWS_METADATA_SERVICE_TIMEOUT 10

Compatibility with AWS SDKS

The following SDKs support the features and settings described on this page, any partial exceptions are noted:

SDK Supported Notes or more information
AWS CLI v2 Yes
SDK for C++ No
SDK for Go V2 (1.x) No
SDK for Go 1.x (V1) No
SDK for Java 2.x No
SDK for Java 1.x Partial metadata_service_num_attempts not supported.
SDK for JavaScript 3.x No
SDK for JavaScript 2.x No
SDK for .NET 3.x No
SDK for PHP 3.x Yes
SDK for Python (Boto3) Yes
SDK for Ruby 3.x No