Class: Aws::InstanceProfileCredentials
- Inherits:
-
Object
- Object
- Aws::InstanceProfileCredentials
show all
- Includes:
- CredentialProvider
- Defined in:
- gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb
Overview
An auto-refreshing credential provider that loads credentials from EC2 instances.
instance_credentials = Aws::InstanceProfileCredentials.new
ec2 = Aws::EC2::Client.new(credentials: instance_credentials)
Retries
When initialized from the default credential chain, this provider defaults to 0
retries.
Breakdown of retries is as follows:
- Configurable retries (defaults to
1
): these retries handle errors when communicating
with the IMDS endpoint. There are two separate retry mechanisms within the provider:
- Entire token fetch and credential retrieval process
- Token fetching
- JSON parsing retries: Fixed at 3 attempts to handle cases when IMDS returns malformed JSON
responses. These retries are separate from configurable retries.
Instance Attribute Summary collapse
#credentials, #expiration
Instance Method Summary
collapse
#set?
Constructor Details
Returns a new instance of InstanceProfileCredentials.
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 79
def initialize(options = {})
@backoff = resolve_backoff(options[:backoff])
@disable_imds_v1 = resolve_disable_v1(options)
@endpoint = resolve_endpoint(options)
@http_open_timeout = options[:http_open_timeout] || 1
@http_read_timeout = options[:http_read_timeout] || 1
@http_debug_output = options[:http_debug_output]
@port = options[:port] || 80
@retries = options[:retries] || 1
@token_ttl = options[:token_ttl] || 21_600
@async_refresh = false
@imds_v1_fallback = false
@no_refresh_until = nil
@token = nil
@metrics = ['CREDENTIALS_IMDS']
super
end
|
Instance Attribute Details
#backoff ⇒ Proc
108
109
110
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 108
def backoff
@backoff
end
|
#disable_imds_v1 ⇒ Boolean0
99
100
101
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 99
def disable_imds_v1
@disable_imds_v1
end
|
#endpoint ⇒ String
111
112
113
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 111
def endpoint
@endpoint
end
|
#http_debug_output ⇒ IO?
123
124
125
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 123
def http_debug_output
@http_debug_output
end
|
#http_open_timeout ⇒ Integer
117
118
119
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 117
def http_open_timeout
@http_open_timeout
end
|
#http_read_timeout ⇒ Integer
120
121
122
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 120
def http_read_timeout
@http_read_timeout
end
|
#port ⇒ Integer
114
115
116
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 114
def port
@port
end
|
#retries ⇒ Integer
105
106
107
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 105
def retries
@retries
end
|
#token_ttl ⇒ Integer
102
103
104
|
# File 'gems/aws-sdk-core/lib/aws-sdk-core/instance_profile_credentials.rb', line 102
def token_ttl
@token_ttl
end
|