doc.go (2252B)
1 // Package ec2rolecreds provides the credentials provider implementation for 2 // retrieving AWS credentials from Amazon EC2 Instance Roles via Amazon EC2 IMDS. 3 // 4 // # Concurrency and caching 5 // 6 // The Provider is not safe to be used concurrently, and does not provide any 7 // caching of credentials retrieved. You should wrap the Provider with a 8 // `aws.CredentialsCache` to provide concurrency safety, and caching of 9 // credentials. 10 // 11 // # Loading credentials with the SDK's AWS Config 12 // 13 // The EC2 Instance role credentials provider will automatically be the resolved 14 // credential provider in the credential chain if no other credential provider is 15 // resolved first. 16 // 17 // To explicitly instruct the SDK's credentials resolving to use the EC2 Instance 18 // role for credentials, you specify a `credentials_source` property in the config 19 // profile the SDK will load. 20 // 21 // [default] 22 // credential_source = Ec2InstanceMetadata 23 // 24 // # Loading credentials with the Provider directly 25 // 26 // Another way to use the EC2 Instance role credentials provider is to create it 27 // directly and assign it as the credentials provider for an API client. 28 // 29 // The following example creates a credentials provider for a command, and wraps 30 // it with the CredentialsCache before assigning the provider to the Amazon S3 API 31 // client's Credentials option. 32 // 33 // provider := imds.New(imds.Options{}) 34 // 35 // // Create the service client value configured for credentials. 36 // svc := s3.New(s3.Options{ 37 // Credentials: aws.NewCredentialsCache(provider), 38 // }) 39 // 40 // If you need more control, you can set the configuration options on the 41 // credentials provider using the imds.Options type to configure the EC2 IMDS 42 // API Client and ExpiryWindow of the retrieved credentials. 43 // 44 // provider := imds.New(imds.Options{ 45 // // See imds.Options type's documentation for more options available. 46 // Client: imds.New(Options{ 47 // HTTPClient: customHTTPClient, 48 // }), 49 // 50 // // Modify how soon credentials expire prior to their original expiry time. 51 // ExpiryWindow: 5 * time.Minute, 52 // }) 53 // 54 // # EC2 IMDS API Client 55 // 56 // See the github.com/aws/aws-sdk-go-v2/feature/ec2/imds module for more details on 57 // configuring the client, and options available. 58 package ec2rolecreds